Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2007, 10h31   #1
Gunner4902
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut Problème $_SERVER sur IE6

Bonjour à tous,

J'ai un bout de code PHP qui vise à interdire l'accès d'une page directement et oblige à passer par une autre :

Code :
1
2
3
4
5
6
<?php
if($_SERVER['HTTP_REFERER'] != 'h*ttp://www.site.co.uk/index.php')
{
header('Location: h*ttp://www.site.co.uk/index.php');
}
?>
Celà fonctionne normalement sur Firefox, Opera etc, mais sur IE6, le logiciel loops à l'infini…

Comment remédier au problème ?

Merci de votre aide
  Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 11h04   #2
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Je ne vois pas de rapport direct à priori, mais es tu sur de ta variable
Citation:
$_SERVER['HTTP_REFERER']
Elle n'existe pas sur mes serveurs

Sinon, je vois plusieurs choses, tu peux essayer en HTML
Code :
<meta http-equiv="refresh" content="0; url=http://www.site.co.uk/index.php">
J'ai une question. A quoi correspond ton
Citation:
h*ttp:
Je n'ai jamais vu cela

Riete
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 11h59   #3
Gunner4902
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Bonjour Riete,

$_SERVER["HTTP_REFERER"] est une variable prédéfinies.

Pour le meta refresh, c'est bien, mais non conditionnel, donc ça ne m'intéresse pas vraiment

Enfin le h*ttp, c'est pour éviter tout simplement que les moteurs de recherche prennent celà pour une adresse http

Dernière modification par Domi2 ; 31/03/2011 à 16h39.
  Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 12h13   #4
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Je viens d'apprendre qq chose grace à toi par rapport au h*ttp.
Par contre j'insiste (peut être lourdement), mais je viens d'allé voir dans mon phpinfo() et je ne trouve pas la variable $_SERVER['HTTP_REFERER'] et je suis en version 5 de php.
As tu controlé cela sur ton seurveur?

le meta refresh pourrait très bien être conditionnel au même titre que ton header Tu ne crois pas ??
Code :
1
2
3
4
5
6
<?php
if($_SERVER['HTTP_REFERER'] != 'h*ttp://www.site.co.uk/index.php')
{
echo "<meta http-equiv=\"refresh\" content=\"0; url=h*ttp://www.site.co.uk/index.php\">"
}
?>
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 13h00   #5
Gunner4902
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
J'ai essayé avec le code que tu m'as donné, celà provoque une erreur 500 (HTTP 500 - Erreur interne de serveur).

Pour l'absence de $_SERVER['HTTP_REFERER'] dans le compte rendu généré par phpinfo(), c'est norma, cette variable ne peut être présente que si l'on appelle le phpinfo de la page où est le $_SERVER['HTTP_REFERER'] (mais comme elle reboucle sur une autre page, c'est impossible de la lire ).

Sinon, $_SERVER['HTTP_REFERER'] est bien supporté par PHP5*, et succède à $HTTP_REFERER

* je suis sur serveur Apache 2.2.4 + PHP Version 5.2.4
  Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 14h57   #6
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Alors là, j'avoue que je suis perplexe

Je tourne des serveur apache 1.3.33 alors peut être que ceci explique cela?

J'ai mis au sale ce bout de code et pour moi il tourne nickel. Je l'ai testé avec IE6 et Safari
Si ca peut t'aider?
Il est stocker dans:
http://tonserveur/test/
Code :
1
2
3
4
5
6
7
8
<?php
//echo $_SERVER['HTTP_REFERER']."<br>";
 if($_SERVER['HTTP_REFERER'] != 'http://tonserveur/tes/')
 {
 	echo "redirection!!!";
 	echo "<head><meta http-equiv=\"refresh\" content=\"2; url=http://tonserveur/test/\"></head>";
 }
?>
Tiens moi au jus.
riete
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 09h42   #7
Gunner4902
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Je viens de le tester sous Apache 2.2.4, et que ça soit sous IE6 ou Opera 9.2.4.
La page où est mis le code PHP se réactualise en boucle toutes les deux secondes…
donc ça ne fonctionne pas comme le code initial qui ne fait qu'une seule redirection conditionnelle…
  Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 14h51   #8
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Je ne saurais trop te recommander de tester ce code avec une autre version d'Apache.
Cela devient de plus en plus suspect (bien qu'il vaille mieu être suspect que ... tu connais la suite).
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Mettre Résolu
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h35.


 
 
 
 
Partenaires

Hébergement Web