Linkman
Messages postés113Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention24 juin 2009
-
28 sept. 2004 à 15:36
Linkman
Messages postés113Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention24 juin 2009
-
28 sept. 2004 à 21:32
Bonjour!
Je suis hébergé par free et j'ai un petit (gros lol) problème.
Quand on clique sur un lien, la plus part du temps on est redirigé vers la page d'accueil au lieu de la bonne page, explications :
Mon site fonctionne avec un switch dans l'index, et donc selon la valeur "p", celui-ci doit afficher la page, oui mais voilà, la plus part du temps, il me renvois à la valeur default qui est ma page d'accueil. J'utilise aussi un session_start sur mon index ... enfin voilà, avant cela ne faisait pas ça, et j'ai pourtant rien changé...
Si vous voulez voir le problème sur mon site : http://khclub.free.fr Merci de m’éclairer ...
PS: un jour je suis tombé sur une rubrique de free qui permettait de voir toutes les évolutions et les problèmes rencontrer par les services "pages web" de free ... On pouvait même écrire à un gars qui s'appelle Yann ou Yoann, si vous connaissez l'url, se serai sympa de me la passé :)
tardigrade
Messages postés208Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 décembre 2008 28 sept. 2004 à 17:11
Ca sent le probleme des variables globales il faut preférer faire comme suit:
if(isset($_GET['p']))
switch($_GET['p'])
{
case 'gal':
header('location: toto.php');
die();
break;
}
Pour que ce code marche à la perfection il faut qu'il soit executé avant tout envoi des entetes du serveur au client.
Si jamais cela ne fonctionne pas insere dans ton code phpinfo(); et cherche tes variables. tu peux aussi passer le error_reporting
à 2047 ou 2048 pour afficher la totalite des errors, warning et notice.
ini_set('error_reporting',2047);
tardigrade
Messages postés208Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 décembre 2008 28 sept. 2004 à 19:51
wouah pas facile d'expliquer ca en quelques mots. Quand tu te sers d'internet explorer pour appeler une page en method get internet explorer envoi un truc comme GET /toto.php HTTP/1.1
(method page_demande version_protocole) la reponse du serveur la plus conne serait GET 200 OK puis il envoi le code html. Ce qui fait (et tu peux t'amuser) que si dans ta page toto.php tu n'ecris que
header("HTTP/1.0 404 Not Found"); internet explorer t'affichera que la page n'existe pas alors que oui. Tout ce truc pas tres compréhensif pour dire qu'une redirection header('location: '); ne fonctionne que si aucune entete n'a encore ete envoye au navigateur c'est a dire avant la balise <html> avant meme un print ou un echo.