Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur page de connexion automatique php

    16 juillet 2019 à 22:09:25

    Bonjour,

    Débutant en php,je m'adresse à vous pour une petite aide après plusieurs heures de labeur, sans résultats.

    J'ai donc créer la page de login suivante mais une erreur s'affiche et je ne comprends pas son origine :

    • Parse error: syntax error, unexpected '    ' (T_STRING) in /Applications/MAMP/htdocs/php_work/compte.php on line 28

    Voici mon code :

    <?php
    
    //Vérifie si la session existe
    if (isset($_SESSION['email'])) 
    {
    	$email = $_SESSION['email'];
    }
    else
    {
    	$email = 'visiteur';
    }
    
    
    // Cas de l'email en session qui existe et de l'email non vide
    if ($email!="visiteur" && $email!="") 
    {
    	echo "Il est déja logué"; // Il est éjà logué
    }
    else
    {
    	echo "vérification du cookie";
    	//Vérifie si le cookie existe
    	if (isset($_COOKIE['email']) AND isset($_COOKIE['password'])) 
    	{
    		$emailCookie = $_COOKIE['email'];
    		$passCookie = $_COOKIE['password'];
    	    // On crée la session
    	    $_SESSION['email'] = $emailCookie;
    	}
    	
    	else
    	{
    
    		$test_connexion = htmlspecialchars($_POST['email']);
    
    		$bdd = new PDO('mysql:host=localhost;dbname=database', 'root', 'root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    		$req = $bdd->prepare('SELECT email, password FROM user WHERE email = :email');
    		$req->execute(array('email' => $test_connexion));
    		$resultat = $req->fetch();
    
    		// Comparaison du pass envoyé via le formulaire avec la base
    		$isPasswordCorrect = password_verify($_POST['password'], $resultat['password']);
    		$pass = $resultat['password'];
    
    		if (!$resultat)
    		{
       			echo 'Mauvais identifiant ou mot de passe !';
    		}
    		else
    		{
       			 if ($isPasswordCorrect) 
       			 {
    				//On positionne le cookie
    				 setCookie('email',$test_connexion,(time()+60*60*24*365));
    				 setCookie('password',$pass,(time()+60*60*24*365));
    
    				 $_SESSION['email'] = $_COOKIE['email'];
    				 $_SESSION['password'] = $_COOKIE['password'];
    
    			 }
            
        	}
    	}
    }
    
    
    ?>

    Merci d'avance à l'âme charitable qui pourra m'aider. Débuter en programmation n'est jamais facile...:(

    • Partager sur Facebook
    • Partager sur Twitter
      16 juillet 2019 à 22:56:54

      Bonsoir.

      Encore un membre qui qui ne fais pas les vérifications dans l'ordre.

      Vérifier si un enregistrement est retourné après avoir utilisé le possible enregistrement, ça n'a aucun sens.

      De plus que tu sauvegardes deux cookies et tu tentes d'utiliser leurs valeurs tout de suite après, ce qui n'est pas possible.

      Et encore une fois, il ne faut pas utiliser la fonction htmlspecialchars sur des données qui vont être sauvegardées en base de données.

      -
      Edité par Lartak 16 juillet 2019 à 23:01:19

      • Partager sur Facebook
      • Partager sur Twitter

      Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

        16 juillet 2019 à 22:58:52

        Faut il revoir le système de login en général à savoir : 

        • Vérification d'une session existante SINON 
        • Vérification de cookies existants SI oui, créer une session SINON
        • Proposer le formulaire de Login et créer des cookies pour la prochaine connexion automatique ?

        -
        Edité par Pierre B 18 juillet 2019 à 10:17:36

        • Partager sur Facebook
        • Partager sur Twitter
          18 juillet 2019 à 10:14:31

          Lartak a écrit:

            De plus que tu sauvegardes deux cookies et tu tentes d'utiliser leurs valeurs tout de suite après, ce qui n'est pas possible.

          En fait, l'idée de la page est de voir dans un premier temps si une session existe, sinon de voir si l'utilisateur possède des cookies pour le connecter à sa session sans besoin de remettre ses identifiants. S'il ne possède pas de cookies, je lui en créer 2. Mais il est vrai qu'il faudrait recharger la page pour pouvoir se servir des cookies. Les cookies ne sont donc pas "utiliser tout de suite après"

          Lartak a écrit:

            Et encore une fois, il ne faut pas utiliser la fonction htmlspecialchars sur des données qui vont être sauvegardées en base de données.

          Que faut-il utiliser alors ?

          -
          Edité par Pierre B 18 juillet 2019 à 10:15:15

          • Partager sur Facebook
          • Partager sur Twitter

          Erreur page de connexion automatique php

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown