Base de données : rien ne s'affiche
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je suis en train de faire un espace membre pour mon site et j'en suis à l'inscription. Seul problème..lorsque je clique sur Inscription, les données ( pseudo et mot de passe) ne s'affichent pas dans ma base de donné ^^
Voici les codes :
Page d'inscription
cnx.php :
Si qq'un a une idée de la faute que j'ai faite, je suis preneuse !! Merci
Je suis en train de faire un espace membre pour mon site et j'en suis à l'inscription. Seul problème..lorsque je clique sur Inscription, les données ( pseudo et mot de passe) ne s'affichent pas dans ma base de donné ^^
Voici les codes :
Page d'inscription
<?php include ("cnx.php"); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <h2> Formulaire d'inscription : </h2> <form action="" method = "POST"> <label for="prenom"> Prenom : </label> </br> <input type="texte" name = "prenom" /> </br> <label for="password"> Password : </label> </br> <input type="password" name = "password" /> </br> <input type="submit" value ="Inscription" /> </form> <?php if(!empty($_POST)) { $prenom = addslashes($_POST['prenom']) ; $password = sha1($_POST['password']) ; $q = array ('prenom' => $prenom, 'password' => $password) ; $sql = 'INSER INTO users ( prenom, password) VALUES ( :prenom, :password)' ; $req = $cnx->prepare($sql); $req->execute($q); echo "Vous êtes enregistré"; } else { echo "Problème pour cette étape !"; } ?> </body> </html>
cnx.php :
<?php // Connexion à la base de données try { $cnx = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?>
Si qq'un a une idée de la faute que j'ai faite, je suis preneuse !! Merci
A voir également:
- Base de données : rien ne s'affiche
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Formules mathématiques de base - Télécharger - Études & Formations
2 réponses
'lut, normal, il manque un T à ta commande
P.S.: pense à changer ton algo de hashage: le SHA1 c'est pas très fiable, on arrive de plus en plus à générer des collisions. Utilise le SHA256 ou plus avec la fonction hash(). Aussi, pense à gérer les exceptions lors de ta requête.
from human import idiocy
del idiocy
INSERT!
P.S.: pense à changer ton algo de hashage: le SHA1 c'est pas très fiable, on arrive de plus en plus à générer des collisions. Utilise le SHA256 ou plus avec la fonction hash(). Aussi, pense à gérer les exceptions lors de ta requête.
from human import idiocy
del idiocy
Utilisateur anonyme
Oui j'avais vu et j'ai corrigé cette erreur mais le problème persiste :/
ElementW
Messages postés
4814
Date d'inscription
Statut
Contributeur
Dernière intervention
1 223
>
Utilisateur anonyme
Dans ce cas ajoute la gestion des exceptions au moment de ta requête, tu en tireras sûrement des infos utiles...
Utilisateur anonyme
>
ElementW
Messages postés
4814
Date d'inscription
Statut
Contributeur
Dernière intervention
Merci pour tes conseils :) j'ai prévu quelques exceptions mais je ne voulais pas alourdir ce code. Ce qui est bizarre c'est qu'une fois que j'ai cliqué sur Inscription il y a le message "Vous êtes enregistrés" donc ce n'est pas un problème d'exceptions :/
Bonjour,
Tu peux essayer ceci :
Cordialement,
Jordane
Tu peux essayer ceci :
// Récupération des variables (avec ISSET et !empty): $prenom = isset($_POST['prenom']) && !empty($_POST['prenom']) ? addslashes($_POST['prenom']):NULL ; $password = isset($_POST['password']) && !empty($_POST['password']) ? sha1($_POST['password']) :NULL ; if($prenom && $password) { try{ $q = array (':prenom' => $prenom, ':password' => $password) ; $sql = 'INSERT INTO users ( prenom, password) VALUES ( :prenom, :password)' ; $req = $cnx->prepare($sql); $req->execute($q); echo "Vous êtes enregistré"; }catch(Exception $e) { die('Erreur : '.$e->getMessage()); } } else { // Password et/ou Prenom sont innexistants ou vides echo "Problème pour cette étape !"; }
Cordialement,
Jordane
Tu as testé ta requête en direct dans ta BDD ??
Tu remplaces les variables par des valeurs réelles (celles que tu rentres dans ton formulaire)
NB : Quand je dis en direct dans ta BDD ... c'est SANS PASSER par le PHP.
Donc soit par PHPMyadmin ... soit via un logiciel comme : HeidiSql ( voir ici : https://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql
Tu remplaces les variables par des valeurs réelles (celles que tu rentres dans ton formulaire)
INSERT INTO users ( prenom, password) VALUES ( 'test', 'F12sSFedv21')
NB : Quand je dis en direct dans ta BDD ... c'est SANS PASSER par le PHP.
Donc soit par PHPMyadmin ... soit via un logiciel comme : HeidiSql ( voir ici : https://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql