Problème avec ma base sql
John smith3
Messages postés
28
Statut
Membre
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
vois-ci mon code :
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 !
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 !
4 réponses
-
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>'; } -
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? -
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? -
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.... }