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

Résolu
Wollfie Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
Wollfie Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, peux-tu partager le texte de ton code PHP, et pas l'image?
0
Wollfie Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   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 16 Date d'inscription   Statut Membre Dernière intervention   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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
Il manque un point-virgule à la ligne 3
0
Wollfie Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   2 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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   Statut Membre Dernière intervention   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 16 Date d'inscription   Statut Membre Dernière intervention   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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > Wollfie Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   2 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Je l'ai fait de mon côté mais ça n'a rien donné...
0
Wollfie Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   2 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Je peux t'envoyer des messages privés avec tout mon code ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > Wollfie Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   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 16 Date d'inscription   Statut Membre Dernière intervention   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