Page 1 sur 1

les donné d un formulaire ne vont pas dans ma base de donné

Posté : 02 sept. 2019, 21:07
par samifbg75f
bonjour j ai ce code et je voudrais envoyer les donné dans ma bdd et afficher une confirmation sauf que ca me met juste le vardump
<?php

var_dump($_POST);
if (isset($_POST['formsend'])) {
    extract($_POST);
    if (!empty($password) && !empty($pseudo)) {

        $options = ['cost' => 12,];
          $hashpass = password_hash($password, PASSWORD_BCRYPT, $options);

        include 'journale lycéé/database.php';
        global $db;
        $c = $db->prepare("SELECT pseudo FROM users WHERE pseudo = :pseudo");
        $c->execute(['pseudo' => $pseudo]);
        $result = $c->fetch();
        if (!empty($result)) {
            $q = $db->prepare("INSERT INTO users(pseudo,password) VALUES(:pseudo,:password)");

            $q->execute([
                'password' => $hashpass,
                'pseudo' => $pseudo
            ]);
        
            echo " le compte a ete cree avec succe";
        }
    else{
            echo "un pseudo existe dejat essayer de vous connecter ou choisiser un autre pseudo";
        }

    }
}
 
 ?>

Re: les donné d un formulaire ne vont pas dans ma base de donné

Posté : 02 sept. 2019, 23:43
par @rthur
Bonjour,

Il faut que tu avances davantage dans ton débugage pour savoir à partir de quel moment ton script ne se déroule pas comme prévu.
Est-ce qu'il rentre dans le if() ? Mets des var_dump() plus régulier pour suivre son exécution.

Par ailleurs 2 remarques :
- La fonction extract() ne doit pas être utilisée sur des données utilisateur $_GET ou $_POST, c'est indiqué en avertissement rouge dans la doc.
- Il ne faut jamais utiliser de nom de fichier ou de répertoire avec des espaces et des accents (cf ton include), car ça peut marcher mais ça risque de provoquer des bugs bizarres qu'il te sera difficile de debuguer, donc ma préconisation est de n'utiliser que des caractères alphabétiques minuscules de l'alphabet non accentués + le tiret ou l'undescore éventuellement