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
2 réponses
-
'lut, normal, il manque un T à ta commande
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 -
Bonjour,
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-
Merci pour ta réponse ! Malheureusement il n'y a rien dans la base alors que le
message "vous êtes enregistré" s'affiche- 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)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
-
-