Mon INSERT ne transmet pas a ma BDD
Résolu
Soutshiide06
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
masterbotweb Messages postés 138 Date d'inscription Statut Membre Dernière intervention -
masterbotweb Messages postés 138 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
après avoir retourné la question dans tout les sense, aprés avoir fait 1000 testes, quand je valide mon formulaire, il n'envoie pas les données a ma BDD :'(
Voici mon code
après avoir retourné la question dans tout les sense, aprés avoir fait 1000 testes, quand je valide mon formulaire, il n'envoie pas les données a ma BDD :'(
Voici mon code
<?php function connect(){ $serveur = '127.0.0.1'; $user = 'root'; $pass = ''; $bdd = 'south_home'; $conn = mysql_connect($serveur, $user, $pass) or die('Impossible de se connecter :'.mysql_error()); mysql_select_db($bdd); } ?> <?php $sql = ('INSERT INTO comptes_utilisateurs(id_utilisateur, mot_de_passe, adresse_email) VALUES(?, ?, ?)'); $query = mysql_query($sql); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml"> <head> <title>South's Home - Nouveau Compte</title> <link media="screen" rel="stylesheet" type="text/css" href="../CSS/index2.css" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php if(isset($_COOKIE["ID_UTILISATEUR"])) { header("Location: ../index.php"); } ?> <div id="page"> <div id="top"> </div> <div id="menu_1"> <form action="#" method="post"> <p class="text"> ID Utilisateur : <br /><input type="text" id="id_utilisateur" name="id_utilisateur" invalid required /> <br /><br /> Mot de passe : <br /> <input type="password" id="mot_de_passe" name="mot_de_passe" invalid required /> <br /> Confirmation du mot de passe : <br /> <input type="password" id="confirmation_mot_de_passe" name="confirmation_mot_de_passe" invalid required /> <?php if (isset($_POST['mot_de_passe']) == isset($_POST['confirmation_mot_de_passe'])) { $true; } else { ?> <span style="color: white; font-size: 15px;">Les mots de passe ne sont pas identique.</span> <?php } ?> <br /><br /> Adresse e-mail : <br /> <input type="email" id="adresse_email" name="adresse_email" invalid required /> <br /> <input type="submit" name="Envoyer" class="valider2" value="" invalid required /> </p> </form> </div> <div id="menu_2"> <p class="text2"> Annonces : <ul id="puce"> <li>Le nom d'utilisateur</li> </ul> <ul id="puce"> <li>Le mot de passe</li> </ul> <ul id="puce"> <li>L'adresse E-mail</li> </ul> <ul id="puce"> <li><a href="../index.php"><span class="text_lien">Page d'acceuil</span></a></li> </ul> </div> </div> </body> </html>
A voir également:
- Mon INSERT ne transmet pas a ma BDD
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Activer touche insert sur ASUS UX32A - Forum Clavier
- Touche insert sur clavier portable hp ✓ - Forum Clavier
- Reboot and select proper boot device or insert boot media in selected boot device and press a key ✓ - Forum PC portable
9 réponses
Bonjour Soutshiide06,
Pour ton formulaire, utilise plutôt $_SESSION[] car si un utilisateur essaie de jouer avec tes coockies tu te feras hacker facilement et utilise des fichiers séparer pour les requêtes pour que tu t'y retrouve lors des modifications. Voici un exemple que j'ai créer moi même qui est un peu long mais assez simple.
connect_db.php:
enregistrement.php:
verif.php :
Bonne chance,
Si tu as besoin d'autres choses n'hésite pas ! Sinon si ton problème est résolu n'oublie pas de le marquer.
Cordialement,
MasterBotWeb
La curiosité est un vilain défaut mais elle peut aussi être utile pour acquérir des connaissances
Pour ton formulaire, utilise plutôt $_SESSION[] car si un utilisateur essaie de jouer avec tes coockies tu te feras hacker facilement et utilise des fichiers séparer pour les requêtes pour que tu t'y retrouve lors des modifications. Voici un exemple que j'ai créer moi même qui est un peu long mais assez simple.
connect_db.php:
<?php // Start Config Base de Donnée $db_host = "localhost"; $db_login = users"; $db_pass = "mdp"; $database = "data-base"; // End Config Base de Donnée $connect_mysql_site=mysql_connect($db_host, $db_login,$db_pass) or die("Erreur de connexion au serveur"); $connect_bd_site=mysql_select_db($database) or die("Erreur de connexion à la base de donnees"); ?>
enregistrement.php:
<?php if (isset($_SESSION['pseudo'])) { header('location:index.php'); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Acceuil</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- SCRIPTS ET CSS --> </head> <body> <?php error_reporting(0); // Les erreurs qui seront afficher si il y en a if ($_GET['err'] == 1) { echo 'Veuillez remplir tous les champs'; } elseif ($_GET['err'] == 2) { echo 'Mot de passe non identique'; } elseif ($_GET['err'] == 3) { echo 'Adresse e-mail invalide'; } elseif ($_GET['err'] == 4) { echo 'Le nom d'utilisateur est déjà utilisé'; } elseif ($_GET['err'] == 5) { echo 'L\'adresse e-mail est déjà utilisée'; } ?> <!-- Ton formulaire --> <form action="verif.php" method="POST"> Pseudo : <input type="text" name="pseudo" value="" /> <br /> Mot de passe : <input type="password" name="password0" value="" /> <br /> Mot de passe : <input type="password" name="password1" value="" /> <br /> E-mail : <input type="text" name="mail" value="" /> <br /> <input type="submit" value="Envoyer" /> </form> </body> </html>
verif.php :
<?php // Ne pas afficher les erreurs error_reporting(0); include ('connect_db.php'); $sql_req_users = mysql_query("SELECT PSEUDO, EMAIL FROM Table WHERE PSEUDO= '".$pseudo."' OR EMAIL = '".$mail."'"); // Variables $pseudo = $_POST['pseudo']; $pass0 = $_POST['password0']; $pass1 = $_POST['password1']; $mail = $_POST['mail']; // Vérification du formulaire // Vérification de champ vide if ($pseudo == "" || $pass0 == "" || $pass1 == "" || $mail == "") { header("location:enregistrement.php?err=1"); } // Vérification si les mot de passe sont identiques elseif ($pass0 != $pass1) { header("location:enregistrement.php?err=2"); } // Verification de l'adresse e-mail elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$", $mai)) { header("location:enregistrement.php?err=3"); } // Vérification de doublons dans la base de données elseif (mysql_num_rows($sql_req_users) > 0) { while($row = mysql_fetch_array($sql_req_users)) { if($pseudo == $row["PSEUDO"]) { header("location:enregistrement.php?err=4"); } elseif($mail == $row["MAIL"]) { header("location:enregistrement.php?err=5"); } } } else { // On crypte le mot de passe $pass2 = sha1($pass0); // Si tout est OK en enregistre le tout $sql_reg = "INSERT INTO mns_users (ID, PSEUDO, PASS, MAIL) VALUES ('', '$pseudo', '$pass2', '$mail'); $requete_reg = mysql_query($sql_reg, $connect_mysql_site) or die( mysql_error()); } ?>
Bonne chance,
Si tu as besoin d'autres choses n'hésite pas ! Sinon si ton problème est résolu n'oublie pas de le marquer.
Cordialement,
MasterBotWeb
La curiosité est un vilain défaut mais elle peut aussi être utile pour acquérir des connaissances
Le code marche presque a merveille mais il me sort toujours l'érreur "err1" qui ce situe dans enregistrement.php
Essaye ce code à la place sur enregistrement.php
<?php
error_reporting(0);
// Les erreurs qui seront afficher si il y en a
if ($_GET['err'] == "") {
echo '';
}
elseif ($_GET['err'] == 1) {
echo 'Veuillez remplir tous les champs';
}
elseif ($_GET['err'] == 2) {
echo 'Mot de passe non identique';
}
elseif ($_GET['err'] == 3) {
echo 'Adresse e-mail invalide';
}
elseif ($_GET['err'] == 4) {
echo 'Le nom d'utilisateur est déjà utilisé';
}
elseif ($_GET['err'] == 5) {
echo 'L\'adresse e-mail est déjà utilisée';
}
?>
<?php
error_reporting(0);
// Les erreurs qui seront afficher si il y en a
if ($_GET['err'] == "") {
echo '';
}
elseif ($_GET['err'] == 1) {
echo 'Veuillez remplir tous les champs';
}
elseif ($_GET['err'] == 2) {
echo 'Mot de passe non identique';
}
elseif ($_GET['err'] == 3) {
echo 'Adresse e-mail invalide';
}
elseif ($_GET['err'] == 4) {
echo 'Le nom d'utilisateur est déjà utilisé';
}
elseif ($_GET['err'] == 5) {
echo 'L\'adresse e-mail est déjà utilisée';
}
?>
Ce souci est rélgé, mais maintenant j'ai droit a ce message d'erreur
"Column count doesn't match value count at row 1"
=s
PS. un grand merci pour ce que tu a deja fait pour moi
"Column count doesn't match value count at row 1"
=s
PS. un grand merci pour ce que tu a deja fait pour moi
Vérifie la requête ainsi que les colonnes de ta table si elles sont les même.
<?php ...... $sql_req_users = ... ...... elseif (mysql_num_rows($sql_req_users) > 0) { while($row = mysql_fetch_array($sql_req_users)) { if($pseudo == $row["PSEUDO"]) { header("location:enregistrement.php?err=4"); } elseif($mail == $row["MAIL"]) { header("location:enregistrement.php?err=5"); } } } ...... ?>
$sql_req_users = mysql_query("SELECT id_utilisateur, adresse_email FROM Table(j'ai également testé avec le nom de ma table) WHERE id_utilisateur= '".$pseudo."' OR adresse_email = '".$mail."'"); elseif (mysql_num_rows($sql_req_users) > 0) { while($row = mysql_fetch_array($sql_req_users)) { if($pseudo == $row["id_utilisateur"]) { header("location:inscription.php?err=4"); } elseif($mail == $row["adresse_email"]) { header("location:inscription.php?err=5"); } } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
http://data.imagup.com/12/1135586047.jpg
la voila :p
la voila :p
l'erreur vient d ta table :
Essaye comme ceci sous phpmyadmin
Supprime la structure de la table et exécute cette requête :
Essaye comme ceci sous phpmyadmin
Supprime la structure de la table et exécute cette requête :
CREATE TABLE IF NOT EXISTS 'Table' ( 'ID' int(11) NOT NULL AUTO_INCREMENT, 'id_utilisateur' varchar(250) NOT NULL, 'mot_de_passe' varchar(250) NOT NULL, 'adresse_mail' varchar(250) NOT NULL, PRIMARY KEY ('ID') ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=24 ;
#1064 - Erreur de syntaxe près de ''table' ( 'ID' int(11) NOT NULL AUTO_INCREMENT, 'id_utilisate' à la ligne 1
c'est ce que je fait...
http://data.imagup.com/10/1135588047.jpg
http://data.imagup.com/10/1135588047.jpg
Donc on va le faire manuellement !
Dans ta table créer ta première colonne:
ID | Type: INT | Auto Increment | Primary
Ta deuxième colonne:
id_utilisateur | Type: varchars | valeur : 250
Ta troisième table :
mot_de_passe | Type: varchars | valeur : 250
Ta quatrième colonne :
adresse_mail | Type: varchars | valeur : 250
Dans ta table créer ta première colonne:
ID | Type: INT | Auto Increment | Primary
Ta deuxième colonne:
id_utilisateur | Type: varchars | valeur : 250
Ta troisième table :
mot_de_passe | Type: varchars | valeur : 250
Ta quatrième colonne :
adresse_mail | Type: varchars | valeur : 250