1 pièce(s) jointe(s)
Lecture de données de ma BDD
Bonsoir à tous,
Pour la faire courte, il m'est demander de récupérer via un formulaire (login.php / méthode = post),
1) Vérifier si le pseudo entré est compris dans ma BDD -> Members -> pseudo. Si pas, afficher une erreur !
2) Vérifier si le mot de passe entré correspond à celui du user entré en pseudo. Si pas, afficher une erreur!
3) Si le mot de passe et le pseudo sont corrects, direction --> profile.php?pseudo="user".
J'ai essayé plusieurs manière mais mon code ne fonctionne malheureusement pas, quelqu'un pourrait-il me donner des conseils ou de l'aide ?
Merci
Login.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| <?php
require ('function.php');
// Si les champs du formulaire contiennent qqchose
if(isset($_post['pseudo']) && isset($_post['password'])){
//On nettoie les variables pour eviter les injections
$user = sanitize($_POST['pseudo']);
$pw = sanitize($_POST['password']);
try{
$query = $pdo->prepare("SELECT * FROM members where pseudo = ?");
$query->execute(array($_POST['pseudo'])) or die ('erreur pseudo');
$smt = $query->fetch();
}
catch(Exception $e) {
die("Connexion à la base de donnée impossible !");
}
$_SESSION['login'] = $smt['pseudo'];
$_SESSION['pass'] = $smt['password'];
if($_SESSION['login']->rowCount() == 0){
$error = "Le pseudo '$user' n'existe pas ! Inscrivez-vous";
}
else {
if($pw === $_SESSION['pass']){
redirect("profile.php?pseudo={$_SESSION['pseudo']}");
}
else{
$error = "Mauvais mot de passe !";
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Log In</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="styles.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="title">Log In</div>
<div class="menu">
<a href="index.php">Home</a>
<a href="signup.php">Sign Up</a>
</div>
<div class="main">
<form action="login.php" method="post">
<table>
<tr>
<td>Pseudo:</td>
<td><input id="pseudo" name="pseudo" type="text" value=""></td>
</tr>
<tr>
<td>Password:</td>
<td><input id="password" name="password" type="password" value=""></td>
</tr>
</table>
<input type="submit" value="Log In">
</form>
<?php
if(isset($error)){
echo "<div class='errors'><br>$error</div>";
}
?>
</div>
</body>
</html> |
function.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?php
//variables de connexion
$host = "localhost";
$dbname= "my_social_network_base";
$user = "root";
$pw = "root";
try{
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", "$user", "$pw");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $exc){
die("Erreur lors de l'accès à la base de données.");
}
function sanitize($var){
$var = stripslashes($var);
$var = strip_tags($var);
$var = htmlspecialchars($var);
}
function redirect($url, $statusCode = 303){
header("Location : ' . $url, true, $statusCode'");
die("");
}
?> |
Et pour terminer, ma base de données.
Pièce jointe 418258