J'ai TOUT essayé, tout fonctionne (Du moins la connexion)..
J'ai tout vérifier, j'ai essayer la manière classique jusqu'à la manière BIND, j'ai parcouru internet de long en large, j'ai menés des conquêtes mêlés de nerfs et de sang dans des cavernes obscures au fin fond d'Azeroth... Mais là j'en peut PLUUUUUUUUS... 😭😭😭
Quand j'étais au chômage j'y arrivait toujours du premier coups, mais maintenant que j'ai une école je n'y arrive plus alors que je doit présenter une maquette "potable", j'ai passé tout mon Week-End sur cette erreur à la mord moi l'noeu !
try {
$insertmbr = $bdd->prepare('INSERT INTO users (lastname,mail,password,usersexe,bday,firstname) VALUES (:lastname,:mail,:password,:usersexe,:bday,:firstname,NOW())');
$insertmbr->bindParam('lastname', htmlspecialchars($_POST['lastname']));
$insertmbr->bindParam('mail', htmlspecialchars($_POST['email']));
$insertmbr->bindParam('password', sha1($_POST['password']));
/* RealMail = Non confirmé par défaut */
/* Lastconnect = (Dernière activité de l'user) - À la création du compte */
/* Rank = Par défaut : 0 */
$insertmbr->bindParam('usersexe', intval($usersexe));
/* Avatar par défaut = defaut.png */
$insertmbr->bindParam('bday', date($_POST['bday']));
/* Banned = Par défaut : 0 */
$insertmbr->bindParam('firstname', htmlspecialchars($_POST['prenom']));
/* Account created = Par défaut : CURRENT_TIMESTAMP() */
$insertmbr->execute();
} catch (Exception $e) {
echo 'Erreur de merde -> ';
var_dump($e->getMessage());
}
Tout ça pour me donner cette erreur : « Erreur de merde -> string(115) "SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1" »
Ma base de donnée éxiste, ma table users aussi (Sinon je ne pourrais pas me connecter avec un compte que j'ai inséré manuellement), le problème viens juste de l'insert. Achevez-moi en trouvant ce qui cloche en une fraction de seconde alors que moi j'y suis depuis 48h 😭😭
Heu je me sent bête, mais comment protégé les données entrantes du coups si on ne met pas de htmlspecialchars ?
En tout cas merci Aurélien, je crois que je vais me tatouer ton post sur la main pour m'en souvenir à l'avenir. ♥
Je verrais les fails plus tard, en tout cas merci beaucoup tout fonctionne pour le mieux ! Sujet résolu, je peut enfin reprendre ma vie en main. MERCI BEAUCOUP !
C'est PDO qui se charge de les protéger contre les injections sql mais c'est à toi de vérifier que tu as les bonnes infos (ex le bon format de l'email)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP