Problème modification ligne MYSQL

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Ibilolz, 7 Mai 2014.

  1. Ibilolz
    Ibilolz Nouveau WRInaute
    Inscrit:
    6 Mai 2014
    Messages:
    21
    J'aime reçus:
    0
    Bonjour, j'ai une table salle qui contient un id, num_salle, descr et nombre_poste. Je cherche à faire un petit formulaire de modification ou l'on choisirait la salle dans un bouton déroulant et on pourrais modifier ses champs en rentrant dans des input un nouveau nom, une nouvelle description et un nouveau nombre de poste. J'ai fais ça mais ça ne marche pas, il doit y avoir une erreur dans le php.

    Code:
    <?php 
     
    include 'fonctions.connect.php';
    $id_salle = "SELECT num_salle FROM Salle"; 
    $res = mysql_query($id_salle); 
    ?>
    <br></br>
                     <div> 
                    <form action="" method="post" id=test> 
               
                    <select name="test3" id="test1"> 
                    <option value='-1'>----Choisissez le numéro d'une salle à modifier -----</option> 
                    <?php 
                    while ($row = mysql_fetch_array($res))   
                    { 
                    $salle = $row['num_salle']; 
                    echo "<option value='$salle'>$salle</option>"; 
                    }  
                    ?> 
                    </select> 
                     <br></br>
            Numéro de la salle : <input type="text" name="num3" size=10 <br></br>
            Description : <input type="text" name="descr3" size=20 <br></br>
            Nombre de poste :<input type="text" name="nombre3" size=20 <br></br>
            <br></br>
            <input type="submit", name="submit" Value="Modifier">
    <?php              
             
    if (isset($_POST['test3'], $_POST['num3'], $_POST['descr3'], $_POST['nombre3']))
    
    
    {
    
    $test3 = $_POST['test3'];
    $num3 = $_POST['num3']; 
    $descr3 = $_POST['descr3']; 
    $nombre3 = $_POST['nombre3']; 
    
    
    $sql = 'UPDATE Salle SET num_salle='$num3', description= '$descr3', nombre_poste='$nombre3' WHERE num_salle='$test3'';
    
    
     
    mysql_query($sql);
    
    // on ferme la connexion à la base
    mysql_close();
    
    ?>
    
    
    </div> 
            <br></br>
    
     </div></FORM>
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 184
    J'aime reçus:
    352
    En informatique dire "ça ne marche pas" ou rien c'est pareil.

    NB: il faut revoir les bases parce que là t'as une belle faille d'injection SQL.
     
  3. Ibilolz
    Ibilolz Nouveau WRInaute
    Inscrit:
    6 Mai 2014
    Messages:
    21
    J'aime reçus:
    0
    Me répondre ça ou rien c'est pareil. Tous mes champs sont bien nommés, je les récupèrent tous et normalement ma commande sql est aussi bonne donc si tu veux me dire quelque chose dis moi d’où viens l'erreur ...
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 184
    J'aime reçus:
    352
    Non ta requête n'est pas bonne:
    1° problème de quotes
    2° injection SQL
     
  5. Ibilolz
    Ibilolz Nouveau WRInaute
    Inscrit:
    6 Mai 2014
    Messages:
    21
    J'aime reçus:
    0
    Bon, j'ai remplacé ma requête par ça mais il doit encore y avoir une erreur ..

    $sql = "UPDATE `Salle` SET `num_salle` = \'$num3\', `description` = \'$descr3\', `nombre_poste` = \'$nombre3\' WHERE `num_salle` = \`$test3\`;";
     
  6. FortTrafic
    FortTrafic WRInaute passionné
    Inscrit:
    11 Décembre 2012
    Messages:
    1 202
    J'aime reçus:
    18
    Je n'y connais rien mais je vois que les quotes de la dernière variable ne sont pas les mêmes que celles des autres variables.. En plus il n'y a pas besoin d'échapper les quotes quand ce ne sont pas celles dont tu te sert pour entourer la chaîne de caractères de la requête.

    Mais bon en fait tu ne me donnes pas plus envie de t'aider que ça et encore j'aurai du te laisser dans ton coin.. Trop bon, trop con.. Quand je vois la réponse que tu fais à spout alors que tu es dans l'erreur en ne communiquant pas le message d'erreur, mais au lieu d'être reconnaissant d'avoir eu une réponse et de donner plus d'information sur l'erreur ou de demander pourquoi spout te dit ca, tu te rebelles bêtement, et ben rebelle toi tout seul.
    Tu vois c'est facile de faire le susceptible :)
     
  7. Ibilolz
    Ibilolz Nouveau WRInaute
    Inscrit:
    6 Mai 2014
    Messages:
    21
    J'aime reçus:
    0
    ... Je ne savais pas que c'était pour l'erreur que je n'avais pas marqué, j'ai pourtant cru mettre que javais page blanche, que le code php faisait tout planter. Après je débute en prog en autodidacte depuis 3 mois et c'est pas en me répondant comme cela sur des forums que je vais avoir envi de faire des progrès. Réponse sèche, pas d’explication ... Une chose facile pour quelqu'un ne l'est pas forcément pour d'autre.
     
  8. FortTrafic
    FortTrafic WRInaute passionné
    Inscrit:
    11 Décembre 2012
    Messages:
    1 202
    J'aime reçus:
    18
    Sur les forums ceux qui aident le font car ils aiment la technique, c'est tout, on n'est pas assistantes sociales, si tu n'as pas l'envie de faire des progrès, il ne faut pas compter sur les autres pour te la donner.
    Spout t'as donné un conseil en fait, je le donne aussi des fois, pour les débutants justement, de mettre toutes les chances de ton côté pour obtenir des réponses, de l'aide, donc être plus poli qu'en temps normal, fournir toutes les informations qui peuvent aider à résoudre ton erreur. Et d'ailleurs en faisant comme ça quand je demande de l'aide, je m'aperçoit que quelques fois en écrivant toutes les informations pour que les gens m'aident, je trouve la réponse d'un coup, en gros j'essaye d'organiser les informations qui peuvent aider à m'aider, et du coup j'en arrive à m'aider tout seul :)
     
  9. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Le problème de la page blanche, c'est sans doute un problème d'erreur masquée.
    La première chose à faire quand tu te lances dans le développement PHP, c'est de configurer PHP pour le dev. Au minimum:
    display_errors = On
    error_reporting = -1
    Le premier demande à afficher toutes les erreurs, et le second demande à afficher toutes les types d'erreurs, que ce soit des notices ou des crash.
    On le voit rarement dans les tutos pour débutant, c'est pourtant la base de l'apprentissage …
     
  10. Wiam
    Wiam Nouveau WRInaute
    Inscrit:
    2 Mai 2014
    Messages:
    15
    J'aime reçus:
    0
    Bonjour,

    Ton code fait très amateur, tu devrais utiliser PDO pour palier aux injections SQL, ainsi le code devient tellement simple ! PDO c'est la classe ... :p

    Exemple de code :

    Code:
        public function read($id)
        {
            $id = Security::filterVar($id, 3);
            $sql = 'SELECT * FROM ' . $this->db->prefix('matable') . ' WHERE id = :id AND ip = :ip';
            $sth = $this->db->prepare($sql);
            $sth->bindParam(':id', $id, PDO::PARAM_STR, 64);
            $sth->bindParam(':ip', $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR, 64);
            if (!$this->db->execute($sth)) {
                return '';
            }
            $data = $sth->fetch(PDO::FETCH_ASSOC);
            if (empty($data['data'])) {
                return '';
            }
            return $data['data'];
        }
    
    Avec ça les petits geeks peuvent toujours essayer ! :-D
     
  11. Wiam
    Wiam Nouveau WRInaute
    Inscrit:
    2 Mai 2014
    Messages:
    15
    J'aime reçus:
    0
    Code:
    $test3 = $_POST['test3'];
    $num3 = $_POST['num3'];
    $descr3 = $_POST['descr3'];
    $nombre3 = $_POST['nombre3'];
    
    
    $sql = 'UPDATE Salle SET num_salle='$num3', description= '$descr3', nombre_poste='$nombre3' WHERE num_salle='$test3'';
    
    8O Belles injections en perspectives.

    Pour utiliser du PHP dans les quotes, il faut utiliser les double quotes "$var". Ensuite pour les requêtes SQL tu devrais utiliser initvar sur tous les nombre comme "num_salle". Pour le texte utiliser au moins mysqli_real_escape_string pour limiter un peu la casse, je dis bien un peu.

    Pour mysqli_real_escape_string, lire attentivement la doc PHP : http://www.php.net/manual/fr/mysqli.real-escape-string.php
     
Chargement...
Similar Threads - Problème modification ligne Forum Date
Search Console Problèmes réguliers d'ergonomie mobile sans modification Problèmes de référencement spécifiques à vos sites 18 Novembre 2021
Problème modification code Adsense AdSense 21 Avril 2020
L'ajax, problème d'appel et de modification de variables Développement d'un site Web ou d'une appli mobile 24 Février 2012
Probleme de modification de title Crawl et indexation Google, sitemaps 5 Décembre 2011
Problème modification DNS OVH Administration d'un site Web 8 Avril 2010
Problème après modification version PHP Développement d'un site Web ou d'une appli mobile 5 Avril 2009
Gros problème sur la profondeur de mes pages Problèmes de référencement spécifiques à vos sites Vendredi à 09:06
Problème de htaccess chez Ionos URL Rewriting et .htaccess 12 Septembre 2022
Problème sur jquery avec fonction asynchrone Développement d'un site Web ou d'une appli mobile 6 Septembre 2022
Problème de crawl et d'indexation Crawl et indexation Google, sitemaps 1 Septembre 2022
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web 8 Août 2022
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Probleme de visibilité de ma page Facebook Facebook 5 Juillet 2022
problème avec le développeur Droit du web (juridique, fiscalité...) 22 Juin 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022