Formulaire sur deux pages la base de données ne se rempli pas

cheepow28
Invité n'ayant pas de compte PHPfrance

29 oct. 2015, 16:31

Bonjour à tous,

Je m'excuse d'avance si je ne fais pas les choses correctement mais je suis nouveau sur ce forum. Voici mon problème :

j'ai réalisé un formulaire à remplir par un membre via des input, sur 1 page nommé inscription.php, tout les données s'enregistraient correctement dans ma base de donnée, lorsque le membre cliquait sur le bouton validé. Or j'ai voulu rajouter une deuxième page pour agrandir mon formulaire d'inscription, ma deuxième page se nomme inscription2.php et depuis l'ajout de cette page plus rien ne se sauvegarde dans ma base de données. Pouvez vous m'aider ? Voici mon code :

inscription.php

Code : Tout sélectionner

<!DOCTYPE html> <?php $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', ''); if(isset($_POST['suivant'])) { $nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']); $email = htmlspecialchars($_POST['email']); $mdp = sha1($_POST['mdp']); if(!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['email']) AND !empty($_POST['mdp'])); else { $erreur = "Veuillez remplir tous les champs s'il vous plaît !"; } { $pseudolength = strlen($email); if($pseudolength <= 255) { $insertmbr = $bdd->prepare("INSERT INTO membres(nom, prenom, email, motdepasse) VALUES(?, ?, ?, ?)"); $insertmbr->execute(array($nom, $prenom, $email, $mdp)); } else { $erreur = "Votre email ne doit pas dépasser 255 caractères !"; } } } ?> <html> <link rel="stylesheet" type="text/css" href="css/style.css"> <meta charset="UTF-8"> <head> <title>Inscription - Le bon profil </title> <div class="section1"> <ul id="nav"> <a href="index.php">Accueil</a> </ul> <div class="section3">Le bon profil </div> </div> <?php if(isset($erreur)) { echo $erreur; } ?> </head> <body> <img SRC="images/bg.jpg" width="100%" height="700"> <div class="section4"> <div class="content2">Remplissez les champs suivant :</div></br> <form method="POST" action="inscription2.php"> <center><table> <tr> <td> </br></br><input type="text" size="20" name="nom" placeholder="Nom"/> </td> </tr> <tr> <td> </br></br><input type="text" size="20" name="prenom" placeholder="Prénom"/> </td> </tr> <td> </br></br><input type="email" size="30" name="email" placeholder="E-mail"/> </td> </tr> <tr> <td> </br></br><input type="password" size="20" name="mdp" placeholder="Mot de passe"/> </td> </tr> <tr> <td> </br></br><center><input type="submit" name="suivant" value="Suivant"/></center> </td> </tr> </table></center> </form> </div> </body> </html>
inscription2.php

Code : Tout sélectionner

<!DOCTYPE html> <?php $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', ''); if(isset($_POST['suivant'])) { if(isset($_POST['nom']) == false ) if(isset($_POST['prenom']) == false ) if(isset($_POST['email']) == false ) if(isset($_POST['mdp']) == false ) { include inscription.php; } else { $nom = htmlspecialchars($_POST['nom']); $prenom = htmlspecialchars($_POST['prenom']); $email = htmlspecialchars($_POST['email']); $mdp = sha1($_POST['mdp']); $date = htmlspecialchars($_POST['date']); $adresse = htmlspecialchars($_POST['adresse']); $codepostal = htmlspecialchars($_POST['codepostal']); if(!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['email']) AND !empty($_POST['mdp']) AND !empty($_POST['date']) AND !empty($_POST['adresse']) AND !empty($_POST['codepostal'])); else { $erreur = "Veuillez remplir tous les champs s'il vous plaît !"; } { $pseudolength = strlen($adresse); if($pseudolength <= 255) { $insertmbr = $bdd->prepare("INSERT INTO membres(date, adresse, codepostal) VALUES(?, ?, ?)"); $insertmbr->execute(array($date, $adresse, $codepostal)); } else { $erreur = "Votre adresse ne doit pas dépasser 255 caractères !"; } } } } ?> <html> <link rel="stylesheet" type="text/css" href="css/style.css"> <meta charset="UTF-8"> <head> <title>Inscription - Le bon profil </title> <div class="section1"> <ul id="nav"> <a href="index.php">Accueil</a> </ul> <div class="section3">Le bon profil </div> </div> <?php if(isset($erreur)) { echo $erreur; } ?> </head> <body> <img SRC="images/bg.jpg" width="100%" height="700"> <div class="section4"> <div class="content2">Remplissez les champs suivant :</div></br> <form method="POST" action="index.php"> <center><table> <tr> <td> </br></br><input type="hidden" size="20" name="nom" placeholder="Nom"/> </td> </tr> <tr> <td> <input type="hidden" size="20" name="prenom" placeholder="Prénom"/> </td> </tr> <td> <input type="hidden" size="30" name="email" placeholder="E-mail"/> </td> </tr> <tr> <td> <input type="hidden" size="20" name="mdp" placeholder="Mot de passe"/> </td> </tr> <tr> <td> <input type="date" size="20" name="date" placeholder="Date de naissance"/> </td> </tr> <tr> <td> </br></br><input type="text" size="30" name="adresse" placeholder="Adresse"/> </td> </tr> <td> </br></br><input type="text" size="20" name="codepostal" placeholder="Code postal"/> </td> </tr> <tr> <td> </br></br><center><input type="submit" name="suivant" value="Suivant"/></center> </td> </tr> </table></center> </form> </div> </body> </html>

Mammouth du PHP | 2703 Messages

29 oct. 2015, 16:42

c'est indispensable de faire 2 formulaires, au lieu d'un seul plus complet ?
si c'est le cas, alors inscription.php pointe vers inscription.php. si les champs sont remplis, insert, recuperation de l'id du membre, passage de cet id à inscription2.php qui pointe vers inscription2.php qui fera un update et non un insert.

cheepow28
Invité n'ayant pas de compte PHPfrance

29 oct. 2015, 18:15

Bonjour,

Merci pour ta réponse. Si j'ai bien compris j'ai rajouté dans inscription.php :

Code : Tout sélectionner

$_GET['id'];
et dans inscription2.php j'ai rajouté :

Code : Tout sélectionner

SELECT * FROM 'membres' WHERE id='".$id."';

Mais ça ne marche toujours pas.

cheepow28
Invité n'ayant pas de compte PHPfrance

02 nov. 2015, 13:34

Bonjour

Quelqu'un aurait il une idée svp ?