domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010
-
4 sept. 2008 à 08:23
domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010
-
4 sept. 2008 à 17:54
bonjour
je débute en php et j'essaie de faire un site qui rassemble toutes les photos que j'ai prises lors de visites dans des beaux p'tits villages (http://www.beauxvillages.fr) Sur la 1ère page on choisit la région, puis sur la 2ème le département, sur la 3ème le village, et hop on tombe sur la page d'index de l'album photo du village choisi. Enfin ça c'est la théorie, parce que cette dernière page s'ouvre vide...
je précise que le header même "en dur" ne fonctionne pas, et que si je fais un echo sur $_SERVER['HTTP_HOST']. rtrim(dirname($_SERVER['PHP_SELF'])."albums/album_". $_POST['village']. "/index.html")) j'obtiens bien www.beauxvillages.fr/albums/album_biron/index.html" (si le village choisi était biron)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 4 sept. 2008 à 09:46
j'ai parfaitement compris ton probleme... comme je le disais plus haut, ta question revient deux fois par semaine...
la fonction header (php) modifie l'entete de la requete HTTP. Ca n'a rien a voir avec l'entete <head> de la page HTML... Ce sont DEUX choses DIFFERENTES.
si tu mets ton header AVANT tout envoi de HTML (comme je l'ai deja dit...), ca devrait fonctionner...
domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010 4 sept. 2008 à 08:45
merci pour cette réponse rapide. Mais bonjour le charabia !
dois-je comprendre que mon problème est simplement un problème de \\ au lieu de // ? sinon l'emplacement est correct ?
sinon je vois pas... (de toute manière je ne peux pas essayer avant ce soir, chez moi)
domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010 4 sept. 2008 à 08:45
merci pour cette réponse rapide. Mais bonjour le charabia !
dois-je comprendre que mon problème est simplement un problème de \\ au lieu de // ? sinon l'emplacement est correct ?
sinon je vois pas... (de toute manière je ne peux pas essayer avant ce soir, chez moi)
domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010 4 sept. 2008 à 09:06
le charabia c'était pas toi, c'était la question qui avait été posée au départ...
j'ai bien évidemment lu la réponse, mais je ne vois absolument pas en quoi elle m'éclaire, d'autant plus que mon site fonctionne à la perfection en local.
Un collègue de bureau me dit que comme j'ai un hébergement linux je dois mettre des \ et non des /, je vais donc essayer ce soir.
merci quand même
domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010 4 sept. 2008 à 09:20
j'ai lu dans de la doc (parce que j'ai cherché, faut pas croire) que le header devait être avant la balise <html>, c'est pourquoi j'ai mis la ligne à cet endroit.
Non ? pas bon ?
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 4 sept. 2008 à 09:26
pas bon du tout...
sur l'autre post, j'ai du marquer a un endroit :
Requette comme reponse sont composes de deux parties : l'entete et le corps (en anglais, header et body, que ceux qui n'aiment pas l'anglais y portent quand meme attention, ca a son importance) pour la requette, le body n'est pas forcement utilise.
Le header de la requette contient de nombreuses choses : la page sur laquelle on veut aller, le host (si vous avez plusieurs sites par machine, vous les diferenciez par cette variable, host c'est le nom de domaine qui sert a acceder a la page), le mode d'action (en general GET ou POST), le protocol (HTTP 1.0 ou 1.1), et des parametres plus optionels comme la page precedente, le navigateur, la langue, les types de documents acceptes... Et bien evidement, les cookies sont contenus dans le header de la requette...
Dans le cadre d'un GET, on n'utilise pas le corps, sinon, lors d'un POST, on envoi la taille, et les donnees envoyees ensuite.
Pour un POST de fichier, il y a plusieurs champs : le nom du fichiers, sa taille, son mimetype, et son contenu.
Pour la reponse du serveur, le header contient le status (404 non trouve, 403 forbiden, 501 = erreur, 200 = tout va bien ...), le mime type du document, son charset, les nouveaux cookies...
Ensuite, le corps de la reponse du serveur, ca peut-etre n'importe quoi...
alors seulement, le navigateur recoit cette reponse, la lit, et l'interprete a sa maniere (afficher un html, executer du javascript, ...)
et plus loin
php-header
En php, plusieurs fonctions utilisent le header (session_start, les cookies, ou tout simplement header), elles doivent etre appellees AVANT l'envoie du corps de la reponse, sinon, elles ne peuvent pas envoyer de header... Pour cette raison, on peut utiliser ob_start pour masquer l'envoie de html (mais c'est pas joli joli non plus...) cf php.net pour les fonctions ob_start et ob_end_flush.
domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010 4 sept. 2008 à 09:34
c'est bien que tu me fasses mettre le doigt sur mes erreurs, mais je vois pas.
Ce que tu me dis, le doctype machin chose pour moi c'est l'entete. Mais je ne vois pas le rapport avec ce que tu mets avant ; pour moi il n'est pas question de requête à cet endroit ; j'en ai fait avant, j'ai fini par obtenir un nom de village, et dans cette fameuse page je construis une adresse html que je mets en paramètre d'un header pour rediriger sur la bonne page.
Et quand je dis "header" je parle fonction php, pas "entete", c'est pas là qu'on ne se comprendrait pas ?
domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010 4 sept. 2008 à 09:51
eh bien écoute.... dès que je suis rentré chez moi j'essaie ce que tu me dis et je te tiens au courant sur ce forum. Il me tarde d'être à ce soir !
merci encore pour ton aide et à +