Problème avec ma base sql

Fermé
John smith3 Messages postés 26 Date d'inscription samedi 24 novembre 2012 Statut Membre Dernière intervention 21 juin 2013 - 22 févr. 2013 à 14:30
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 23 févr. 2013 à 13:40
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
22 févr. 2013 à 15:05
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
Utilisateur anonyme
22 févr. 2013 à 14:49
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 26 Date d'inscription samedi 24 novembre 2012 Statut Membre Dernière intervention 21 juin 2013
22 févr. 2013 à 14:54
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
Utilisateur anonyme
22 févr. 2013 à 15:07
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 16 Date d'inscription vendredi 22 février 2013 Statut Membre Dernière intervention 8 juin 2018
22 févr. 2013 à 17:26
Oui je crois qu'il en manque un bout ...
0
John smith3 Messages postés 26 Date d'inscription samedi 24 novembre 2012 Statut Membre Dernière intervention 21 juin 2013
23 févr. 2013 à 11:06
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
23 févr. 2013 à 13:40
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