Bonsoir,
Voila j'ai crée un site en local avec une partie nécessitant un login + mdp.
En local tout le processus d'identification fonctionne, par contre une fois sur OVH j'ai l'impression que ma variable SESSION ne fonctionne pas.
Le code header.php :
Code PHP:
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])){
extract($_POST);
$pass = sha1($pass);
mysql_connect("xxxx","xxxx","xxxx");
mysql_select_db("xxxx");
$sql = " SELECT id FROM users WHERE login='$login' AND pass='$pass'";
$req = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($req)>0){
$_SESSION['Auth'] = array(
'login' => $login,
'pass' => $pass
);
header('Location:espace_client.php');
Le code espace_client.php :
Code PHP:
session_start();
require("auth.php");
if(Auth::isLogged()){
}else{
header('Location:index.php');
}
mysql_connect("xxxx","xxxx","xxxx");
mysql_select_db("xxxx");
$recup_info = "SELECT *
FROM users
WHERE login = '".$_SESSION['Auth']['login']."';";
$res_info = mysql_query($recup_info)or die("Erreur : ".$recup_info);
$ligne_info = mysql_fetch_assoc($res_info);
$login = $ligne_info['login'];
Le code auth.php :
Code PHP:
Class Auth{
static function isLogged(){
if(isset($_SESSION['Auth']) && isset($_SESSION['Auth']['login']) && isset($_SESSION['Auth']['pass'])){
extract($_SESSION['Auth']);
mysql_connect("xxxx","xxxx","xxxx");
mysql_select_db("xxxx");
$sql = " SELECT id FROM users WHERE login='$login' AND pass='$pass'";
$req = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($req)>0){
return true;
}else{
return false;
}
}else{
return false;
}
}
}
?>
Donc je tape bon login + mdp et je me retrouve sur index.php donc ma fonction isLogged a retourné false. Mais en local cela fonctionne bien.
J'ai essayé d'appeler une page test.php après header.php avec :
Code PHP:
session_start();
$login = $_SESSION['Auth']['login'];
echo $login;
?>
Et elle reste vide. Le problème vient-il des variables SESSION ? ou de la fonction isLogged ?
Merci