Quelqu'un connait-il un moyen simple pour la redirection de page sans
utiliser la fonction header(), j'avoue je sèche.
A chaque fois j'ai un already send, mais comme je tente d'utiliser un
modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou
print qui traine" bref une idée.
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include() ou require() plutôt que header("Location: ...").
A chaque fois j'ai un already send, mais comme je tente d'utiliser un modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou print qui traine" bref une idée.
Un modèle MVC avec contrôleur, je suppose que ce n'est pas réparti sur trois ou quatre serveurs différents, dont la solution du require() est la bonne.
Sinon, vérifie que tu ne sauves pas tes pages en UTF-8 avec un éditeur de texte mou du bulbe qui te rajouterait au début un « BOM » Unicode traduit en UTF-8.
Quelqu'un connait-il un moyen simple pour la redirection de page sans
utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include()
ou require() plutôt que header("Location: ...").
A chaque fois j'ai un already send, mais comme je tente d'utiliser un
modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou
print qui traine" bref une idée.
Un modèle MVC avec contrôleur, je suppose que ce n'est pas réparti sur
trois ou quatre serveurs différents, dont la solution du require() est
la bonne.
Sinon, vérifie que tu ne sauves pas tes pages en UTF-8 avec un éditeur
de texte mou du bulbe qui te rajouterait au début un « BOM » Unicode
traduit en UTF-8.
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include() ou require() plutôt que header("Location: ...").
A chaque fois j'ai un already send, mais comme je tente d'utiliser un modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou print qui traine" bref une idée.
Un modèle MVC avec contrôleur, je suppose que ce n'est pas réparti sur trois ou quatre serveurs différents, dont la solution du require() est la bonne.
Sinon, vérifie que tu ne sauves pas tes pages en UTF-8 avec un éditeur de texte mou du bulbe qui te rajouterait au début un « BOM » Unicode traduit en UTF-8.
Philippe Le Van
Bonjour
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche.
Si tu ne veux pas utiliser de header('Location... , tu peux utiliser du javascript pour faire ta redirection (c'est plus crados, ça fait plus d'échanges avec le serveur).
Tu peux utiliser un code du genre :
<SCRIPT LANGUAGE="Javascript"> function pageSuiv() { location.href='http://mon_url'; } setTimeout("pageSuiv()", 3); </SCRIPT>
A chaque fois j'ai un already send, mais comme je tente d'utiliser un modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou print qui traine" bref une idée.
Sinon théoriquement dans un controlleur, tu n'affiches rien, il n'y a que la vue qui peut afficher quelque chose. Si tes echo ou printf sont juste pour du débug, utilise plutôt un logger, ça règlera ton problème (ça mettra tes messages de debug dans un fichier au lieu de les renvoyer au navigateur).
Cordialement, Philippe Le Van -- Communauté autour du Zend Framework : http://www.z-f.fr
Bonjour
Quelqu'un connait-il un moyen simple pour la redirection de page sans
utiliser la fonction header(), j'avoue je sèche.
Si tu ne veux pas utiliser de header('Location... , tu peux utiliser du
javascript pour faire ta redirection (c'est plus crados, ça fait plus
d'échanges avec le serveur).
Tu peux utiliser un code du genre :
<SCRIPT LANGUAGE="Javascript">
function pageSuiv() {
location.href='http://mon_url';
}
setTimeout("pageSuiv()", 3);
</SCRIPT>
A chaque fois j'ai un already send, mais comme je tente d'utiliser un
modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo
ou print qui traine" bref une idée.
Sinon théoriquement dans un controlleur, tu n'affiches rien, il n'y a que
la vue qui peut afficher quelque chose.
Si tes echo ou printf sont juste pour du débug, utilise plutôt un logger,
ça règlera ton problème (ça mettra tes messages de debug dans un fichier
au lieu de les renvoyer au navigateur).
Cordialement,
Philippe Le Van
--
Communauté autour du Zend Framework : http://www.z-f.fr
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche.
Si tu ne veux pas utiliser de header('Location... , tu peux utiliser du javascript pour faire ta redirection (c'est plus crados, ça fait plus d'échanges avec le serveur).
Tu peux utiliser un code du genre :
<SCRIPT LANGUAGE="Javascript"> function pageSuiv() { location.href='http://mon_url'; } setTimeout("pageSuiv()", 3); </SCRIPT>
A chaque fois j'ai un already send, mais comme je tente d'utiliser un modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou print qui traine" bref une idée.
Sinon théoriquement dans un controlleur, tu n'affiches rien, il n'y a que la vue qui peut afficher quelque chose. Si tes echo ou printf sont juste pour du débug, utilise plutôt un logger, ça règlera ton problème (ça mettra tes messages de debug dans un fichier au lieu de les renvoyer au navigateur).
Cordialement, Philippe Le Van -- Communauté autour du Zend Framework : http://www.z-f.fr
thiebaut olivier
Bonjour,
et merci. Je m'en doutais pour le include ou rewrite. Pour ce qui est de header, je pense avoir trouvé. Comme me petit accepte rien en sorti, j'ai vu que j'utilise une primitice ini_set(...) qui renvoie un résultat. Je vais donc essayé de récupérer la valeur de retour dans une variable, pour mapper la sortie.
Bref je teste + s'il y a un mou du bulbe ...;).
Olivier
Bonjour,
et merci.
Je m'en doutais pour le include ou rewrite.
Pour ce qui est de header, je pense avoir trouvé.
Comme me petit accepte rien en sorti, j'ai vu que j'utilise une
primitice ini_set(...) qui renvoie un résultat. Je vais donc essayé de
récupérer la valeur de retour dans une variable, pour mapper la sortie.
et merci. Je m'en doutais pour le include ou rewrite. Pour ce qui est de header, je pense avoir trouvé. Comme me petit accepte rien en sorti, j'ai vu que j'utilise une primitice ini_set(...) qui renvoie un résultat. Je vais donc essayé de récupérer la valeur de retour dans une variable, pour mapper la sortie.
Bref je teste + s'il y a un mou du bulbe ...;).
Olivier
Bruno Desthuilliers
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include() ou require() plutôt que header("Location: ...").
Ca ne fait pas du tout la même chose.
Quelqu'un connait-il un moyen simple pour la redirection de page sans
utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include()
ou require() plutôt que header("Location: ...").
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(),
Non.
j'avoue je sèche. A chaque fois j'ai un already send,
Tu a donc un début de sortie avant l'appel à header().
mais comme je tente d'utiliser un modèle MVC avec contrôleur,
Avec vue et modèle aussi ?-)
il est fort probable "qu'il y ait un echo ou print qui traine" bref une idée.
Ou juste n'importe quel caractère (même invisible - la suggestion d'Olivier concernant un BOM n'est pas à négliger) en dehors d'une balise <?php ?>.
Thierry
Bonjour,
bonjour
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche. A chaque fois j'ai un already send, mais comme je tente d'utiliser un modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou print qui traine" bref une idée.
oui mais c'est mal aimé, pas du tout universel (javascript) et limite HC
Si tu l'adoptes tu risques au moins d'avoir des surprises avec les fonctions de navigation des butineurs. Donc bien penser avant d'agir.
pas taper merci c'est pour rendre service
thierry
Bonjour,
bonjour
Quelqu'un connait-il un moyen simple pour la redirection de page sans
utiliser la fonction header(), j'avoue je sèche.
A chaque fois j'ai un already send, mais comme je tente d'utiliser un
modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou
print qui traine" bref une idée.
oui mais c'est mal aimé, pas du tout universel (javascript) et limite HC
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche. A chaque fois j'ai un already send, mais comme je tente d'utiliser un modèle MVC avec contrôleur, il est fort probable "qu'il y ait un echo ou print qui traine" bref une idée.
oui mais c'est mal aimé, pas du tout universel (javascript) et limite HC
Si tu l'adoptes tu risques au moins d'avoir des surprises avec les fonctions de navigation des butineurs. Donc bien penser avant d'agir.
pas taper merci c'est pour rendre service
thierry
Thief13
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include() ou require() plutôt que header("Location: ...").
Par rapport à ça j'ai essayé cette solution, mais je ne la trouve pas satisfaisante : dans chacun de mes scripts, je défini une constante que j'appelle DROITS et qui contiens les droits requis pour exécuter ce script. Maintenant, imaginons que j'ai la page modifier.php qui ne demande que des droit édition (valeur = 2), et que cette page à deux boutons : - un qui envois vers supprimer.php (droit nécessaire de suppression = 3) - un autre qui envoi vers enregistrer.php (toujours droits d'édition = 2) Jusque là, pas de problème, on passe d'une page à l'autre avec le lien du form, mais une fois que le script de modification de la base de donné (que se soit supprimer.php ou enregistrer.php) à fini de s'exécuter, je veux revenir sur modifier.php, et là, si je fait un include, j'ai un beau message d'erreur me disant que ma constante est déjà défini, donc, il ne me reste plus que le header()...
Donc, si il y à une solution, autre qu'utiliser une variable à la place de ma constante, je suis preneur...
Quelqu'un connait-il un moyen simple pour la redirection de page sans
utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include()
ou require() plutôt que header("Location: ...").
Par rapport à ça j'ai essayé cette solution, mais je ne la trouve pas
satisfaisante : dans chacun de mes scripts, je défini une constante que
j'appelle DROITS et qui contiens les droits requis pour exécuter ce
script. Maintenant, imaginons que j'ai la page modifier.php qui ne
demande que des droit édition (valeur = 2), et que cette page à deux
boutons :
- un qui envois vers supprimer.php (droit nécessaire de suppression = 3)
- un autre qui envoi vers enregistrer.php (toujours droits d'édition = 2)
Jusque là, pas de problème, on passe d'une page à l'autre avec le lien
du form, mais une fois que le script de modification de la base de donné
(que se soit supprimer.php ou enregistrer.php) à fini de s'exécuter, je
veux revenir sur modifier.php, et là, si je fait un include, j'ai un
beau message d'erreur me disant que ma constante est déjà défini, donc,
il ne me reste plus que le header()...
Donc, si il y à une solution, autre qu'utiliser une variable à la place
de ma constante, je suis preneur...
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include() ou require() plutôt que header("Location: ...").
Par rapport à ça j'ai essayé cette solution, mais je ne la trouve pas satisfaisante : dans chacun de mes scripts, je défini une constante que j'appelle DROITS et qui contiens les droits requis pour exécuter ce script. Maintenant, imaginons que j'ai la page modifier.php qui ne demande que des droit édition (valeur = 2), et que cette page à deux boutons : - un qui envois vers supprimer.php (droit nécessaire de suppression = 3) - un autre qui envoi vers enregistrer.php (toujours droits d'édition = 2) Jusque là, pas de problème, on passe d'une page à l'autre avec le lien du form, mais une fois que le script de modification de la base de donné (que se soit supprimer.php ou enregistrer.php) à fini de s'exécuter, je veux revenir sur modifier.php, et là, si je fait un include, j'ai un beau message d'erreur me disant que ma constante est déjà défini, donc, il ne me reste plus que le header()...
Donc, si il y à une solution, autre qu'utiliser une variable à la place de ma constante, je suis preneur...
John GALLET
Donc, si il y à une solution, autre qu'utiliser une variable à la place de ma constante, je suis preneur...
Définir la constante dans une seule fonction/méthode, tout simplement. Ou bestialement :
Je ne vois vraiment pas où est le problème. a++; JG
Le probleme, c'est que dans ce cas, je me retrouve avec les droits d'un script sur un autre...
Chaque script à ses propres droits, et si j'inclu un script dans un autre avec cette métode, ce ne seronts pas les bons droit qui s'appliqueronts.
En plus, autre problème : dans chauqe script, je fait un require('fonctions.php'), et si je fait l'include d'un script dans un autre, paf, erreur puisque il me dit qu'il ne peut pas redéclarer des fonctions déjà déclaré...
Donc, si il y à une solution, autre qu'utiliser une variable à la place
de ma constante, je suis preneur...
Définir la constante dans une seule fonction/méthode, tout simplement. Ou
bestialement :
Je ne vois vraiment pas où est le problème.
a++;
JG
Le probleme, c'est que dans ce cas, je me retrouve avec les droits d'un
script sur un autre...
Chaque script à ses propres droits, et si j'inclu un script dans un
autre avec cette métode, ce ne seronts pas les bons droit qui
s'appliqueronts.
En plus, autre problème : dans chauqe script, je fait un
require('fonctions.php'), et si je fait l'include d'un script dans un
autre, paf, erreur puisque il me dit qu'il ne peut pas redéclarer des
fonctions déjà déclaré...
Je ne vois vraiment pas où est le problème. a++; JG
Le probleme, c'est que dans ce cas, je me retrouve avec les droits d'un script sur un autre...
Chaque script à ses propres droits, et si j'inclu un script dans un autre avec cette métode, ce ne seronts pas les bons droit qui s'appliqueronts.
En plus, autre problème : dans chauqe script, je fait un require('fonctions.php'), et si je fait l'include d'un script dans un autre, paf, erreur puisque il me dit qu'il ne peut pas redéclarer des fonctions déjà déclaré...
Bruno Desthuilliers
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche. Sur le même site, la réponse est toujours la même : utiliser include()
ou require() plutôt que header("Location: ...").
Par rapport à ça j'ai essayé cette solution, mais je ne la trouve pas satisfaisante : dans chacun de mes scripts, je défini une constante que j'appelle DROITS et qui contiens les droits requis pour exécuter ce script. Maintenant, imaginons que j'ai la page modifier.php qui ne demande que des droit édition (valeur = 2), et que cette page à deux boutons : - un qui envois vers supprimer.php (droit nécessaire de suppression = 3) - un autre qui envoi vers enregistrer.php (toujours droits d'édition = 2) Jusque là, pas de problème, on passe d'une page à l'autre avec le lien du form, mais une fois que le script de modification de la base de donné (que se soit supprimer.php ou enregistrer.php) à fini de s'exécuter, je veux revenir sur modifier.php, et là, si je fait un include, j'ai un beau message d'erreur me disant que ma constante est déjà défini, donc, il ne me reste plus que le header()...
C'est AMHA une mauvaise raison pour faire ce qui devrait être fait de toutes façons. La bonne raison étant que c'est encore ce qui respecte le mieux la norme HTTP. Et accessoirement, ça évite le problème de la re-soumission de formulaire par retour à la page précédente...
Quelqu'un connait-il un moyen simple pour la redirection de page sans
utiliser la fonction header(), j'avoue je sèche.
Sur le même site, la réponse est toujours la même : utiliser include()
ou require() plutôt que header("Location: ...").
Par rapport à ça j'ai essayé cette solution, mais je ne la trouve pas
satisfaisante : dans chacun de mes scripts, je défini une constante que
j'appelle DROITS et qui contiens les droits requis pour exécuter ce
script. Maintenant, imaginons que j'ai la page modifier.php qui ne
demande que des droit édition (valeur = 2), et que cette page à deux
boutons :
- un qui envois vers supprimer.php (droit nécessaire de suppression = 3)
- un autre qui envoi vers enregistrer.php (toujours droits d'édition = 2)
Jusque là, pas de problème, on passe d'une page à l'autre avec le lien
du form, mais une fois que le script de modification de la base de donné
(que se soit supprimer.php ou enregistrer.php) à fini de s'exécuter, je
veux revenir sur modifier.php, et là, si je fait un include, j'ai un
beau message d'erreur me disant que ma constante est déjà défini, donc,
il ne me reste plus que le header()...
C'est AMHA une mauvaise raison pour faire ce qui devrait être fait de
toutes façons. La bonne raison étant que c'est encore ce qui respecte le
mieux la norme HTTP. Et accessoirement, ça évite le problème de la
re-soumission de formulaire par retour à la page précédente...
Quelqu'un connait-il un moyen simple pour la redirection de page sans utiliser la fonction header(), j'avoue je sèche. Sur le même site, la réponse est toujours la même : utiliser include()
ou require() plutôt que header("Location: ...").
Par rapport à ça j'ai essayé cette solution, mais je ne la trouve pas satisfaisante : dans chacun de mes scripts, je défini une constante que j'appelle DROITS et qui contiens les droits requis pour exécuter ce script. Maintenant, imaginons que j'ai la page modifier.php qui ne demande que des droit édition (valeur = 2), et que cette page à deux boutons : - un qui envois vers supprimer.php (droit nécessaire de suppression = 3) - un autre qui envoi vers enregistrer.php (toujours droits d'édition = 2) Jusque là, pas de problème, on passe d'une page à l'autre avec le lien du form, mais une fois que le script de modification de la base de donné (que se soit supprimer.php ou enregistrer.php) à fini de s'exécuter, je veux revenir sur modifier.php, et là, si je fait un include, j'ai un beau message d'erreur me disant que ma constante est déjà défini, donc, il ne me reste plus que le header()...
C'est AMHA une mauvaise raison pour faire ce qui devrait être fait de toutes façons. La bonne raison étant que c'est encore ce qui respecte le mieux la norme HTTP. Et accessoirement, ça évite le problème de la re-soumission de formulaire par retour à la page précédente...