Bonjour,
Voila je rencontre un petit problème avec mon code.
while ($row = mysqli_fetch_array($rel_e)) {
$pass1 = password_verify($pass, $row['pass']);
if($pass){
$_SESSION['name'] = $row['fullname'];
$_SESSION['email'] = $email;
header("Location:formulaire.php?login=successfull&email=$email");
Décrivez ici votre code ou ce que vous cherchez à faire
Je veux affecter la page formulaire à une adresse email et chaque email a sa page specifique
Je veux affecter la page formulaire à une adresse email
toujours la même page pour tous les utilisateurs
Bonjour, de un, Mysql devient trop vieux, il faut passer à PDO
De deux, quel est la valeur de $email ?
Bonjour.
euh non mysql n'est pas trop vieux.
ne pas confondre les fonctions mysql_* qui sont obsolètes et mysqli qui lui est toujours bon comme PDO
tu as bien récupéré le fullname donc pour l'émail c'est pareil à condition qu'il est bien été demandé dans la requête
Merci pour vos reponses, et l'adresse email recuperée par G_post = "Arnold@gmail.com"
Carouge10 : Justement je bloque après la comparaison des deux emails selui du champ saisi et celui verifié dans la base de donnee si c'est vrai ...je dois affecté par rapport a cet email une page.php (suivi.php) pour permettre a cet utilisateur de saisir des données... une autre adresse email aura une autre page.php "tarif.php" pour saisir d'autres données etc...
//// Carouge10---------------LE code de toute la page
<?php
include("database.php");
session_start();
if(isset($_SESSION['email'])){
header("Location:home.php?reason=vous êtes déjà connecté");
}
if(isset($_GET['reason'])){
echo "<script>alert('".$_GET['reason']."')</script>";
}
if(isset($_POST['login-submit'])){
$email = $_POST['email'];
$pass = $_POST['password'];
$conn_e = "SELECT * FROM users WHERE email='".$email."'";
$rel_e = $conn->query($conn_e);
if( empty($email) || empty($pass) ){
header("Location:log.php?error=Remplisser les champs vides pour se connecter");
exit();
}
else if(!mysqli_num_rows($rel_e) > 0){
header("Location:log.php?error=Inscrivez-vous d'abord");
exit();
}
else{
while ($row = mysqli_fetch_array($rel_e)) {
$pass1 = password_verify($pass, $row['pass']);
if($pass){
$_SESSION['name'] = $row['fullname'];
$_SESSION['email'] = $email;
//////// C'EST LA OU jE VOULAIS TESTER PAR RAPPORT $mail quele page je dois ouvrir
header("Location:formulaire.php?login=successfull&email=$email");
}
else{
header("Location:log.php?error=Mot de Passe érroné");
exit();
}
}
}
}
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="stylel.css">
</head>
<body>
<div class="login-box">
<div class="row">
<form action="log.php" method="POST">
<div class="form-group">
<p class="text-center text-danger">
<?php
if(isset($_GET['error'])){
echo $_GET['error'];
}
?>
</p>
<h1>Login</h1>
<div class="textbox">
<i class="fas fa-user"></i>
<input type="email" name="email" placeholder="Entrer votre email">
</div>
<div class="textbox">
<i class="fas fa-lock"></i>
<input type="password" name="password" placeholder="Entrer votre Mot de Passe">
</div>
<input type="submit" name="login-submit" class="btn btn-block bg-primary" value="Login">
</form>
</div>
</div>
</div>
</body>
</html>
d'accord,
Tout d'abord ta requête n'est pas préparer donc ouvertes aux injections sql (sécurité)
Tu ne récupères qu'une seul dans ta table, non ? (l'email est bien unique ?) si oui alors le while est inutile
Ensuite tu tests $pass alors que c'est $pass1 qui va valloir true ou false suivant la comparaison du mdp
Pour ta demande de page, j'ajouterais un champ dans la table users avec le nom de la page a rediriger
Bonsoir.
J'ajouterais quelque chose, au lieu de ne vérifier que les variables email
et pass
soient bien définies et non vide qu'après avoir fait la requête SQL, fais plutôt la vérification avant, les requêtes SQL ne doivent être faites que lorsque c'est nécessaire et pour ces variables là à ce stade de ton code, tu n'as pas besoin des données de la base pour faire la vérification.
Donc :
Autre recommendation, évites de passer des données avec des espaces dans l'url, passes-y plutôt à la rigueur un mot clé qui te permettra de reconnaître le type de message à afficher à l'utilisateur, bien que je te conseille plutôt de te documenter sur le système de notification flash, soit via la session.
@ Lartak : Pour un débutant, les conseils sont toujours les bienvenus...Merci Mr Larttak...C'est très aimable de votre part. Je vais essayer et revenir ...