Vous utilisez $_SESSION['name']
dans un script et $_SESSION['username']
dans un autre.
J'imagine que si vous changez username
à name
ou vice versa l'erreur disparaîtra.
Je ne sais pas quelle est l'erreur avec le mot de passe, mon instinct est que vous le voyez parce que la session vient juste de commencer et que le tableau $_SESSION est vide, essayez d'en jeter quelques-uns if(isset($_SESSION[ '...'])) autour.
Dans admin_login, vous devez vérifier que le bouton de connexion a été cliqué et que vous ne chargez pas simplement le formulaire, c'est-à-dire
//admin_login.php
<?php
session_start();
if(isset($_SESSION["member"])){
header("location:index.php");
exit();
}
if(@$_POST['button'] == 'LogIn'){ // <- Check the user has clicked the button
$manager = preg_replace('#[A-Za-z0-9]#i',"",$_SESSION["username"]);
$password = preg_replace('#[A-Za-z0-9]#i',"",$_SESSION["password"]);
include "../storescripts/connect_to_mysql.php";
$sql = mysql_query("SELECT * FROM admin WHERE username ='$manager' AND password ='$password'LIMIT 1");
$exist_count = mysql_num_rows($sql);
if($exist_count == 1){
while(mysql_fetch_array($sql)){
$id = $row["id"];
}
$_SESSION["id"]= $id;
$_SESSION["name"]= $manager;
$_SESSION["password"]= $password;
header("location:index.php");
exit();
}else{
echo 'This information is incorrect,try again <a href = "index.php">Click Here</a>';
exit();
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
....
Quelques autres choses à noter :
- Vous avez deux
<html>
balises dans le formulaire de connexion - L'attribut action du formulaire de connexion comporte un espace avant le nom du script
- Si vous utilisez LIMIT 1 dans votre SQL, vous n'avez pas besoin d'envelopper le
mysql_fetch_array
dans unwhile()