Formulaire de connexion

Résolu
A11111* - Modifié le 25 août 2020 à 19:03
Whismeril
Messages postés
17337
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
- 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
17337
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
596
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
17337
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
596
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
17337
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
596
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
1807
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
5 mai 2022
144
25 août 2020 à 19:05
bonjour

j'ai ajouter la coloration au message.
0
Whismeril
Messages postés
17337
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
596
25 août 2020 à 20:30
merci, bonne soirée
0