update

Répondre


Veuillez compléter la vérification suivante afin de nous permettre de lutter contre les publications automatisées indésirables.
Émoticônes
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Accéder à davantage d’émoticônes
  Revue du sujet
 

  Étendre la vue Revue du sujet : update

Re: update

par Spols » 13 oct. 2017, 09:50

Maintenant il te faut contrôler chaque entrée de l'utilisateur, tu ne peux faire confiance à personne.

vérifie que le format est correcte et qu'il n'y a pas de tentative d'injection sql.

Re: update

par phibad » 13 oct. 2017, 09:13

Cher Spols, je te remercie, ça marche.

Re: update

par Spols » 13 oct. 2017, 08:38

En effet ton formulaire ne peut pas retourner de valeurs vu que t'u na pas identifié tes input de formulaire.

donne à chaque input un attribut name="" correspondant à tes champs et ensuite vérifie que tes variables sur enregistre.php sois bien remplie

Re: update

par phibad » 12 oct. 2017, 18:24

Bonne piste.
Si j'enleve la date de naissance de la requete, le résultat fonctionne. Mais toutes les données sont effacées, sauf la date de naissance qui n'a pas été mise à zéro.
Donc mon php met ma base de données à zéro. Ce n'est pas intéressant !

Re: update

par or 1 » 12 oct. 2017, 18:13

l'erreur reste si la requete sql ne comporte plus la mise à jour de la date ?

Re: update

par phibad » 12 oct. 2017, 18:08

et l'utilisateur rentre bien la date au format ymd dans le formulaire ?
Dans un premier temps, le formulaire affiche les données présentes dans la base. Puis la personne peut modifier les données.
Donc les données affichées sont d'abord celles qui sortent de la base et elles sont forcément dans le bon format. Puis si il y a une modification, par exemple seulement sur l'adresse, l'enregistrement se fait et l'erreur sur la date de naissance apparaît même si elle n'a pas été changée.
J'espère que je suis clair. Mais dans mon esprit c'est confus !

Re: update

par or 1 » 12 oct. 2017, 17:59

et l'utilisateur rentre bien la date au format ymd dans le formulaire ?

Re: update

par phibad » 12 oct. 2017, 17:16

Merci pour votre réponse qui m'a fait avancer.
J'ai créé un fichier "enregistre.php" dans lequel je fais l'update, en mettant les données en $_POST
Mais j'ai maintenant une erreur sur la date (ce qui veut peut-être dire que j'ai réglé le problème précédent !).
Invalid datetime format: 1292 Incorrect date value: '' for column 'nele' at row 1 in C:\wamp
nele=date de naissance.
Le message d'erreur m'indique la ligne 44, c'est la dernière ligne où il y a ' ); '
Je ne trouve rien qui m'aide dans les forums. Je ne comprends pas. Dans ma base, mes dates sont bien en Ymd.
Voici mon code, et merci d'avance.

"

Code : Tout sélectionner

<?php session_start(); $nom= isset($_POST['nom'])?$_POST['nom']:''; $prenom= isset($_POST['prenom'])?$_POST['prenom']:''; $nele= isset($_POST['nele'])?$_POST['nele']:''; $sexe= isset($_POST['sexe'])?$_POST['sexe']:''; $parentnom= isset($_POST['parentnom'])?$_POST['parentnom']:''; $parentprenom= isset($_POST['parentprenom'])?$_POST['parentprenom']:''; $email= isset($_POST['email'])?$_POST['email']:''; $numrue= isset($_POST['numrue'])?$_POST['numrue']:''; $ville= isset($_POST['ville'])?$_POST['ville']:''; $cp= isset($_POST['cp'])?$_POST['cp']:''; $tel1= isset($_POST['tel1'])?$_POST['tel1']:''; $profession= isset($_POST['profession'])?$_POST['profession']:''; //---------------------------------insérer les modifications dans la base-------------------------- include ("bonjour4.php"); $req=$bdd->prepare('UPDATE membres SET nom=:nom, prenom=:prenom, nele=:nele, sexe=:sexe, email=:email, numrue=:numrue, cp=:cp, ville=:ville, tel1=:tel1, profession=:profession WHERE pseudo=:pseudo ' ); $req->execute(array('nom'=>$nom, 'prenom'=>$prenom, 'nele'=>$nele, 'sexe'=>$sexe, 'email'=>$email, 'numrue'=>$numrue, 'cp'=>$cp, 'ville'=>$ville, 'tel1'=>$tel1, 'profession'=>$profession, 'pseudo'=>$_SESSION['pseudo'] ) ); ?>

Re: update

par Spols » 10 oct. 2017, 11:54

en retour de formulaire, les données sont dans le tableau $_POST et non dans un tableau $resultat

update

par phibad » 10 oct. 2017, 11:38

Bonjour
Je ne trouve pas pourquoi mon update ne fonctionne pas.
L'affichage, d'abord du nom et du prénom, puis des données présentes dans la base se fait bien, mais les modifications ne sont pas enregistrées.
Si quelqu'un pouvait m'aider...

Code : Tout sélectionner

$reponse = $bdd ->prepare('SELECT * FROM membres WHERE pseudo = :pseudo'); $reponse->execute (array('pseudo'=>$_SESSION['pseudo'])); while ($resultat=$reponse-> fetch()) { echo (" <h1>".$resultat['prenom']." ".$resultat['nom']."</h1>"); } $reponse = $bdd ->prepare('SELECT * FROM membres WHERE pseudo = :pseudo'); $reponse->execute (array('pseudo'=>$_SESSION['pseudo'])); while ($resultat=$reponse-> fetch()) { ?> <div class="boitelarge"> <p><a href="indextsr6.php">Retour au menu</a> </p> <form method="POST" action="index6.php "> <p style="float:right"><label for ="nom">Nom </label> <input type="text" value= "<?php echo $resultat['nom']; ?>"></p><br /><br /> <p style="float:right"><label for ="prenom">Prénom </label> <input type="text" value= "<?php echo $resultat['prenom']; ?>"></p><br /><br /> <p style="float:right"><label for ="nele">Né.e le </label> <input type="text" value= "<?php echo $resultat['nele']; ?>"></p> <br /> <br /> <p style="float:right"><label for ="sexe">Sexe </label> <input type="text" value= "<?php echo $resultat['sexe']; ?>"></p><br /><br /> <p style="float:right"><label for ="parentnom">Parent (pour un.e mineur.e) : nom </label> <input type="text" value= "<?php echo $resultat['parentnom']; ?>"></p> <br /><br /> <p style="float:right"><label for ="parentprenom">Parent : prénom </label> <input type="text" value= "<?php echo $resultat['parentprenom']; ?>"></p><br /><br /> <p style="float:right"><label for ="email">email </label> <input type="text" value= "<?php echo $resultat['email']; ?>"></p><br /><br /> <p style="float:right"><label for ="numrue">N° et rue </label> <input type="text" value= "<?php echo $resultat['numrue']; ?>"></p> <br /><br /> <p style="float:right"><label for ="ville">Ville </label> <input type="text" value= "<?php echo $resultat['ville']; ?>"></p><br /><br /> <p style="float:right"><label for ="cp">Code postal </label> <input type="text" value= "<?php echo $resultat['cp']; ?>"></p><br /><br /> <p style="float:right"><label for ="tel1">Tél </label> <input type="text" value= "<?php echo $resultat['tel1']; ?>"></p><br /><br /> <p style="float:right"><label for ="profession">Profession </label> <input type="text" value= "<?php echo $resultat['profession']; ?>"></p> <br /><br /><br /><br /> <input type="submit" name="submit" value="enregistrer la modification" ><br /><br /> </form> </div> <?php } if ($submit !="") { $req=$bdd->prepare('UPDATE membres SET nom=:nom, prenom=:prenom, nele=:nele, sexe=:sexe, email=:email, numrue=:numrue, cp=:cp, ville=:ville, tel1=:tel1, profession=:profession WHERE pseudo=:pseudo ' ); $req->execute(array('nom'=>$resultat['nom'], 'prenom'=>$resultat['prenom'], 'nele'=>$resultat['nele'], 'sexe'=>$resultat['sexe'], 'email'=>$resultat['email'], 'numrue'=>$resultat['numrue'], 'cp'=>$resultat['cp'], 'ville'=>$resultat['ville'], 'tel1'=>$resultat['tel1'], 'profession'=>$resultat['profession'], 'pseudo'=>$resultat['pseudo'] ) ); }