Php/Mysql problème d'envoi de formulaire vers la base de données

Résolu
Wollfie Messages postés 17 Statut Membre -  
Wollfie Messages postés 17 Statut Membre -
Bonjour,
Je cherche à créer un site pour un projet personnel, et je suis un gros débutant dans les langages de programmation web car j'ai été dans l'obligation de les apprendre en 4ème vitesse... J'aimerais donc que vous me communiquiez mon erreur dans le code suivant, car j'ai créé un formulaire à remplir pour devenir membre, mais après test, les informations rentrées ne semblent pas s'incorporer dans la base de données créée :

A voir également:

5 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Bonjour

Pour commencer : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Puis ça :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs



Cordialement, 
Jordane                                                                 
0
yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonsoir, peux-tu partager le texte de ton code PHP, et pas l'image?
0
Wollfie Messages postés 17 Statut Membre 2
 
<?php
error_reporting(E_ALL);
  $bdd= new PDO('mysql:host=localhost;dbname=visiteurs;charset=utf8','root','')
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}
?>

J'ai mis ça, et ma page refuse de se charger et le message "Parse error: syntax error, unexpected '$bdd' (T_VARIABLE) in C:\wampserv64\www\Site\Signin.php on line 4" apparaît, la ligne 4 dans mon fichier étant le premier "set attribute"
0
Wollfie Messages postés 17 Statut Membre 2
 
Sachant que je n'ai pas encore mis la partie détection d'erreurs de requête dans mon code...
0
jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Il manque un point-virgule à la ligne 3
0
Wollfie Messages postés 17 Statut Membre 2 > jordane45 Messages postés 40050 Statut Modérateur
 
Merci beaucoup ! Après une autre petite correction (nom de variable : pass_hache et pas passe_hache) ça fonctionne bien !
0
Wollfie Messages postés 17 Statut Membre 2
 
J'en profite pendant que vous êtes là, dans le login cette fois, j'ai mis dans le code l'affichage des erreurs, aucune erreur n'est affichée :
$pseudo = ($_POST['pseudologin']);
        //hachage du mdp
        $pass_harche = sha1($_POST['mdplogin']);
        
        //verification des id
        $req = $bdd->prepare('SELECT id FROM visiteurs WHERE pseudo = :pseudo AND mdp = :mdp');
        $req->execute(array(
        'pseudo' => $pseudo,
        'mdp' => $pass_hache));
        
        $resultat = $req->fetch();
        
        if(!$resultat)
        {
          ?>
          <script>
            alert('Mauvais mot de passe ou identifiant!');
          </script>
          <?php
        }
        else
        {
          session_start();
          $_SESSION['id'] = $resultat['id'];
          $_SESSION['pseudo'] = $pseudo;
          header('location: membres.php');
        }
0
Wollfie Messages postés 17 Statut Membre 2
 
Même en ayant corrigé le fait que je ne sache pas écrire hache à la ligne 3, le problème reste existant...
0
jordane45 Messages postés 40050 Statut Modérateur 4 756 > Wollfie Messages postés 17 Statut Membre
 
Comme expliqué dans le lien que je t'ai donné.... Place tes requêtes dans des blocs try catch...

Et puis... Sans voir l'intégralité de ton code... Difficile de te répondre
0
Wollfie Messages postés 17 Statut Membre 2 > jordane45 Messages postés 40050 Statut Modérateur
 
Je l'ai fait de mon côté mais ça n'a rien donné...
0
Wollfie Messages postés 17 Statut Membre 2 > jordane45 Messages postés 40050 Statut Modérateur
 
Je peux t'envoyer des messages privés avec tout mon code ?
0
jordane45 Messages postés 40050 Statut Modérateur 4 756 > Wollfie Messages postés 17 Statut Membre
 
Non.
Tu postes sur le forum
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Wollfie Messages postés 17 Statut Membre 2
 
Mon code entier : Bonne chance !
<?php
try{
error_reporting(E_ALL);
  $bdd = new PDO('mysql:host=localhost;dbname=visiteurs;charset=utf8','root','');
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}
?>   <form method="post" action="">
        <fieldset id="formulairelogin">
            <label for="pseudo">Entrez votre Pseudonyme:</label>
            <input type="text" id="pseudo" name="pseudologin" autocomplete="on"><br>
            <label for="mdp">Entrez votre Mot de passe:</label>
            <input type="password" id="mdp" name="mdplogin"><br>
            <input type="submit" value="Envoyer">
        </fieldset>
    </form>
    <p><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></p>
    <div id="bas"><p><br></p></div>
        <?php
        if(isset($_POST['Envoyer'])){
        //test de l'envoi du formulaire
        $pseudo = ($_POST['pseudologin']);
        //hachage du mdp
        $pass_hache = sha1($_POST['mdplogin']);
        
        //verification des id
        try{$req = $bdd->prepare('SELECT id FROM visiteurs WHERE pseudo = :pseudo AND mdp = :mdp');
        $req->execute(array(
        'pseudo' => $pseudo,
        'mdp' => $pass_hache));
        
        $resultat = $req->fetch();
        //verification du mot de passe
        if(!$resultat)
        {
          ?>
          <script>
            alert('Mauvais mot de passe ou identifiant!');
          </script>
          <?php
        }
        else
        { //si bon, ouverture de la session
          session_start();
          $_SESSION['id'] = $resultat['id'];
          $_SESSION['pseudo'] = $pseudo;
          header('location:membres.php');
        }}catch(Exception $e){
            // en cas d'erreur :
            echo " Erreur ! ".$e->getMessage();
            echo " Les datas : " ;
            print_r($datas);
        }}
        ?>
0
Wollfie Messages postés 17 Statut Membre 2
 
Désolé du dérangement, j'ai oublié le name= dans la partie submit du formulaire, tout fonctionne correctement,
merci de votre aide précieuse,
Cordialement,
Léo.
0