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

Résolu/Fermé
Wollfie Messages postés 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 - 30 oct. 2017 à 18:15
Wollfie Messages postés 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 - 30 oct. 2017 à 22:41
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 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
30 oct. 2017 à 20:07
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 22696 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
30 oct. 2017 à 20:08
bonsoir, peux-tu partager le texte de ton code PHP, et pas l'image?
0
Wollfie Messages postés 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2
Modifié le 30 oct. 2017 à 21:41
<?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 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2
30 oct. 2017 à 21:31
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 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 30 oct. 2017 à 21:42
Il manque un point-virgule à la ligne 3
0
Wollfie Messages postés 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
30 oct. 2017 à 21:46
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 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2
30 oct. 2017 à 21:55
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 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2
30 oct. 2017 à 22:11
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 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Wollfie Messages postés 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018
30 oct. 2017 à 22:17
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 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
30 oct. 2017 à 22:19
Je l'ai fait de mon côté mais ça n'a rien donné...
0
Wollfie Messages postés 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
30 oct. 2017 à 22:19
Je peux t'envoyer des messages privés avec tout mon code ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Wollfie Messages postés 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018
30 oct. 2017 à 22:22
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 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2
30 oct. 2017 à 22:24
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 16 Date d'inscription lundi 30 octobre 2017 Statut Membre Dernière intervention 29 janvier 2018 2
30 oct. 2017 à 22:41
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