Bonjour,
j'ai un probleme qui ne s'est averer que quand je suis passer de esyphp2.01b à xampp .
le probleme est que mon cookie refuse de se "unserialiser"
code:
serialisation:
<?php
include("config.php");
if((isset($_POST['username']))AND(isset($_POST['password'])))
{
if((empty($_POST['username']))||(empty($_POST['password'])))
{
die ("nom d'utilisateur ou mot de passe incorrect");
}
$username=$_POST['username'];
$password=md5($_POST['password']);
mysql_connect($Serveur,$Utilisateur,$MotDePasse)or die ("erreur de connexion"); // connexion mysql
mysql_select_db($Base) or die ("erreur dans la selection de la base");
$sql = " SELECT * FROM site_user WHERE login = '".$username."' " ;
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_array($req);
if(($data['pass']==$password)&&($data['login']==$username))
{
$v = serialize($data);
// creation de la commande de cookie
setcookie($cookie_user,$v,time()+$dure_cookie,"/");
// redirige
header("location:index.php");
}
else
{
echo "nom d'utilisateur ou mot de passe incorrect";
}
}
else
{
echo "nom d'utilisateur ou mot de passe incorrect";
}
?>
------------------------------------------------------
code unserialise:
<?php
include("config.php");
if (isset ($_COOKIE[$cookie_user]))
{//test test si pas admin
// extraction du cookie
$verif = array();
$a=' \ ';
eregi_replace(" ","",$a);
$d=$_COOKIE[$cookie_user];
eregi_replace($a, "", $d);
$verif = unserialize($d);
}
else
{
header("location:login.html");
}
?>
-------------------------------------------------------------
quand j'affiche var_dump(($_COOKIE[$cookie_user]));
j'ai:
a:10:{i:0;s:1:\"1\";s:7:\"id_user\";s:1:\"1\";i:1;s:5:\";admin\";s:5:\"login\";s:5:\"admin\";i:2;s:32:\"1a1dc91c907325c69271ddf0c944bc72\";s:4:\"pass\";s:32:\"1a1dc91c907325c69271ddf0c944bc72\";i:3;s:6:\"aymane\";s:3:\"nom\";s:6:\"aymane\";i:4;s:1:\"1\";s:5:\"admin\";s:1:\"1\";}
probleme:
il y a des "\" qui se sont ajouter lors du setcookie je crois ce qui fait que
var_dump(unserialize($_COOKIE[$cookie_user])); retourne false.
j'ai essayer de remplacer les "\" ajoutés par des "" grace a ereg_replace() ,str_replace()... mais je n'ai trouver aucun moyen de l'exprimer en tant qu'expression régulière que faire

je crois que je suis pas loin de l'explosion
