Problème avec ma base sql

John smith3 Messages postés 28 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

vois-ci mon code :

<?php

if ($_POST['pass'] == $_POST['verif'])
{ 

try
{
	$bdd = new PDO('mysql:host=localhost;dbname=mabase', 'root', '');
}
catch (Exception $e)
{
	die('Erreur : ' . $e->getMessage());
}

$bdd->exec('INSERT INTO matable(pseudo, pass) VALUES($_POST[\'pseudo\'], $_POST[\'pass\'])');

echo "Votre compte a bien été créé !!!<br /><br /> Vous allez être redirigé vers le formulaire de candidature...
";
}
else {echo "Les mots de passe ne corresponde pas !!!
<script language=\"javascript\">
	function gotoUrl() {
		window.location='index.php';
	}
	setTimeout('gotoUrl()', 3000);
</script>";
}

?>


tous fonctionne, il n'y a aucun message d'erreur mais mais la commande ne s'effectue pas ! rien est ajouté à la table de ma base de donnée !

Quelqu'un pourrais me dire ce qui cloche ? merci !

A voir également:

4 réponses

Alain_42 Messages postés 5413 Statut Membre 904
 
si tu fais une redirection qd l'enr dans la BDD est ok tu ne verra pas le message echo "Votre compte a bien....
ni celui du else

et dans ton else pour rediriger pas besoin de javascript

tu fais:

else{
header('Location:href=index.php?erreur=diff_passwd');
}

plus simple non ? par contre il ne faut pas qu'il y ait du code html avant

et dans ta page index.php il suffit de capter cette erreur pour afficher le message

//a l'endroit ou tu veux que le mesage d'erreur s'affiche tu mets:
if(isset($_GET['erreur']) AND $_GET['erreur']=="diff_passwd"){
   echo '<font color="red">Les mots de passe ne corresponde pas !!!</font>';
}
2
kyser soze Messages postés 902 Statut Membre 97
 
Tu vois ton echo "Votre compte a bien été créé !!!<br /><br /> Vous allez être redirigé vers le formulaire de candidature...
"; lors de l'execution?
0
John smith3 Messages postés 28 Statut Membre
 
comment ça lors de l'exécution ? la redirection ? ou c'est normale je compte mettre le même que celui du else mais pour tester la page correctement je l'ai enlever ! c'est fait exprès ! Moi le soucis c'est que la comme de s'exécute pas ! il n'y a aucune entrée dans ma table de ma BBD !
0
kyser soze Messages postés 902 Statut Membre 97
 
Je me suis mal exprimé, je suppose que avant le code que tu as posté tu as un formulaire.
Ce que je souhaitais savoir c'est : est ce que lors de la soumission du formulaire le echo à la fin du if($_POST['pass'] == $_POST['verif']) apparait sur ta page? Autrement dit , es tu sûr que le programme entre dans le if?
0
lechampenois Messages postés 18 Statut Membre
 
Oui je crois qu'il en manque un bout ...
0
John smith3 Messages postés 28 Statut Membre
 
Non tout fonction je dit ! le message comme quoi le compté est crée s'affiche il n'y a aucun message d'erreur et le soucis n'est pas dans la redirection mais dans l'enregistrement dans la base donnée !
0
Alain_42 Messages postés 5413 Statut Membre 904
 
essaies comme ça:

<?php

if ($_POST['pass'] == $_POST['verif'])
{ 

try
{
	$bdd = new PDO('mysql:host=localhost;dbname=mabase', 'root', '');
	$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e)
{
	die('Echec connexion : ' . $e->getMessage());
}
//preparation de la requette
$requete_prepare_1 = $bdd->prepare("INSERT INTO matable(pseudo, pass) VALUES($_POST['pseudo'], $_POST['pass'])");
//ci dessus je pense que les \' gênaient 
//ça c'est pour voir les erreurs
if (!$requete_prepare_1) {
	   echo "<br />PDO::errorInfo():<br />";
	   print_r($dbh->errorInfo());

}
///
	$requete_prepare_1->execute();

echo "Votre compte a bien été créé !!!<br /><br /> Vous allez être redirigé vers le formulaire de candidature...";
//etc....

}
0