Probleme setcookie et header(location)
7 messages
• Page 1 sur 1
- Recif
- WRInaute impliqué

- Messages: 816
- Inscription: 25 Aoû 2004
Probleme setcookie et header(location)
Bonjour,
J'ai un problème duquel je n'arrive pas à me dépêtrer...
J'aimerais faire une détection de cookie au chargement de la page pour rediriger le visiteur ou pas en fonction de ce dernier. Malheureusment je suis obligé de cliquer deux fois sur le lien pour le cookie prenne effet. La redirection header(location: n'a pas l'air de prendre le cookie en compte la première fois...
En gros je détecte si le device est un iphone et si oui, je el redirige sur une page spéciale. Mais l'utilisateur peut choisir de voir le site original en cliquant sur un lien index.php?op=noiphone
Mais quand je clique sur le lien, la page d'origine réapparait. Il faut que je rafraichisse une fois ou que je reclique sur le lien pour que le cookie soit validé par le navigateur... Comment puis-je valider ce cookie directement en une fois?...
merci
J'ai un problème duquel je n'arrive pas à me dépêtrer...
J'aimerais faire une détection de cookie au chargement de la page pour rediriger le visiteur ou pas en fonction de ce dernier. Malheureusment je suis obligé de cliquer deux fois sur le lien pour le cookie prenne effet. La redirection header(location: n'a pas l'air de prendre le cookie en compte la première fois...
- Code: Tout sélectionner
if ($iPhone == true || $WinMob == true) {
setcookie('iphone', '1', (time() + 62208000),'/');
}
if ($op == "noiphone") {
setcookie('iphone', '0', (time() + 62208000),'/');
}
if ($op == "iphone") {
setcookie('iphone', '1', (time() + 62208000),'/');
}
if ($_COOKIE['iphone'] == 1) {
header("location:iphone_index.php");
}
En gros je détecte si le device est un iphone et si oui, je el redirige sur une page spéciale. Mais l'utilisateur peut choisir de voir le site original en cliquant sur un lien index.php?op=noiphone
Mais quand je clique sur le lien, la page d'origine réapparait. Il faut que je rafraichisse une fois ou que je reclique sur le lien pour que le cookie soit validé par le navigateur... Comment puis-je valider ce cookie directement en une fois?...
merci
- Ukri
- Nouveau WRInaute

- Messages: 26
- Inscription: 6 Sep 2009
Re: Probleme setcookie et header(location)
Les cookies enregistrés sur une page deviennent disponibles sur la prochaine page chargée
avec ça normalement ça ira :
avec ça normalement ça ira :
- Code: Tout sélectionner
if ($iPhone == true || $WinMob == true) {
setcookie('iphone', '1', (time() + 62208000),'/');
header("location:iphone_index.php");
}
if ($op == "noiphone") {
setcookie('iphone', '0', (time() + 62208000),'/');
}
if ($op == "iphone") {
setcookie('iphone', '1', (time() + 62208000),'/');
header("location:iphone_index.php");
}
if ($_COOKIE['iphone'] == 1) {
header("location:iphone_index.php");
}
- Recif
- WRInaute impliqué

- Messages: 816
- Inscription: 25 Aoû 2004
Re: Probleme setcookie et header(location)
Merci.
Mais marche pas... La première détection se passe bien mais quand je clique sur le lien index2.php?op=noiphone, il revient toujours à index_iphone.php
J'ai trouvé une solution alternative, mais pas très propre :
Mais marche pas... La première détection se passe bien mais quand je clique sur le lien index2.php?op=noiphone, il revient toujours à index_iphone.php
J'ai trouvé une solution alternative, mais pas très propre :
- Code: Tout sélectionner
if (($iPhone == true || $WinMob == true) && $_COOKIE['iphone'] == "") {
setcookie('iphone', '1', (time() + 62208000),'/');
echo "<meta http-equiv=\"refresh\" content=\"0; url=index2.php\">";
exit;
}
if ($op == "noiphone") {
setcookie('iphone', '0', (time() + 62208000),'/');
echo "<meta http-equiv=\"refresh\" content=\"0; url=index2.php\">";
exit;
}
if ($op == "iphone" && ($iPhone == true || $WinMob == true)) {
setcookie('iphone', '1', (time() + 62208000),'/');
echo "<meta http-equiv=\"refresh\" content=\"0; url=index2.php\">";
exit;
}
if ($_COOKIE['iphone'] == 1) {
header("location:iphone_index.php");
}
- Ukri
- Nouveau WRInaute

- Messages: 26
- Inscription: 6 Sep 2009
Re: Probleme setcookie et header(location)
oui en fait dans le test if ($op == "noiphone") tu remets le cookie à zéro, mais ça ne sera visible que sur la prochaine page... donc le cookie pour la page actuelle reste sur "1"
mets un header("location:index.php"); dans ce test...
mets un header("location:index.php"); dans ce test...
-

stopher - Nouveau WRInaute

- Messages: 16
- Inscription: 10 Mar 2010
Re: Probleme setcookie et header(location)
Salut ,
essaye on complétant comme ceci :
Tu ajoute en fait un code HTTP dan l'entête , et surtout , avec exit tu indique de ne pas exécuter la suite de ta page , bref tu rediriges immédiatement .
Ch.
essaye on complétant comme ceci :
- Code: Tout sélectionner
if ($iPhone == true || $WinMob == true) {
setcookie('iphone', '1', (time() + 62208000),'/');
header("Status: 200");
header("Location: http://vraiurl.com/iphone_index.php");
exit;
}
Tu ajoute en fait un code HTTP dan l'entête , et surtout , avec exit tu indique de ne pas exécuter la suite de ta page , bref tu rediriges immédiatement .
Ch.
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- header location Vs Header refresh ?
- Header Location
- header("Location: xxx") + header("Status: HTT
- php 5.3.8 problème de variable avec setcookie
- UR / header location et Duplicate
- Header location et référencement
- Fonction header location inopérante
- setcookie time() Problème avec Internet explorer
- header("Location ou 301 moved ?
- redierction php : header location ou require ?
- Test HTTP header
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée. - Test de lien (type de redirection)
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
