Problème de cookies

Eléphanteau du PHP | 33 Messages

19 juin 2012, 18:54

Bonjour,
Je tente de faire une redirection fonction d'un cookies, cependant, ca ne fonctionne pas comme je voudrais... Il fait comme s'il existait pas... Je m'explique :

Je cré mon cookies :

Code : Tout sélectionner

<?php $expiree = 24*31*3600; setcookie("AUTORISATION",'YES' ,time()+$expiree); print ("<script language = \"JavaScript\">location.href = 'accueil.php';</script>"); ?>
Je vérifie l'existance de mon cookies sur la page accueil tel que :

Code : Tout sélectionner

<?php if ($_COOKIE["AUTORISATION"] !='YES') { print ("<script language = \"JavaScript\">location.href = 'index.php';</script>"); } ?>
Pour lui, bien que le cookie soit présent sur le PC, il va toujours me rediriger vers la page "index.php".
Un test que j'ai fait :

Code : Tout sélectionner

<?php if ($_COOKIE["AUTORISATION"] =='YES') { echo ("OK"); } else { echo ("PAS OK"); } ?>
Une fois le cookie créé, il affiche bien "OK". Si je le suprimme, il affiche "PAS OK".
Cependant, ma vérification plus haut (si cookie différent de... alors...) elle ne fonctionne pas.

Une idée ?

Merci d'avance,
Fab.

ViPHP
xTG
ViPHP | 7331 Messages

19 juin 2012, 18:57

Problème de cache navigateur ?
Car il n'y a pas de raison que le code fonctionne sur une page et pas sur une autre.
Sauf si tu as un traitement qui modifie ce cookie.

Eléphanteau du PHP | 33 Messages

19 juin 2012, 19:00

Malheureusement aucun traitement qui le modifie :(

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 juin 2012, 19:41

Histoire d'éviter les messages d'erreur quand le cookie n'existe pas :
// le cookie exite pas
if ( ! isset($_COOKIE["AUTORISATION"])){
	header('Location: index.php');
}
else {
	// le cookie existe
	if ($_COOKIE["AUTORISATION"] !== 'YES') {
		header('Location: index.php');
	}
	else {
		echo 'la je sais pas c est pas mis ;)
		
		Mais le cookie existe et a la bonne valeur !';
	}
}
Pour tester met en commentaire les header et ajoute des echo à la place.

tu test bien sur deux page différentes ?

pourquoi utiliser du JS pur la redirection ? autant le faire direct en php ;)

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 33 Messages

20 juin 2012, 17:06

"la je sais pas c est pas mis ;) Mais le cookie existe et a la bonne valeur ! "

Voila ce qu'il affiche...

Eléphanteau du PHP | 33 Messages

20 juin 2012, 17:17

Voila, ca fonctionne enfin. En fin de compte, j'ai pas compris le soucis. Cependant j'ai fait ainsi:

J'ai fait une page de création cookies:
<?php
	$expiree = 24*3600;
   setcookie("AUTORISATION",'YES' ,time()+$expiree);
   die('<META HTTP-equiv="refresh" content=0;URL=accueil.php>'); 
 ?>
et sur chaque page soumis a accés j'ai mis ca:
  <?php
if ($_COOKIE["AUTORISATION"] !='YES')
      {
          die('<META HTTP-equiv="refresh" content=0;URL=index.php>'); 
      }?>
Et maintenant ca fonctionne.

Pfiouf. lol

Merci encore de l'aide :)