|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2010 Messages : 128 ![]() |
Bonjour, je recupere des donnees avec un formulaire puis je traite les données avec le fichier traitement.php donc voici le code ci dessous.
Je n'arrive pas à faire marcher le header à la fin du code (j'aimerais que lorsque le traitement est fait il affiche la page indiquer. Dans mon cas il affiche une page blanche. Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : juillet 2003 Messages : 625 ![]() |
Bonjour,
la gestion des erreurs est elle activée ?
__________________
Le savoir est utile que s'il est partagé par tous. /(bb|[^b]{2})/ !sleep() ? array((string)) |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Dominique Première S Inscription : juillet 2010 Messages : 252 ![]() |
on ne t'as jamais dit qu'il ne fallait rien écrire avant un header ?
pour la page blanche, vérifie la gestion des erreurs comme l'a dit syl 2095, mais regarde aussi dans le code source de la page html. quelquefois, ça ne s'affiche pas bien en fonction du code html qui est autour ... Sinon, il faut savoir qu'il ne faut jamais mettre, ni un session_start, ni un header après un code html. si l'on veux, on peu utiliser les fonctions de temporisation (voir les fonctions ob_start(à, ob_flush(), ob_clear() etc.), mais c'est un remède bancal ... a+ |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 128 ![]() |
Oui la gestion des erreurs est activée enfin je crois!
|
|
|
00
|
|
|
#5 | |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 873 ![]() |
Citation:
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell |
|
|
|
10
|
|
|
#6 | ||
|
Membre chevronné
![]() Christele Inscription : novembre 2009 Messages : 661 ![]() |
Bonjour,
J'ignores si ce php est complet, ou pire s'il est include. Mais de toute façon, tu vois sur ce que tu nous montres, Code :
donc un header, et tu ne peux donc plus en envoyer un autre ! |
||
|
00
|
|
|
#7 | |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 873 ![]() |
Citation:
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell |
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 128 ![]() |
merci pour les réponses mais c'est quoi la bufferisation de la sortie??
|
|
|
00
|
|
|
#9 | |||
|
Membre chevronné
![]() Christele Inscription : novembre 2009 Messages : 661 ![]() |
Citation:
de bloquer automatiquement tout echo vers la page html, puis le libérer lorsque tout est pret. Code :
tu envoies un message a l'écran puis appelles une autre page |
|||
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 128 ![]() |
Ceci je dois le mettre dans mon fichier traitement à la fin? et si on vois pas mon message autant que je l'enleve, non?
|
|
|
00
|
|
|
#11 | |
|
Membre chevronné
![]() Christele Inscription : novembre 2009 Messages : 661 ![]() |
Citation:
http://php.net/manual/fr/ref.outcontrol.php Pour le reste OUI je retirerais tes deux "echo" inutils ! |
|
|
00
|
|
|
#12 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 873 ![]() |
Christèle a raison, mais petite idée (aucune idée si ça marcherait) : pour effectuer la redirection, tu le fais dans un fichier php séparé et dans ton code, là où tu souhaites faire la redirection, tu mets une iframe.
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell |
|
|
01
|
|
|
#13 |
|
Membre chevronné
![]() Christele Inscription : novembre 2009 Messages : 661 ![]() |
Je te déconseilles tout "bidouillage" surtout les iframes
un trou a failles de sécuritées ! |
|
10
|
|
|
#14 |
|
Membre confirmé
![]() Dominique Première S Inscription : juillet 2010 Messages : 252 ![]() |
Moi aussi je trouve cela très pratique, et je l'utilise encore d'ailleurs
Mais a ce qu'il paraît, ce n'est pas le top niveau performances ... Ce n'est pas moi qui le dit, "on" me l'a dit. selon cette personne, ce n'est pas trop grave si on code en procédural (= pas en POO). (et cette personne étant un fan de la POO, le codage en procédural pour lui c'est une horreur en bref, ce n'est pas très académique, mais après, on fait ce qu'on veux ... pour ma part, le principal c'est que ça marche bien et que ce soit pratique, donc j’utilise encore (beaucoup) ces fonctions. J'ai dit "bancal" parce que ce n'est en fait qu'un dépannage, et qu'il vaut mieux faire tout de suite bien ... mais quand on a pas envie de tout refaire, la bufferisation de sortie est très (très) pratique amicalement. |
|
|
00
|
|
|
#15 | ||
|
Membre confirmé
![]() Dominique Première S Inscription : juillet 2010 Messages : 252 ![]() |
pour ceux que ça intéresserai, voilà un petit code que j'inclus à la fin de chaque page :
Code :
$redirect = 'http://redirection'; pour une redirection de type refresh (après un certain temps : $redirect_refresh = 'http://redirection'; voilà, tout simplement. et le code présenté plus haut vérifie si la variable $redirect ou $redirect_refresh existe, et il utilise la bufferisation de sortie pour faire le reste ... ça vous permettra de savoir comment utiliser ces fonctions a+ |
||
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : août 2010 Messages : 128 ![]() |
encore merci pour les réponses mais si je rentre ce code aprés le mien vous pensez que ça peut marcher?
Code :
|
||
|
|
00
|
|
|
#17 |
|
Membre confirmé
![]() Dominique Première S Inscription : juillet 2010 Messages : 252 ![]() |
absolument, pour cela, je te conseille :
- créer un fichier fin.php qui contiendra ce code. (+ d'autre code si tu veux). - mettre : include_once('fin.php'); à la fin de chaque page suceptibe de contenir une redirection. - quand tu veux faire une redirection, tu écrit : $redirect = 'url redirection'; - quand tu veux faire une redirection de type refresh, tu écrit : $redirect_refresh = 'url redirection'; et la redirection se fera après 4 secondes d'affichage (tu peux modifier ce paramètre dans le code que je t'ai donné Par contre, ne pas utiliser pour un autre usage les nom de variable $redirect et $redirect_refresh ! ben oui, sinon mon code pensera que c'est une redirection qui a été demandée voilà, bonne continuation. |
|
|
00
|
|
|
#18 | ||||
|
Invité de passage
![]() Inscription : août 2010 Messages : 128 ![]() |
Je suis desolé j'arrive pas à le faire marcher.Quand je rentre les données dans le formulaire et que je valide j'ai une page blanche avec le message votre demande a bien été ...
Voici mon code traitement3.php Code :
Code :
|
||||
|
|
00
|
|
|
#19 |
|
Nouveau Membre du Club
![]() Inscription : juin 2008 Messages : 33 ![]() |
Bonjour,
Comme il t'a été dit plus haut, tu ne peux pas envoyer de texte à l'écran et faire une redirection via header par la suite. C'est comme ca c'est le protocole http qui est fait comme ca. C'est un header par page. Là tu fais ton "echo $msg_ok;" qui envoie du texte sur la sortie. Apparemment tu as surment oublié ob_start(); en début de page pour commencer a capturer le texte qui s'affiche normalement à l'écran. Ensuite, ob_clean() purge le texte capturé (bref ca ne sert a rien, il l'efface) si tu veux l'afficher mieux vaut utiliser ob_flush(); qui va afficher le texte capturé à l'ecran, mais là encore ca ne sert a rien car tu fais une redirection après ... Je n'sais pas quelles sont tes contraintes mais apparemment le script est executé pour être affiché sur un navigateur, pourquoi est ce que tu n'utilises pas le javascript pour faire ta redirection ?? |
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : août 2010 Messages : 128 ![]() |
Je n'utilise pas le javascript parce que je ne le connaîs pas tres bien par contre je suis preneur de code si quelqu'un connaît la redirection en javascript!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com