Formulaire de connexion

Résolu
A11111* - Modifié le 25 août 2020 à 19:03
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 25 août 2020 à 20:30
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

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
25 août 2020 à 12:51
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
0
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 .
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
25 août 2020 à 13:03
Regarde ton code et celui corrigé par Jordane.
Tu as vraiment l'impression d'avoir correctement utilisé les balises?
0
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 .
0

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

Posez votre question
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
25 août 2020 à 14:00
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
0
Merci pour l'aide je le ferai pour mes prochains codes pour ce code mon problème a été résolu .
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
25 août 2020 à 19:05
bonjour

j'ai ajouter la coloration au message.
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
25 août 2020 à 20:30
merci, bonne soirée
0
Rejoignez-nous