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 !

4 réponses

  1. 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
  2. Utilisateur anonyme
     
    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
    1. 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
  3. Utilisateur anonyme
     
    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
    1. lechampenois Messages postés 18 Statut Membre
       
      Oui je crois qu'il en manque un bout ...
      0
    2. 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
  4. 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