|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Débutant
Inscription : février 2006 Messages : 136 ![]() |
Bonjour,
J'ai enfin réussit à me créer une BDD et un page pour une ouverture de session. Je ne connaissais rien au PHP avant hier et j'ai réussit, en glanant ça et là des infos à me monter une page ! Je suis plutôt content ! ENfin bref... il me reste encore quelques petites problèmes non résolus : j'ai donc construit ma page qui va vérifier que le login correspond bien avec le mot de passe que l'utilisateur a entré dans le formulaire et ensuite une page affiche "vous être bien logué !" Ce que je voudrais maintenant c'est qu'une fois logué, l'utilisateur soit automatique redirigé vers son espace perso. J'ai trouve la commande | header ("location: http://monsite.fr"); | mais ça ne fontionne pas (cf. : ligne 28 du code) ! voici un bout du code pour mieux comprendre : Code :
Voici l'erreur qui s'affiche quand je teste ma page : Citation:
|
|||
|
|
00
|
|
|
#2 |
![]() ![]() Benjamin PREVOTArchitecte de système d'information Inscription : septembre 2004 Messages : 1 568 ![]() |
Salut, essaie en mettant la ligne 24 (header...) entre les lignes 19 et 20. Ca donne quoi
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN F.A.Q. : Java, PHP, (X)HTML / CSS N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème |
|
|
00
|
|
|
#3 | ||
![]() ![]() Marc ChappuisDéveloppeur Web Inscription : décembre 2003 Messages : 1 535 ![]() |
La fonction header permet de fixer la valeur pour un header HTTP de
réponse. Dans le protocole HTTP, les headers sont envoyés avant le contenu. Par exemple, si le serveur retourne une page html: Code :
de la page est envoyé. La permière commande echo ou print produit du résultat de 'contenu' et provoque l'envoi des headers HTTP avant. Donc si tu veux intervenir au niveau des headers tu dois le faire avant d'envoyer du contenu comme te la suggéré Nesmontou. Il faut notter aussi que tout ce qui est code html avant l'ouverture du marqueur php <?php est du 'contenu' (même un simple espace). Si tu essaye d'intervenir au niveau des headers et que du contenu est déjà produit tu obtient un message d'erreur "Headers already sent". |
||
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() |
Le header est l'en-tete du fichier qui comprends plein d'infos le concernant, tels que son type, l'encodage, l'url (location) etc etc...
Le browser se sert donc du header pour savoir comment afficher les infos qu'il a recu. Le fait est donc, qu'une fois que qqch est écrit dans la page, le header est fermé et envoyé, tu ne peux donc plus le modifier. header("location: url") n'est donc utile que pour effectuer des redirections sur une page qui n'affiche rien (un long script qui gère une base de données par exemple, et redirige ensuite) Si tu veux afficher qqch et puis rediriger apres quelques secondes il faut plutot te tourner vers le meta tag Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() |
Tient pile poil ce que je recherchais!
Donc si j'ai bien compris quand on fais un header (redirection ou pas) Il ne peut pas être changé si on a deja envoyé un contenut mais par contre il n'est pris en compte qu'aprés le traitement du reste de la page! Donc en gros si on a une page à rediriger on met le header tout de suite aprés session_start quoi qu'il arrive! Comma ça on est sur de pas avoir d'erreur? (Je sais pas pourquoi mais ça m'as l'air trop simple comme ça |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com