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...
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
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.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
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.