Formulaire UPDATE PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire UPDATE PHP

Re: Formulaire UPDATE PHP

par Ethan78 » 04 sept. 2019, 14:12

qu'est ce que cela affiche ?
var_dump($_GET);
si c'est vide, par quel miracle $_GET['id'] contiendrait ce que tu voudrais récupérer ?
Justement, il n'est pas vide !

array(1) { ["id"]=> string(2) "42" } hors pour ce cas là je suis bien sur la page edit.php?id=42 ..
Donc aucun soucis provenant de l'id sauf que quand je submit ça me redirige vers edit.php sans ?id et ça pose peut-être probleme mais même pas parce que si je mettais une redirection après l'update ça suffirait sauf que les infos ne sont pas update..

Re: Formulaire UPDATE PHP

par or 1 » 04 sept. 2019, 13:18

qu'est ce que cela affiche ?
var_dump($_GET);
si c'est vide, par quel miracle $_GET['id'] contiendrait ce que tu voudrais récupérer ?

Re: Formulaire UPDATE PHP

par Ethan78 » 04 sept. 2019, 10:51

Je me suis trompé dans le bout de code, voici le bon :

Code : Tout sélectionner

if (isset($_POST['submit'])) { $lastname = $_POST["lastname"]; $name = $_POST["name"]; $id = $_GET['id']; $update=$db->prepare("UPDATE BDD SET Prenom = :Prenom, Nom = :Nom WHERE Id = :id"); $update->execute(array( 'name' => $name, 'lastname' => $lastname, 'id' => $id)); }

Re: Formulaire UPDATE PHP

par Ethan78 » 04 sept. 2019, 10:23

il peut être plus simple de commencer avec 2 fichiers php, un pour afficher le formulaire pré-rempli, l'autre pour faire la mise à jour de la table.

il faut débuguer, commencer par mettre un ;
var_dump($_POST, $_GET);
pour voir ce qui est transmis, ce qui est manquant.
D'accord, merci, ducoup j'ai effectuer ces tests, je récupère bien effectivement les valeurs des POST ainsi que du GET de l'id, j'ai tester de remettre au propre les lignes me permettant d'UPDATE les données sauf que j'ai maintenant une autre erreur qui est:
"SQLSTATE[HY093]: Invalid parameter number: parameter was not defined" au moment de l'execute sauf que je ne pense pas qu'il y ai un problème lié aux champs du form, mais plutot que quand je refresh je quitte la page lié à l'id de l'utilisateur et je reviens sur une page simple et non ?id= du coup je sais pas si cette erreur est vérifiée ou si c'est juste parce que je refresh le form sur la page simple sans id à get..

Voici mon code :

Code : Tout sélectionner

if (isset($_POST['submit'])) { $lastname = $_POST["lastname"]; $name = $_POST["name"]; $id = $_GET['id']; $update=$db->prepare("UPDATE BDD SET Prenom = :Prenom, Nom = :Nom WHERE Id = :id"); $update->execute(array( 'name' => $name, 'lastname' => $lastname, 'id' => $id)); }

Re: Formulaire UPDATE PHP

par or 1 » 03 sept. 2019, 17:07

il peut être plus simple de commencer avec 2 fichiers php, un pour afficher le formulaire pré-rempli, l'autre pour faire la mise à jour de la table.

il faut débuguer, commencer par mettre un ;
var_dump($_POST, $_GET);
pour voir ce qui est transmis, ce qui est manquant.

Formulaire UPDATE PHP

par Ethan78 » 03 sept. 2019, 15:37

Bonjour,

Cela fait maintenant 2/3 jours que je cherche différent moyen en PDO d'update des données depuis une page internet via un formulaire prérempli avec les valeurs grâce à un get établi avec l'id de l'user hors je n'arrive aucunement j'ai toujours des erreurs, l'update ne se fait jamais, de plus, à chaque submit je perd tout le GET de l'url au vu du changement d'url qui passe de par exemple : edit.php?id=1 à edit.php..

Serai-ce possible d'avoir un peu d'aide ? Je vous remercie.

Code : Tout sélectionner

<?php session_start(); // AU TOUT DEBUT du fichier // ---------------------- // Connexion BDD include('include_db.php'); // ---------------------- if (empty($_SESSION['Prenom'])) { header('Location: index.php'); } //Récupérer l'id dans l'url $id = $_GET['id']; //Extraire les données lié à l'id $sql = "SELECT * FROM BDD WHERE Id=:Id"; $query = $db->prepare($sql); $query->execute(array(':Id' => $id)); while ($row = $query->fetch(PDO::FETCH_ASSOC)) { $Nom = $row['Nom']; $Prenom = $row['Prenom']; $ville = $row['Ville']; $codepostal = $row['CodePostale']; $adresse = $row['Adresse']; $tel = $row['Telephone']; $email = $row['Email']; $sexe = $row['Sexe']; $qpv = $row['QPV']; } $sql = "UPDATE BDD SET Nom = :Nom, Prenom = :Prenom, WHERE Id = :Id"; $stmt = $db->prepare($sql); $stmt->bindParam(':Nom', $_POST['Nom'], PDO::PARAM_STR); $stmt->bindParam(':Prenom', $_POST['$Prenom'], PDO::PARAM_STR); $stmt->execute(); ?> <!DOCTYPE html> <html> <head> <title>PA - Ajouter un utilisateur</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <link rel="stylesheet" href="css/add.css"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel="icon" href="https://www.proactiveacademy.fr/wp-content/uploads/2018/01/cropped-favicon-32x32.png" sizes="32x32" /> <link rel="stylesheet" href="//use.fontawesome.com/releases/v5.0.7/css/all.css"> </head> <body class="d-flex flex-column justify-content-center"> <div id="page-content"> <nav class="navbar navbar-expand-md bg-dark navbar-dark"> <a class="navbar-brand"><img src="http://www.proactiveacademy.fr/wp-content/uploads/2018/01/p-proactive-1.png" class="img-fluid" alt="Responsive image"></a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="collapsibleNavbar"> <ul class="navbar-nav mx-auto"> <li class="nav-item"> <a class="nav-link" href="list.php"><i class="fas fa-address-book"></i></a> </li> <li class="nav-item"> <a class="nav-link" href="add_csv.php"><i class="fas fa-users"></i></a> </li> <li class="nav-item"> <a class="nav-link" href="logout.php"><i class="fas fa-sign-out-alt"></i></a> </li> </ul> </div> <span class="navbar-text right-align" style="text-align: right;">Bienvenue, <?php echo $_SESSION['Prenom']?></span> </nav> </header> <main class="flex-fill justify-content-center align-items-center"> <form method="post" action="edit.php"> <div class="container register align-self-center h-100"> <div class="row justify-content-center align-items-center text-center"> <div class="col-md-9 register-right"> <div class="tab-content" id="myTabContent"> <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab"> <h3 class="register-heading">Modifier les données d'un utilisateur</h3></br></br> <div class="row register-form"> <div class="col-md-6"> <div class="form-group"> <input type="text" class="form-control" placeholder="Nom" name="Nom" value="<?php echo $Nom;?>"> </div> <div class="form-group"> <input type="text" class="form-control" placeholder="Prénom" name="Prenom" value="<?php echo $Prenom;?>"> </div> <div class="form-group"> <input type="text" class="form-control" placeholder="Email" value="<?php echo $email;?>"> </div> <div class="form-group"> <input type="text" class="form-control" placeholder="Ville" value="<?php echo $ville;?>"> </div> <div class="form-group"> <input type="number" maxlength="5" class="form-control" placeholder="Code Postal" value="<?php echo $codepostal;?>"> </div> <div class="form-group"> <input type="text" class="form-control" placeholder="Adresse" value="<?php echo $adresse;?>"> </div> <div class="form-group"> <input type="tel" minlength="10" maxlength="10" name="txtEmpPhone" class="form-control" placeholder="Téléphone" value="<?php echo $tel;?>"> </div> <div class="form-group"> <select class="form-control"> <option class="hidden" value="<?php echo $qpv;?>" selected disabled>QPV</option> <option>Oui</option> <option>Non</option> <option>300m</option> </select> </div> <div class="form-group"> <div class="maxl"> <label class="radio inline"> <input type="radio" name="Sexe" value="<?php echo $sexe;?>" checked> <span>Homme</span> </label> <label class="radio inline"> <input type="radio" name="Sexe" value="Femme"> <span>Femme</span> </label> </div> </div> </div> <div class="col-md-6"> <div class="form-group"> <select class="form-control"> <option class="hidden" selected disabled>Dernier diplôme</option> <option>1</option> <option>2</option> <option>3</option> </select> </div> <div class="form-group"> <select class="form-control"> <option class="hidden" selected disabled>Dîplome visé</option> <option>1</option> <option>2</option> <option>3</option> </select> </div> <div class="form-group"> <select class="form-control"> <option class="hidden" selected disabled>Contrat visé</option> <option>1</option> <option>2</option> <option>3</option> </select> </div> <div class="form-group"> <select class="form-control"> <option class="hidden" selected disabled>Niveau de formation</option> <option>1</option> <option>2</option> <option>3</option> </select> </div> <div class="form-group"> <select class="form-control"> <option class="hidden" selected disabled>Secteur d'activité</option> <option>1</option> <option>2</option> <option>3</option> </select> </div> <div class="form-group"> <select class="form-control"> <option class="hidden" selected disabled>Sourcing</option> <option>1</option> <option>2</option> <option>3</option> </select> </div> <input type="submit" class="btnRegister btn btn-primary btn-sm" value="Valider les informations" name="submit" style="width:60%;"/> </form> </div> </div> </div> </div> </div> </div> </div> </div> </main> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> </body> <div class="footer"> <div class="footer-copyright text-center py-3"><hr class="my-4" style="margin: auto;width: 40%;"></br><p class="text-muted">© <?php echo date("Y"); ?> Codé par Ethan</small></p></div> </div> </div> </html>