un coup sa marche un coup sa marche pas

Vincere
Invité n'ayant pas de compte PHPfrance

25 avr. 2008, 18:02

Bonjour à tous,

Cela fait un moment que je suis des conseils à droite à gauche sur ce forum et site, et jusqu'ici j'ai toujours trouver solution à mes problèmes mais là je bloque....

Je me suis fait un bout de code qui limite l'inscription des personnes sur mon site aux personnes de mon département.

Donc mon bout de code marche à tous les coups sous firefox, mais sous ie 7 , un coup sa marche un coup il me mets une erreur 404, là je comprends pas :roll: :roll: :roll: :

Voici le bout de code

Code : Tout sélectionner

<?php $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); $extract1=explode("-",$hostname); $valeur=$extract1[0]; if (ereg ("45", $valeur, $regs)){ header("Location: http://www.adressedusite/signup.php"); exit; } else { include("signup2.php"); } ?>
j'ai essayé aussi avec un include à la place de "header"

Code : Tout sélectionner

<?php $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); $extract1=explode("-",$hostname); $valeur=$extract1[0]; if (ereg ("45", $valeur, $regs)){ include("signup.php"); } else { include("signup2.php"); } ?>
Donc en clair ce que je souhaite c'est si les gens habitent dans le 45, ils sont redirigé vers "signup.php" , sinon vers "signup2.php"

Franchement si quelqu'un pouvez m'aider , ça serait vraiment super cool :wink:

MERCI

Vincere
Invité n'ayant pas de compte PHPfrance

26 avr. 2008, 06:03

Toujours personne??????

Mammouth du PHP | 19672 Messages

26 avr. 2008, 08:48

Peut-être bien que si personne n'a apporté de réponse, c'est parce que ta question manque de clarté ou encore est incomplète.

Es-tu bien certain qu'on retrouve toujours "45" dans l'hôte de ton visiteur ? Là, tu t'attaques à un problème de géolocalisation, c'est peut-être un terme qu'il serait approprié de mettre dans une recherche :google: non ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1996 Messages

26 avr. 2008, 09:18

Je pense que cela vient de ta variable $hostname. De ce que je me rappelle ($_SERVER['REMOTE_ADDR']) est différents selon les providers. Je rejoins Cyrano, la géolocalisation est difficile. Habitant en haute normandie et me connectant en adresse ip dynamique, je suis souvent géolocalisé par des scripts comme le tiens en basse normandie!
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2008, 13:04

Tout d'abord merci d'avoir répondu :wink:

Ok, merci de m'avoir répondu,

Ok, la géolocalisation est difficile.

Mais cela ne le ferait pas toujours avec la meme personne... (moi)

Sachant que mon ip est fixe... :?

Donc dans ce cas cela devrait marcher à tous les coups....

Car si on lit bien ma question mon code fonctionne à chaque fois sous FF et pas à tous les coups sous ie7. Ceci est là question.

Et pour Cyrano: oui je trouve toujours 45, puisque je fait l'essai avec moi, et donc je sort toujours la même info, alors pourquoi cela marcherait pas à tous les coups.

Mammouth du PHP | 19672 Messages

26 avr. 2008, 13:08

Parce que tous n'utilisent pas forcément le même fournisseur d'accès que toi. Il faudrait donc partir d'un jeu d'essai. Si ton site est en ligne, tu devrais enregistrer une collection de valeurs et t'en servir pour valider tes tests.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1996 Messages

26 avr. 2008, 21:51

Que te donne la variable $hostname sous FF et IE (normalement la même chose mais bon)
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 422 Messages

27 avr. 2008, 08:47

et si au lieu de faire des header() et des include(), tu faisais des echo "je suis ici" ou echo "je suis là" dans un premier temps. En affichant la variable $hostname également.

Cela permettrait de valider le concept. Après, tu montes la difficulté en mettant un header ou un include et en les testant unitairement. Et puis les deux.

Il faut également faire attention dans les tests : que fais-tu ? Est-ce que tu recharges simplement la page ? Est-ce que tu vides le cache à chaque fois ? Est-ce ce que tu retapes l'URL ? On passe parfois du temps fou à tester une page en la modifiant alors qu'on ne fait que recharger la page du cache local. Essaye donc en faisain un echo "essai 1", echo "essai 2", ... que tu changes à chaque fois.

Mammouth du PHP | 1668 Messages

27 avr. 2008, 09:34

pourquoi tu fais pas 2 header()
Fais la gestion d'erreur c'est util pour comprendre ^^
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol