Re : Changement de page sur formulaire valide

Le
jeremie.fouche
Le 10/01/2005 21:36, Olivier Miakinen a écrit :
>>
>> [] dans la doc, il y a un magnifique exemple :
>> header( "Location: http://".$_SERVER['HTTP_HOST']
>> ."/".dirname($_SERVER['PHP_SELF'])
>> ."/".$relative_url );
>>
>> Le probleme de cet exemple, c'est que pour un developpement en
local,
>> j'obtiens un header de la sorte :
>> "Location: http://localhost//site/rep/mon_url.php"
>>
>> Et cette url n'est pas valide !

> Pour quelle raison n'est-elle pas valide ? Parce que ton adresse locale
> ne s'appelle pas localhost, ou bien à cause du double / entre localhost
> et le reste du chemin d'accès ?

C'est le double slash qui me gene. En effet, sur Firefox, il va
chercher sur google Adresse invalide implique recherche dans
google du contenu de l'adresse !

> dans le second, essayer ceci :
> header( "Location: http://".$_SERVER['HTTP_HOST']
> .dirname($_SERVER['PHP_SELF'])."/".$relative_url );

Bien sûr, cela me regle le probleme en local, mais la question que je
me pose, c'est quand je vais devoir deployer chez un hebergeur, cette
entete sera t elle toujours valide ? c'est a dire HTTP_HOST ne doit
pas se terminer par slash, et PHP_SELF ne doit pas débuter par slash.
Sinon, il y a bien la solution de transformer un '//' en '/'.

> Une autre idée pour avancer : chercher dans le phpinfo() ce qui
> ressemble à un début d'adresse valide : HTTP_HOST, mais peut-être
> aussi SERVER_NAME, ou autre chose.

Et voila, faisez confiance a une doc
Merci pour ces pistes, je vais voir.

--

Jérémie
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #714671
Le 11/01/2005 13:33, jeremie fouche me répondait :

essayer ceci :
header( "Location: http://".$_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])."/".$relative_url );


Bien sûr, cela me regle le probleme en local,


Ok. Mais voir la toute fin de mon article.

mais la question que je me pose, c'est quand je vais devoir deployer
chez un hebergeur, cette entete sera t elle toujours valide ?


Il n'y a pas de raison que cela ne marche pas.

c'est a dire HTTP_HOST ne doit pas se terminer par slash,


En effet.

et PHP_SELF ne doit pas débuter par slash.


Ben si, sinon ce serait un chemin relatif, or c'est censé être un chemin
absolu.

Sinon, il y a bien la solution de transformer un '//' en '/'.


D'un autre côté, je ne vois pas en quoi le '//' rend le chemin invalide.
En tout cas, cela marche chez moi, aussi bien en local que chez mon
hébergeur, que j'utilise Mozilla ou Internet Explorer.

Est-ce que pour toi le 2nd lien fonctionne moins bien que le 1er ?

Merci pour ces pistes, je vais voir.


Bon, tu posais une question, j'y ai répondu. Mais je m'attendais bien à
ce que John Gallet te réponde aussi : va plutôt lire sa réponse, elle
est beaucoup plus intelligente que l'idée de refaire une requête HTTP.


Publicité
Poster une réponse
Anonyme