problème avec les conditions IF et les sessions

problème avec les conditions IF et les sessions - PHP - Programmation

Marsh Posté le 23-02-2008 à 16:06:05    

j'ai un soucis avec une condition, c'est à dire que malgré la condition que je donne (qui fonctionne bien) et bien le session_regenerate_id s'execute alors qu'il ne devrait pas
 
$query1 = "SELECT * FROM matable WHERE user_id='". session_id()."' AND page='".$pageconsulte."'";  
$res1 = mysql_query($query1, $requete) or die(mysql_error());  
$visitpage = mysql_fetch_assoc($res1);
$totalRows_visitpage = mysql_num_rows($res1);
 
if ($totalRows_visitpage >= 1) {
session_regenerate_id();
Header("Location: http://autresite.com" );
}
 
le session_regenerate_id s'execute même si $totalRows_visitpage = 0
la redirection Header fonctionne bien pour un $totalRows_visitpage >= 1
 
alors pourquoi l'un fonctionne et pas l'autre ?
 
faut il mettre un exit() quelque part ?
 
merci de votre aide

Reply

Marsh Posté le 23-02-2008 à 16:06:05   

Reply

Marsh Posté le 23-02-2008 à 16:31:26    

cbastien41 a écrit :

le session_regenerate_id s'execute même si $totalRows_visitpage = 0


C'est normal, >= signifie supérieur ou égale. Donc quand on a 0, on est bien dans un des deux cas, donc la condition est respecté.
Ce qu'il te faut, il me semble, c'est un strictement supérieur donc simplement >


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 23-02-2008 à 17:26:51    

non çà doit pas être çà, car lorsque c'est égal à zéro, normalement rien ne doit se passer puisque c'est dans le cas ou s'est égal ou supérieur à 1
lorsque c'est surpérieur ou égal à 1, le header n'est pas pris en compte et c'est ce qu'il faut, mais le session_regenerate_id lui est pris en compte alors qu'il ne devrait pas

Reply

Marsh Posté le 23-02-2008 à 17:50:14    

Ah oui au temps pour moi j'avais mal lu ton code.
Tu met bien un session_start() avant ce code?
 
Sinon je pense qu'il te faudrait un exit() après ton header(), sauf si tu es bien sûr et certain qu'aucun code ne sera exécuté.
 
En passant tu peux aussi vérifier si ça passe dans ta condition ou pas. En faisant un echo par exemple. Comme ça au moins tu saura si le problèlme vient de code ou d'ailleurs.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 24-02-2008 à 15:44:04    

j'ai bien mis session_start() du fait que toutes mes sessions fonctionnent...
 
mon soucis est que mon session_regenerate_id s'execute alors qu'il n'est pas dans ma condition !

Reply

Marsh Posté le 24-02-2008 à 15:57:08    

dwogsi a écrit :

En passant tu peux aussi vérifier si ça passe dans ta condition ou pas. En faisant un echo par exemple. Comme ça au moins tu saura si le problèlme vient de code ou d'ailleurs.


 
T'as essayé? C'est un bon moyen de vérifier si le problème vient de là.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed