Base de données : rien ne s'affiche

Résolu
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
<?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:

2 réponses

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'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
 
Oui j'avais vu et j'ai corrigé cette erreur mais le problème persiste :/
0
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...
0
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 :/
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Utilisateur anonyme
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Utilisateur anonyme
 
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
 
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