PHP et redirect

Résolu/Fermé
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009 - 30 oct. 2008 à 16:08
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009 - 31 oct. 2008 à 02:14
Bonjour,

Pour s'implifier et unifier toutes mes connexions à ma BD MySQL, j'ai décidé de créer un fichier "connexion.php" et de faire un include dans chacune de mes pages qui vont utiliser la BD. Même s'il n'y a pas aucun lien vers ce fichier, il est toujours possible d'y accéder en tapant l'adresse directement. Comme ça donne une page web vide, je veux faire une redirection vers la page principale pour éviter de tomber sur une page blanche.

Dans ma page, j'ai fais un echo de ça :
"<html><head><meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=monUrl"></head></html>"
comme il est fait en HTML pour faire des redirections.

Le problème c'est qu'à chaque fois qu'une page fait le include du fichier PHP, il fait la redirection, donc des boucles de reload car ma page principale utilise le "connexion.php".

Est-ce qu'il existe un autre moyen !?

Merci!

28 réponses

InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 16:23
Pour faire une redirection utilise ça:

header ( "Location: ./taPage.php" );
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 16:28
Je n'ai plus de redirection en boucle, mais j'obtient un gros warning dans mes autres pages :

Warning: Cannot modify header information - headers already sent by (output started at /home/content/k/e/n/kenshin24/html/index.php:20) in /home/content/k/e/n/kenshin24/html/connexion.php on line 8
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 16:32
A ca c'est parceque tu tente d'envoyer des cookies ou des sessions trop tard...
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 16:44
Pourtant, j'ai seulement ajouter le bout de code que tu m'as donné un peu plus haut. Je fais aucun accès à des cookies ou des sessions dans tout le site.

Merci
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 oct. 2008 à 16:46
avant le header tu ne doit avoir aucune balise html ou autre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 16:45
tu es sûr?
Tu n'utilise pas de session start() ??
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 16:50
Ah oui c'est vrai
Que du code php avant les headers
Car une fois que tu envoie du code HTML ou JavaScript le Server passe dans la phase "lecture" il considere qu'il a tous les headers pour cette page
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 16:56
Ok, pas de code disont... pour des fonctions ou autre. Car j'ai du code PHP à l'intérieur de mon code HTML, mais c'est pour populer des listes de nouvelles ou autres éléments semblables.

Par contre, j'ai retrouver ma boucle infinie, même Firefox l'a trouvée cette fois.

Peut-être que ce que je demande n'est pas possible, que je suis trop paranoiaque. ;-) =)

Merci
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 17:01
non ce n'est pas impossible

en fait si j'ai bien compris, tu veux créer une page qui te permette de te connecter à ta base de donnée et d'utilser des requetes, puis de l'inclure dans tout tes pages??
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 17:04
En gros c'est ça. La page contient seulement les infos nécessaires à la connexion (username, password et hôte).
Je suis capable de l'inclure sans problème.

Par contre, si je fais http://www.domaine.com/connexion.php, ça me renvoit une page blanche vide. Je veux éviter ça en faisant une redirection.

Merci
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 17:07
d'accord et dans ta page connexion.php, tu n'utilise que du php?
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 17:08
Exact, je déclare quelques variables à l'intérieur d'une balise <?php ?>
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 17:13
je crois savoir pourquoi...
tu appelle ta page connexion.php après du code HTML ou JavaScript non?
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 17:21
Au début oui, quand j'avais le message de Warning de PHP qui ne pouvait modifier le warning. Ensuite, j'ai déplacé mon include au début de la page avec n'importe quelle balise HTML. Dans cette situation, j'ai une boucle infinie de redirection.
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 17:29
Ahhhh,
c'est normal: dans ta page principale tu tente d'inclure ta page connexion.php qui te redirige vers ta page principale, donc tu inclut ta page principale qui inclut connexion.php qui te redirige vers ta page principale et ainsi de suite...

Donc tu ne peux pas faire un header dans connexion.php vers ta page principale. Le mieux serai de creer une page erreur.php qui te dirai "cette page n'exite pas" et tu redirige connexion.php vers cette page.

mais en fesant un include tu "incluera" cette page dans la tienne. Et ce n'est pas ce que tu veux je presume.

Donc utilise: require_once('connexion.php'); qui chargera ton code php
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 17:31
Donc tu fais un header ( "Location: ./erreur.php" ); dans connexion.php apres tes parametres php
et tu met require_once('connexion.php'); dans ta page principale dans le code php ou tu en a besoin
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 18:12
Hum, j'ai bien ajouter le fichier erreur.php. J'ai modifier le fichier connexion.php pour que la fonction header() pointe vers erreur.php. Par contre, j'ai toujours l'erreur dans mon fichier principal comme quoi je ne peux pas changer les informations du header :

Warning: Cannot modify header information - headers already sent by (output started at /home/content/k/e/n/kenshin24/html/index.php:24) in /home/content/k/e/n/kenshin24/html/connexion.php on line 8

Merci
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 18:15
Tu as bien fait un require_once??
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 18:23
Oui, tout est en ordre!
0
kenshin24 Messages postés 34 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 26 octobre 2009
30 oct. 2008 à 18:33
Je crois que le require_once ne marche pas car il importe quand même la fonctioner header(). Si j'importais un deuxième fichier avec la fonction header(). là le require_once marcherait.
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 oct. 2008 à 18:34
... peux tu me montrer les parties de ton code?
0