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
5690
Statut
Contributeur
1 224
>
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
5690
Statut
Contributeur
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