Formulaire de connexion [Résolu]

Signaler
-
Messages postés
14705
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 août 2020
-
Bonjour,
J'ai encore une fois besoin de votre aide mon code de connexion et inscription était normal , quand j'ai essayé une nouvelle fois inscription ou connexion je reçois l'erreur :

Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\wamp644\www\includes\connexion.php on line 8
( ! ) Error: Call to a member function prepare() on null in C:\wamp644\www\includes\connexion.php on line 8
Call Stack



J'ai 3 fichiers dans mon code

index.php:
<?php session_start();?>
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <title>bibliothèque de référence</title>


</head>
<body>
 <h1>Bienvenue sur votre profil</h1>
    <?php
    if (isset($_SESSION["Email"]))
    {
     echo "Votre email est :".$_SESSION["Email"];

    }else{
          echo "Veuillez vous connecter";
         }

    ?>

    <?php include 'menunavigation.php';
    global $db;
    ?>

    <h1>Se connecter</h1>
     
 <form method="post">
  
  <input type="Email" name="adresse" id="adresse" placeholder="Veuillez entrer votre Email" required> <br/>
  
        <input type="password" name="motdepasse" id="motdepasse" placeholder="Veuillez entrer votre mot de passe" required> <br/>
        <input type="submit" name="formlogin" id="formlogin" value="Se connecter"> <br/>
         <?php include 'includes/connexion.php';?>       
 <h1>S'inscrire</h1> 
 <?php include "includes/inscription.php";?>
    </form>
  <form method="post">
  
  <input type="text" name="Nom" id="Nom" placeholder="Veuillez entrer votre nom" required> <br/>
  
  <input type="text" name="Prenom" id="Prenom" placeholder="Veuillez entrer votre prénom" required> <br/>
  
  <input type="Email" name="Email" id="Email" placeholder="Veuillez entrer votre Email" required> <br/>
  
        <input type="password" name="password" id="password" placeholder="Veuillez entrer votre mot de passe" required> <br/>
        
        <input type="password" name="cpassword" id="cpassword" placeholder="Veuillez confirmer votre mot de passe" required> <br/>
  <input type="submit" name="formsend" id="formsend" value="S'inscrire"> <br/>
 </form>
 

</body>
</html>



Pour le fichier connexion.php :
<?php
   
   if(isset($_POST['formlogin']))
   {
    extract($_POST);
    if(!empty($adresse) && !empty($motdepasse))
    {
     $q=$db->prepare("SELECT * FROM utilisateurs WHERE Email=:Email");
     $q->execute
     (['Email'=>$adresse]);
      $result=$q->fetch();
      if($result==true){
       $hashpassword=$result['password'];
       if(password_verify($motdepasse,$result['password'])){
        echo "Connexion en cours";
        $_SESSION['Email']=$result['Email'] ;
        
       }else {
        echo "Mot de passe incorrect";
       }
       

      }
      else{
       echo "Le compte portant l'email ".$adresse." n'existe pas";

      }
}
    else{
     echo 'Veuillez remplir tous les champs';
    }
   }




?>

Pour le fichier inscription.php :
<?php 
   if(isset($_POST["formsend"])){
    extract($_POST);
    if(!empty($password) && !empty($cpassword) && !empty($Email) && !empty($Nom) && !empty($Prenom)){
      if($password==$cpassword){
       $options=[
        'cost'=>12
       ];
      $hashpass=password_hash($password,PASSWORD_BCRYPT,$options);

        $c=$db->prepare("SELECT Email FROM utilisateurs WHERE Email=:Email");
      $c->execute(['Email'=>$Email]);
      $result=$c->rowcount();
      if ($result==0){
             $sql = "INSERT INTO utilisateurs (Nom,Prenom,Email,password)   VALUES (:Nom,:Prenom,:Email,:password)";

             $datas = array(':Nom'=>$Nom, ':Prenom'=>$Prenom,':Email'=>$Email,':password'=>$hashpass);

//Execution de la requete
             try{
                $requete = $db-> prepare($sql) ;
             $requete->execute($datas) ;
             }catch(Exception $e){
  // en cas d'erreur :
              echo " Erreur ! ".$e->getMessage();
                             }
       
          echo "Le compte a été créé";
          }else {
          echo "Le mail existe déjà";
          } 
    }else{
         echo "Les champs ne sont pas tous remplis";
        } 
     
    }  
}      

?>

7 réponses

Messages postés
14705
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 août 2020
432
doublon

https://forums.commentcamarche.net/forum/affich-36820328-formulaire-de-connexion

De plus Jordane t'as déjà demandé d'utiliser les balises de code.
Si tu ne fais pas d'efforts pour que les bénévoles que nous sommes aient envie de lire ton code, tu auras moins (pas) de réponses.
https://forums.commentcamarche.net/forum/affich-36819469-formulaire-d-inscription-et-connexion#1
Bonjour je l'ai posté dans le forum parcequ'il m'a demandé de ne plus utiliser ce site , et pour les balises de code j'ai suivi le site et je les ai ajoutés .
Messages postés
14705
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 août 2020
432
Regarde ton code et celui corrigé par Jordane.
Tu as vraiment l'impression d'avoir correctement utilisé les balises?
J'ai cliqué sur la flèche et j'ai cliqué sur php au début de chaque code comme l'indique le lien je ne sais pas comment faire pour corriger mon code de manière à être plus explicite avecc les lignes et les balises en couleur comme dans mon code , si vous pouvez me suggérer ce que je dois ajouter . Merci pour votre aide .
Messages postés
14705
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 août 2020
432
Modifier ici c'est trop tard, tu n'as qu'une heure pour le faire, et comme Jordane te l'as dit ce forum est peu fréquenté.

J'ai cliqué sur la flèche et j'ai cliqué sur php au début de chaque code comme l'indique le lien

oui et ce qui est écrit aussi, c'est que le code doit être copié collé à l'intérieur des balises, pas en dessous
Merci pour l'aide je le ferai pour mes prochains codes pour ce code mon problème a été résolu .
Messages postés
1767
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2020
86
bonjour

j'ai ajouter la coloration au message.
Messages postés
14705
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
31 août 2020
432
merci, bonne soirée