Dans un site, j'ai de nombreux formulaires. La technique que j'utilise
actuellement est la suivante: Le formulaire renvoie a la page courante
(le formulaire) lors d'un appuie sur submit. cela permet de rafficher
le formulaire avec les valeurs précedentes, en particulier si le
formulaire n'est pas remplie correctement.
Mais j'aimerai bien que lorsque le formulaire est valide, on aille sur
une autre page. Pour cela, je me suis dis qu'il existait une fonction
header. Et dans la doc, il y a un magnifique exemple :
header( "Location: http://".$_SERVER['HTTP_HOST']
."/".dirname($_SERVER['PHP_SELF'])
."/".$relative_url );
Le probleme de cet exemple, c'est que pour un developpement en local,
j'obtiens un header de la sorte :
"Location: http://localhost//site/rep/mon_url.php"
Et cette url n'est pas valide !
J'ai donc 2 petites questions :
1- Quelle est la méthode généralement utilisée pour les formulaires (
ie: <form action=" ??? "> ) ? PHP_SELF ? ou bien la page ou l'on
desire aller si le formulaire est valide ?
2- L'exemple ne fanctionnant pas en localhost chez moi sur EasyPhp,
dois-je changer de technique de changement d'url ? ou bien cela vient
il du fait que je sois en localost ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
[...] dans la doc, il y a un magnifique exemple : header( "Location: http://".$_SERVER['HTTP_HOST'] ."/".dirname($_SERVER['PHP_SELF']) ."/".$relative_url );
Le probleme de cet exemple, c'est que pour un developpement en local, j'obtiens un header de la sorte : "Location: http://localhost//site/rep/mon_url.php"
Et cette url n'est pas valide !
Pour quelle raison n'est-elle pas valide ? Parce que ton adresse locale ne s'appelle pas localhost, ou bien à cause du double / entre localhost et le reste du chemin d'accès ?
Dans le premier cas, voir la config de ton serveur (quitte à aller poser la question sur fciw.serveurs) ; dans le second, essayer ceci :
Une autre idée pour avancer : chercher dans le phpinfo() ce qui ressemble à un début d'adresse valide : HTTP_HOST, mais peut-être aussi SERVER_NAME, ou autre chose.
[...] dans la doc, il y a un magnifique exemple :
header( "Location: http://".$_SERVER['HTTP_HOST']
."/".dirname($_SERVER['PHP_SELF'])
."/".$relative_url );
Le probleme de cet exemple, c'est que pour un developpement en local,
j'obtiens un header de la sorte :
"Location: http://localhost//site/rep/mon_url.php"
Et cette url n'est pas valide !
Pour quelle raison n'est-elle pas valide ? Parce que ton adresse locale
ne s'appelle pas localhost, ou bien à cause du double / entre localhost
et le reste du chemin d'accès ?
Dans le premier cas, voir la config de ton serveur (quitte à aller poser
la question sur fciw.serveurs) ; dans le second, essayer ceci :
Une autre idée pour avancer : chercher dans le phpinfo() ce qui
ressemble à un début d'adresse valide : HTTP_HOST, mais peut-être
aussi SERVER_NAME, ou autre chose.
[...] dans la doc, il y a un magnifique exemple : header( "Location: http://".$_SERVER['HTTP_HOST'] ."/".dirname($_SERVER['PHP_SELF']) ."/".$relative_url );
Le probleme de cet exemple, c'est que pour un developpement en local, j'obtiens un header de la sorte : "Location: http://localhost//site/rep/mon_url.php"
Et cette url n'est pas valide !
Pour quelle raison n'est-elle pas valide ? Parce que ton adresse locale ne s'appelle pas localhost, ou bien à cause du double / entre localhost et le reste du chemin d'accès ?
Dans le premier cas, voir la config de ton serveur (quitte à aller poser la question sur fciw.serveurs) ; dans le second, essayer ceci :
Une autre idée pour avancer : chercher dans le phpinfo() ce qui ressemble à un début d'adresse valide : HTTP_HOST, mais peut-être aussi SERVER_NAME, ou autre chose.
Missions courtes
"Olivier Miakinen" <om+ a écrit dans le message news: cruov5$2pmi$
[...] dans la doc, il y a un magnifique exemple : header( "Location: http://".$_SERVER['HTTP_HOST'] ."/".dirname($_SERVER['PHP_SELF']) ."/".$relative_url );
Le probleme de cet exemple, c'est que pour un developpement en local, j'obtiens un header de la sorte : "Location: http://localhost//site/rep/mon_url.php"
Et cette url n'est pas valide !
Pour quelle raison n'est-elle pas valide ? Parce que ton adresse locale ne s'appelle pas localhost, ou bien à cause du double / entre localhost et le reste du chemin d'accès ?
Dans le premier cas, voir la config de ton serveur (quitte à aller poser la question sur fciw.serveurs) ; dans le second, essayer ceci :
Une autre idée pour avancer : chercher dans le phpinfo() ce qui ressemble à un début d'adresse valide : HTTP_HOST, mais peut-être aussi SERVER_NAME, ou autre chose.
Bonjour, Pourquoi ne travailles pas avec seulement des adresses de pages relatives (par rapport à la page courrante) ? Tu éviterais tous ces problèmes.
Cordialement. Michel Site : Missions-courtes.
"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message news:
cruov5$2pmi$1@cabale.usenet-fr.net...
[...] dans la doc, il y a un magnifique exemple :
header( "Location: http://".$_SERVER['HTTP_HOST']
."/".dirname($_SERVER['PHP_SELF'])
."/".$relative_url );
Le probleme de cet exemple, c'est que pour un developpement en local,
j'obtiens un header de la sorte :
"Location: http://localhost//site/rep/mon_url.php"
Et cette url n'est pas valide !
Pour quelle raison n'est-elle pas valide ? Parce que ton adresse locale
ne s'appelle pas localhost, ou bien à cause du double / entre localhost
et le reste du chemin d'accès ?
Dans le premier cas, voir la config de ton serveur (quitte à aller poser
la question sur fciw.serveurs) ; dans le second, essayer ceci :
Une autre idée pour avancer : chercher dans le phpinfo() ce qui
ressemble à un début d'adresse valide : HTTP_HOST, mais peut-être
aussi SERVER_NAME, ou autre chose.
Bonjour,
Pourquoi ne travailles pas avec seulement des adresses
de pages relatives (par rapport à la page courrante) ?
Tu éviterais tous ces problèmes.
"Olivier Miakinen" <om+ a écrit dans le message news: cruov5$2pmi$
[...] dans la doc, il y a un magnifique exemple : header( "Location: http://".$_SERVER['HTTP_HOST'] ."/".dirname($_SERVER['PHP_SELF']) ."/".$relative_url );
Le probleme de cet exemple, c'est que pour un developpement en local, j'obtiens un header de la sorte : "Location: http://localhost//site/rep/mon_url.php"
Et cette url n'est pas valide !
Pour quelle raison n'est-elle pas valide ? Parce que ton adresse locale ne s'appelle pas localhost, ou bien à cause du double / entre localhost et le reste du chemin d'accès ?
Dans le premier cas, voir la config de ton serveur (quitte à aller poser la question sur fciw.serveurs) ; dans le second, essayer ceci :
Une autre idée pour avancer : chercher dans le phpinfo() ce qui ressemble à un début d'adresse valide : HTTP_HOST, mais peut-être aussi SERVER_NAME, ou autre chose.
Bonjour, Pourquoi ne travailles pas avec seulement des adresses de pages relatives (par rapport à la page courrante) ? Tu éviterais tous ces problèmes.
Pourquoi ne travailles pas avec seulement des adresses de pages relatives (par rapport à la page courrante) ?
Parce qu'il n'y a plus de page courante quand on fait un header("Location: ..."), et donc une nouvelle requête HTTP ? La norme exige avec raison une adresse absolue.
Par ailleurs, il serait sympa de citer un peu plus léger : tu n'avais pas besoin de citer l'intégralité de mon article pour y répondre un truc aussi général...
Pourquoi ne travailles pas avec seulement des adresses
de pages relatives (par rapport à la page courrante) ?
Parce qu'il n'y a plus de page courante quand on fait un
header("Location: ..."), et donc une nouvelle requête HTTP ?
La norme exige avec raison une adresse absolue.
Par ailleurs, il serait sympa de citer un peu plus léger : tu
n'avais pas besoin de citer l'intégralité de mon article pour y
répondre un truc aussi général...
Pourquoi ne travailles pas avec seulement des adresses de pages relatives (par rapport à la page courrante) ?
Parce qu'il n'y a plus de page courante quand on fait un header("Location: ..."), et donc une nouvelle requête HTTP ? La norme exige avec raison une adresse absolue.
Par ailleurs, il serait sympa de citer un peu plus léger : tu n'avais pas besoin de citer l'intégralité de mon article pour y répondre un truc aussi général...
John GALLET
Bonjour,
Dans un site, j'ai de nombreux formulaires. La technique que j'utilise actuellement est la suivante: Le formulaire renvoie a la page courante (le formulaire) lors d'un appuie sur submit. cela permet de rafficher le formulaire avec les valeurs précedentes, en particulier si le formulaire n'est pas remplie correctement. Bien jusqu'ici.
Mais j'aimerai bien que lorsque le formulaire est valide, on aille sur une autre page. Non, tu aimerais que soit affichée une autre information. C'est ça ton
besoin.
Pour cela, je me suis dis qu'il existait une fonction header. Lire la FAQ à son sujet : http://faqfclphp.free.fr/
1- Quelle est la méthode généralement utilisée pour les formulaires ( ie: <form action=" ??? "> ) ? Généralement, j'en sais rien. Celle que j'utilise est la suivante :
- filtrer les variables en entrée. - vérifier la cohérence (variables obligatoires présentes, etc..) Si une incohérence détecteé : require('print_form.php'); exit(); Dans ce print_form, la target est le script courant qui gère la réception du formulaire. Ce print_form ne fait que séparer l'affichage de la logique. Sinon (tout va bien), il suffit d'exécuter el code que je veux. Si je veux exécuter toto.php, je n'ai pas besoni de faire stupidement un aller retour pour rien, il suffit de faire require('toto.php'); exit().
a++ JG
Bonjour,
Dans un site, j'ai de nombreux formulaires. La technique que j'utilise
actuellement est la suivante: Le formulaire renvoie a la page courante
(le formulaire) lors d'un appuie sur submit. cela permet de rafficher
le formulaire avec les valeurs précedentes, en particulier si le
formulaire n'est pas remplie correctement.
Bien jusqu'ici.
Mais j'aimerai bien que lorsque le formulaire est valide, on aille sur
une autre page.
Non, tu aimerais que soit affichée une autre information. C'est ça ton
besoin.
Pour cela, je me suis dis qu'il existait une fonction
header.
Lire la FAQ à son sujet : http://faqfclphp.free.fr/
1- Quelle est la méthode généralement utilisée pour les formulaires (
ie: <form action=" ??? "> ) ?
Généralement, j'en sais rien. Celle que j'utilise est la suivante :
- filtrer les variables en entrée.
- vérifier la cohérence (variables obligatoires présentes, etc..)
Si une incohérence détecteé :
require('print_form.php'); exit();
Dans ce print_form, la target est le script courant qui gère la réception
du formulaire. Ce print_form ne fait que séparer l'affichage de la
logique.
Sinon (tout va bien), il suffit d'exécuter el code que je veux. Si je veux
exécuter toto.php, je n'ai pas besoni de faire stupidement un aller retour
pour rien, il suffit de faire require('toto.php'); exit().
Dans un site, j'ai de nombreux formulaires. La technique que j'utilise actuellement est la suivante: Le formulaire renvoie a la page courante (le formulaire) lors d'un appuie sur submit. cela permet de rafficher le formulaire avec les valeurs précedentes, en particulier si le formulaire n'est pas remplie correctement. Bien jusqu'ici.
Mais j'aimerai bien que lorsque le formulaire est valide, on aille sur une autre page. Non, tu aimerais que soit affichée une autre information. C'est ça ton
besoin.
Pour cela, je me suis dis qu'il existait une fonction header. Lire la FAQ à son sujet : http://faqfclphp.free.fr/
1- Quelle est la méthode généralement utilisée pour les formulaires ( ie: <form action=" ??? "> ) ? Généralement, j'en sais rien. Celle que j'utilise est la suivante :
- filtrer les variables en entrée. - vérifier la cohérence (variables obligatoires présentes, etc..) Si une incohérence détecteé : require('print_form.php'); exit(); Dans ce print_form, la target est le script courant qui gère la réception du formulaire. Ce print_form ne fait que séparer l'affichage de la logique. Sinon (tout va bien), il suffit d'exécuter el code que je veux. Si je veux exécuter toto.php, je n'ai pas besoni de faire stupidement un aller retour pour rien, il suffit de faire require('toto.php'); exit().