andyajram
Messages postés155Date d'inscriptionvendredi 24 mai 2013StatutMembreDernière intervention 8 avril 2020
-
Modifié le 27 avril 2018 à 15:34
jordane45
Messages postés37504Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mai 2023
-
27 avril 2018 à 21:06
Bonjour, je travail sur un formulaire de connexion , mais la vérification si le mot de passe ou login sont correctes ne marche pas , je n'ai aucune action ni si c'est correct ou faux , la page de connexion se charge toujours sur elle même :
<?php
session_start();
if(isset($_POST['username']) && isset($_POST['password']))
{
$db_username = 'root';
$db_password = '';
$db_name = 'mapbdd';
$db_host = 'localhost';
$db = mysqli_connect($db_host, $db_username, $db_password,$db_name)
or die('could not connect to database');
$username = mysqli_real_escape_string($db,htmlspecialchars($_POST['username']));
$password = mysqli_real_escape_string($db,htmlspecialchars($_POST['password']));
if($username !== "" && $password !== "")
{
$requete = "SELECT count(*) FROM login where
nom_utilisateur = '".$username."' and mot_de_passe = '".$password."' ";
$exec_requete = mysqli_query($db,$requete);
$reponse = mysqli_fetch_array($exec_requete);
$count = $reponse['count(*)'];
if($count!=0) // nom d'utilisateur et mot de passe correctes
{
$_SESSION['username'] = $username;
header('Location: principale.php');
}
else
{
header('Location: login.php?erreur=1'); // utilisateur ou mot de passe incorrect
}
}
else
{
header('Location: login.php?erreur=2'); // utilisateur ou mot de passe vide
}
}
else
{
header('Location: login.php');
}
mysqli_close($db); // fermer la connexion
?>
c'est à dire qu'il ne fait pas le traitement , il passe directement au dernier else , quelqu'un peut me dire où y'a l'erreur ?
Merci d'avance
A voir également:
Formulaire de connexion php
Formulaire connexion php - Meilleures réponses
Formulaire de connexion php mysql - Meilleures réponses
jordane45
Messages postés37504Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 mai 2023341 Modifié le 27 avril 2018 à 16:59
Bonjour,
Essaye ça :
<?php
session_start();
//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//connexion propre mysqli
$db_username = 'root';
$db_password = '';
$db_name = 'mapbdd';
$db_host = 'localhost';
$db = mysqli_connect($db_host, $db_username, $db_password,$db_name)
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//----------------------------------------------------------//
//récupération PROPRE des variables AVANT de les utiliser
//----------------------------------------------------------//
$username = !empty($_POST['username']) ? $_POST['username'] : NULL;
$password = !empty($_POST['password']) ? $_POST['password'] : NULL;
if($username && $password) {
$username = mysqli_real_escape_string($db,$username);
$password = mysqli_real_escape_string($db,$password);
$requete = "SELECT count(*)
FROM login
WHERE nom_utilisateur = '".$username."'
AND mot_de_passe = '".$password."' ";
if (!$exec_requete = mysqli_query($db,$requete)){
echo("Error requete : " . mysqli_error($db));
}
$reponse = mysqli_fetch_array($exec_requete);
mysqli_close($db); // fermer la connexion
$count = $reponse['count(*)'];
if($count!=0){
// nom d'utilisateur et mot de passe correctes
$_SESSION['username'] = $username;
header('Location: principale.php');
exit(); //toujours mettre un EXIT après une redirection
} else {
header('Location: login.php?erreur=1'); // utilisateur ou mot de passe incorrect
exit();
}
} else {
//le temps des tests :
print_r($_POST);
//header('Location: login.php?erreur=2'); // utilisateur ou mot de passe vide
exit();
}
?>
27 avril 2018 à 16:00
27 avril 2018 à 16:36
27 avril 2018 à 16:39
et dans la page j'ai ça : Array ( )
27 avril 2018 à 16:44
Quel est le code de ton formulaire HTML ?
As tu précisé la "méthode" ?
Modifié le 27 avril 2018 à 16:46