MySQL a retourné un résultat vide [Résolu]

Signaler
Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020
-
Messages postés
14723
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 septembre 2020
-
Bonjour, Bonsoir

Je vous contact en espérant avoir une aide. J'ai un petit problème au niveau de MySql dans mon espace membre, je suis nouveau dans le monde du php donc je regarde quelque tuto ainsi que des livres pour pouvoir me perfectionner malheureusement je ne sais pas pourquoi dans mon espace membre lorsque je clique sur le bouton submit de mon formulaire rien n’apparaît dans mon espace ( je ne reçoit pas le formulaire j'ai suivis deux tutos différents même problème toujours rien je ne sais plus quoi faire merci )


Merci de votre futur réponse

5 réponses

Messages postés
14723
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 septembre 2020
254
Messages postés
29654
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 septembre 2020
6 739
Bonjour,

Plutot que des images, il faut nous donner le code source. Avec des balises de mise en forme, Pour la mise en forme des sources : Au dessus de la zone d'édition de tes messages, il y a des icones pour les enrichissements du texte. Celle qui a cet aspect <>▼ permet d'appliquer aux codes le format correspondant à sa nature.
Un petit tuto là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Après dans ton source tu ne gères pas les erreurs de la bdd, si ton insert échoue, tu n'as pas de message. Il faut activer l'affichage des erreurs PHP, activer les erreurs PDO et placer chaque requête dans un bloc try/catch
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Puis ta ligne insert est mal formée. Derrière ?,?,? il ne devrait pas y avoir une virgule, mais une parenthèse fermante.

Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020

Ok d'accord merci je vais faire le nécessaire sur les images etc.. et je reviens vers vous.
Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020

Voici le code formaté :

     <?php
        
        $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
        if(isset($_POST['forminscription']))
        {
            $pseudo = htmlspecialchars($_POST['pseudo']); 
            $mail = htmlspecialchars($_POST['mail']); 
            $mail2 = htmlspecialchars($_POST['mail2']); 
            $mdp = sha1($_POST['mdp']); 
            $mdp2 = sha1($_POST['mdp2']); 

            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2']))
            {
                    
                $pseudolength = strlen($pseudo);
                if($pseudolength <= 255)
                {
                    if($mail == $mail2)
                    {
                        if(filter_var($mail, FILTER_VALIDATE_EMAIL))
                        {
                        
                            $reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail ?");
                            $reqmail ->execute(array($mail));
                            $mailexist = $reqmail->rowCount();
                            if($mailexist == 0)
                            {

                            if($mdp == $mdp2)
                            {
                                $insertmembre = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?,?,?");
                                $insertmembre->execute(array($pseudo, $mail, $mdp));
                                $erreur = "Votre compte a bien été crée !";
                                
                            } 
                            
                            }
                            else
                            {
                                $erreur = "Vos mots de passe ne correspondent pas ! ";
                            }
                        }
                            else 
                            {
                               $erreur = "Adresse mail déjà utilisée !";
                            }
                        }
                        else 
                        {
                            $erreur = "Votr eadresse mail n'est pas valide ! ";
                        }
                    }  
                    else{
                        $erreur = "Vos adresses mail ne correspondent pas !";
                    }
                }
                    else 
                    {
                        $erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
                    }
            }
            else
            {
                    $erreur = "Tous les champs demandé ne sont pas remplit  !";
            }
        
        ?>
            <!DOCTYPE html>
                <head>
                    <title> TEST PHP </title>
                    <meta charset="utf-8">
                </head>
            
                <body>
                    <div align="center">
                            <h2>Inscription</h2>
                            <br /><br />

                        <form method="POST" action="">
                            <table>

                                <td align="right">
                            <label for="pseudo">Pseudo : </label>
                                </td>

                                <td align="right">
                            <input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>" />
                                </td>

                        </tr>
                            <tr>
                                <td align="right">
                            <label for="mail">mail : </label>
                                </td>

                                <td align="right">
                            <input type="email" placeholder="Votre mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>"/>
                                </td>

                            </tr>
                            
                            <tr>
                            <td align="right">
                            <label for="mail2">Confirmation du mail : </label>
                                </td>

                                <td align="right">
                            <input type="email" placeholder="confirmation adresse mail" id="mail2" name="mail2" value="<?php if(isset($mail2)) { echo $mail2; } ?>"/>
                                </td>

                            </tr>
                            
                            <tr>
                                <td align="right">
                            <label for="mdp">Mot de passe : </label>
                                </td>

                                <td>
                            <input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp"/>
                                </td>

                            </tr>
                            <tr>
                                <td align="right">
                            <label for="mdp2">Confirmation du Mot de passe : </label>
                                </td>

                                <td>
                            <input type="password" placeholder="confirmation mot de passe" id="mdp2" name="mdp2" />
                                </td>

                            </tr>

                            <tr>
                                <td></td>
                                <td>
                                <br />
                                <input type="submit" name="forminscription" value="je m'inscris"/>
                                </td>
                            </tr>

                            </table>
                        </form>
                        <?php
                            if(isset($erreur))
                            {
                                echo '<font color="red">'.$erreur. "</font>" ;
                            }
                        ?>
                    </div>
                </body>
            </html>


J'ai tout réglé maintenant j'ai une erreur ligne 25 :
Fatal Error et PDOException ( les erreurs)
Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020
>
Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020

entre le WHERE et mail c'est bien ça ?
si c'est ça merci mais sa ne change rien à mon problème principal
Messages postés
29654
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 septembre 2020
6 739 >
Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020

cette ligne
"INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?,?,?")


ce devrait être plutot
"INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?,?,?)"
Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020
>
Messages postés
29654
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
21 septembre 2020

ok merci de cette correction mais cela ne fonctionne toujours pas en revanche apparemment c'est à la ligne 25 qu'il y à un problème merci quand même.
Messages postés
14723
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 septembre 2020
254 >
Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020

Tu peux poster cette ligne avec la correction demandée par Jordane45 ?
Messages postés
29570
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
2 785 >
Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020



WHERE mail = ?
Messages postés
22
Date d'inscription
samedi 29 août 2020
Statut
Membre
Dernière intervention
13 septembre 2020

Voici la correction
{
                            
                            $reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
                            $reqmail->execute(array($mail));
                            $mailexist = $reqmail->rowCount();
                          if($mailexist == 0)
                        
                            {


Merci infiniment sa fonctionne je me sens bête d'avoir oublié un "=" et un guillemet merci
Je vous souhaite une bonne journée, soirée merci encore
Messages postés
14723
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 septembre 2020
254
Si le problème est résolu, merci de mettre le sujet en "résolu".