Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction header

2 réponses
Avatar
mb
Bonjour ,

un problème avec la fonction header
MAMP ( non pro ) php 5.2.13

( je n'ai pas trouvé de forum mamp sauf des forum web )

un appel à header sous la forme

header("Location: http://localhost:8888/compteur/outcmpt.html");

comme il est indiqué dans
http://php.net/manual/fr/function.header.php

donne ceci

The requested URL
/compteur/ http://localhost:8888/compteur/outcmpt.html was not found on
this server.

et dans la barre d'adresse ceci
http://localhost:8888/compteur/%C2%A0http://localhost:8888/compteur/outcm
pt.html

2 questions se posent
d'où sort ce A-circonflexe ( C2 ) suivi d'un nbsp ( A0 ) ?

et pourquoi le host est (semble-t-il) écrit par le serveur alors
qu'il faut donner l'adresse complète y compris le host ?


bien sûr ( j'ai vérifié ) pas de carctère avant header même pas de bom

j'ai essayé des adresses absolues relatives ....
rien n'y fait

merci pour toute indication

--
mb

2 réponses

Avatar
Olivier Miakinen
Le 22/05/2011 00:57, mb a écrit :

header("Location: http://localhost:8888/compteur/outcmpt.html&quot" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://localhost:8888/compteur/outcmpt.html");

donne ceci

The requested URL
/compteur/Â http://localhost:8888/compteur/outcmpt.html was not found on
this server.

et dans la barre d'adresse ceci
http://localhost:8888/compteur/%C2%A0http://localhost:8888/compteur/outcm
pt.html



Je parie que :

1) la page appelante est de la forme :
http://localhost:8888/compteur/quelque-chose

2) cette page est en UTF-8

3) tu as une espace insécable (C2 A0) à la place d'une espace simple
entre « Location: » et « http://... » dans l'appel à header()

2 questions se posent
d'où sort ce A-circonflexe ( C2 ) suivi d'un nbsp ( A0 ) ?



Si la page est en UTF-8, c'est un nbsp seul.

et pourquoi le host est (semble-t-il) écrit par le serveur alors
qu'il faut donner l'adresse complète y compris le host ?



Parce que, contrairement à ce que demande la norme, les navigateurs
acceptent souvent les url relatives au lieu des url absolues.

bien sûr ( j'ai vérifié ) pas de caractère avant header même pas de bom



L'erreur n'aurait pas été la même. Vérifie plutôt la chaîne passée à la
fonction header().

j'ai essayé des adresses absolues relatives ....
rien n'y fait



Sauf que justement ton adresse que tu crois absolue doit être considérée
comme une adresse relative du fait qu'elle commence par autre chose que
http://...

merci pour toute indication



Cordialement,
--
Olivier Miakinen
Avatar
mb
In article <4dd84569$,
Olivier Miakinen <om+ wrote:

Le 22/05/2011 00:57, mb a écrit :
>
> header("Location: http://localhost:8888/compteur/outcmpt.html&quot" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://localhost:8888/compteur/outcmpt.html&quot;);
>
> donne ceci
>
> The requested URL
> /compteur/Â http://localhost:8888/compteur/outcmpt.html was not found on
> this server.
>
> et dans la barre d'adresse ceci
> http://localhost:8888/compteur/%C2%A0http://localhost:8888/compteur/outcm
> pt.html

Je parie que :

1) la page appelante est de la forme :
http://localhost:8888/compteur/quelque-chose

2) cette page est en UTF-8

3) tu as une espace insécable (C2 A0) à la place d'une espace simple
entre « Location: » et « http://... » dans l'appel à header()

> 2 questions se posent
> d'où sort ce A-circonflexe ( C2 ) suivi d'un nbsp ( A0 ) ?

Si la page est en UTF-8, c'est un nbsp seul.



c'est ça ! je n'y est pas fait attention mais le site php.net/manual/fr/
met un nbsp au lieu d'un blanc ( probablement pour la présentation ) ,
comme quoi le Copier-Coller ne fait pas forcément gagner du temps

le remplacement de nbsp ( C2A0 ) par blanc , ou sa suppression
donne les 2 , le résultat



> et pourquoi le host est (semble-t-il) écrit par le serveur alors
> qu'il faut donner l'adresse complète y compris le host ?

Parce que, contrairement à ce que demande la norme, les navigateurs
acceptent souvent les url relatives au lieu des url absolues.




merci beaucoup

--
mb