Base de données : rien ne s'affiche

Résolu/Fermé
Utilisateur anonyme - Modifié par jordane45 le 8/05/2015 à 22:36
 Utilisateur anonyme - 9 mai 2015 à 09:10
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
<?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

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 8/05/2015 à 22:14
'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
0
Utilisateur anonyme
8 mai 2015 à 22:16
Oui j'avais vu et j'ai corrigé cette erreur mais le problème persiste :/
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225 > Utilisateur anonyme
8 mai 2015 à 22:18
Dans ce cas ajoute la gestion des exceptions au moment de ta requête, tu en tireras sûrement des infos utiles...
0
Utilisateur anonyme > ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021
8 mai 2015 à 22:21
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 :/
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié par jordane45 le 8/05/2015 à 22:44
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
0
Merci pour ta réponse ! Malheureusement il n'y a rien dans la base alors que le
message "vous êtes enregistré" s'affiche
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Utilisateur anonyme
8 mai 2015 à 23:38
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
0
Utilisateur anonyme
9 mai 2015 à 09:10
J'ai trouvé mon erreur ^^ dans mon code j'ai utilisé "prénom" mais dans ma base de donnée c'est "pseudo" j'ai donc mis ces lignes

'INSERT INTO utilisateurs ( id, pseudo, password) VALUES ( "", :prenom, :password)' ;


E tout cas merci à ceux qui ont cherché pour m'aider !!
0