redirection sur la meme page

redirection sur la meme page - PHP - Programmation

Marsh Posté le 24-05-2005 à 11:31:10    

Bonjour,
 
Voilà je souhaiterai faire une redirection en PHP et non en javascript vu que c'est un script serveur, sur la meme page. Alors vous allez me dire, qu'il faut utiliser header("location: ..." ) mais en fait j'ai une erreur de type:
 
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/dump_table.php:16) in /var/www/html/dump_table.php on line 17
 
ma ligne contenant le header est celle ci:
header("Location: ./dump_table.php" );
 
Merci pour votre aide

Reply

Marsh Posté le 24-05-2005 à 11:31:10   

Reply

Marsh Posté le 24-05-2005 à 11:32:33    

headers already sent by (output started at /var/www/html/dump_table.php:16)
 
tout est là ... ou dans la doc php :)
header ne peut pas être appelé si tu as déjà écrit ne serait-ce que le plus petit caractère dans ta page.....


Message édité par denzz le 24-05-2005 à 11:33:21
Reply

Marsh Posté le 24-05-2005 à 11:33:18    

Je comprends pas ce que tu veux faire, franchement![:dawa]
 
[edit]
 
Mais l'erreur est explicite, tu as déjà écrit quelquechose, donc il t'envoie chier.


Message édité par skeye le 24-05-2005 à 11:33:56

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 11:35:59    

Oki je savais pas qu'en fait il ne fallait rien ecrire pour pouvoir etre redirigé.  
Car en fait ce que je veux faire c'est que j'ai un tableau de 5 elements à la premiere execution puis je fais des redirection sur la meme page en supprimant un element du tableau a chaque fois. Et bien entendu il y a un traitement à chaque fois sur le premier element du tableau...


Message édité par faboubou le 24-05-2005 à 11:36:32
Reply

Marsh Posté le 24-05-2005 à 11:40:17    

faboubou a écrit :

Oki je savais pas qu'en fait il ne fallait rien ecrire pour pouvoir etre redirigé.  
Car en fait ce que je veux faire c'est que j'ai un tableau de 5 elements à la premiere execution puis je fais des redirection sur la meme page en supprimant un element du tableau a chaque fois. Et bien entendu il y a un traitement à chaque fois sur le premier element du tableau...


 
[:ktulu]
Tu pourrais pas faire tout connement une boucle pour traiter chaque élément de ton tableau?[:mlc2]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 11:41:40    

skeye a écrit :

[:ktulu]
Tu pourrais pas faire tout connement une boucle pour traiter chaque élément de ton tableau?[:mlc2]


 
Ca doit être un fan de list et du duo car/cdr [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 24-05-2005 à 11:42:16    

elianor a écrit :

Ca doit être un fan de list et du duo car/cdr [:spamafote]


Euh oué mais php c'est pas du lisp hein![:joce]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 11:44:12    

non car en fait les elements de ce tableau sont des noms de tables et dans ces tables il y a plus d'un million d'enregistrement. Je fais donc ca pour alleger le serveur car lancer un script avec une boucle et plus de 5millions d'enregistrement voilà voilà quoi et l'exec time arriverai certainement...
Je ne suis pas non plus un newbie pour ne pas avoir pensé à une boucle mdr

Reply

Marsh Posté le 24-05-2005 à 11:46:49    

faboubou a écrit :

non car en fait les elements de ce tableau sont des noms de tables et dans ces tables il y a plus d'un million d'enregistrement. Je fais donc ca pour alleger le serveur car lancer un script avec une boucle et plus de 5millions d'enregistrement voilà voilà quoi et l'exec time arriverai certainement...
Je ne suis pas non plus un newbie pour ne pas avoir pensé à une boucle mdr


...mais c'est gland, ça revient exactement au même, sauf que tu recharges ton script à chaque tour de boucle...[:mlc]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 11:47:41    

Oui mais si c'est long, il évite le timeout du à php ... Je crois que c'est ca qui l'embête ...


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 24-05-2005 à 11:47:41   

Reply

Marsh Posté le 24-05-2005 à 11:49:01    

plainsofpain a écrit :

Oui mais si c'est long, il évite le timeout du à php ... Je crois que c'est ca qui l'embête ...


bah il le désactive, son timeout...:o
'fin bref, ça me parait franchement tordu...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 11:49:09    

ben au lieu de lancer un script de 5millions d'enregistrement, tu en lances 5 d'un millions. et les perf sont pas les memes... Tests déjà effectués et base de données déjà plantées lol. Surtout ensuite si tu as des accès concurrentiels...

Reply

Marsh Posté le 24-05-2005 à 11:50:05    

et skeye tu desactive pas un timeout surtout sur un serveur de production...

Reply

Marsh Posté le 24-05-2005 à 11:52:04    

faboubou a écrit :

et skeye tu desactive pas un timeout surtout sur un serveur de production...


 
c'est désactivable/modifiable dans le script lui-même, non (via un ini_set :??:)? Ce traitement là, tu sais très bien qu'il est long, donc tu peux très bien adapter le timeout localement.:o
Que ce soit en prod ou pas.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 11:53:07    

Hmm c'est pas faux ça skeye, faboubou tente ça !


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 24-05-2005 à 11:55:18    

Je sais pas si c'est modifiable ou non mais moi ce que je souhaiterai faire c'est juste faire une redirection sur la meme page en faisant un traitement, puis retirer le premier element du tableau, puis refresh, puis traitement,...

Reply

Marsh Posté le 24-05-2005 à 11:56:25    

mouais mais jsais pas si mon boss soit opé si il voit ce genre de chose exotique lol. Jvoulais juste savoir si mon truc etait possible avec un header ou non? Je pense que ca doit etre possible mais alors il faut qu'il n'yai aucun echo dans le script c'est ca?


Message édité par faboubou le 24-05-2005 à 11:57:19
Reply

Marsh Posté le 24-05-2005 à 11:56:38    

faboubou a écrit :

Je sais pas si c'est modifiable ou non mais moi ce que je souhaiterai faire c'est juste faire une redirection sur la meme page en faisant un traitement, puis retirer le premier element du tableau, puis refresh, puis traitement,...


Bah si ça t'amuse, vazy, hein...[:dawa]
Mais je n'y vois franchement aucun intérêt...[:skeye]


Message édité par skeye le 24-05-2005 à 11:56:45

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 11:57:42    

faboubou a écrit :

mouais mais jsais pas si mon boss soit opé si il voit ce genre de chose exotique lol. Jvoulais juste savoir si mon truc etait possible avec un header ou non?


 
Tu crois que ton boss préfèrera voir que tu recharges autant de fois le script qu'il y a de lignes dans ton tableau?[:ktulu]
Bien sûr que c'est faisable...[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 12:00:22    

non mais j'avais déjà effectué ce genre de script. Avec une boucle de parcours de nom de table comme là et ca mettait pas mal de temps. Et il m'avait cassé les ... parce qeu le script etait trop long et qu'il fallait mieux faire traitement d'une table par une table avec une redirection javascript... MAis là comme c'est un script serveur ben jsuis obligé d'utilisier header...

Reply

Marsh Posté le 24-05-2005 à 12:02:53    

faboubou a écrit :

non mais j'avais déjà effectué ce genre de script. Avec une boucle de parcours de nom de table comme là et ca mettait pas mal de temps. Et il m'avait cassé les ... parce qeu le script etait trop long et qu'il fallait mieux faire traitement d'une table par une table avec une redirection javascript... MAis là comme c'est un script serveur ben jsuis obligé d'utilisier header...


 
[:mlc2]
Ajouter des redirections ne peut qu'allonger le temps d'execution!:o
Tu peux très bien exécuter tes requêtes table par table tout en faisant tout dans le même script, c'est quoi le pb?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 12:06:26    

faboubou a écrit :

Bonjour,
 
Voilà je souhaiterai faire une redirection en PHP et non en javascript vu que c'est un script serveur, sur la meme page. Alors vous allez me dire, qu'il faut utiliser header("location: ..." ) mais en fait j'ai une erreur de type:
 
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/dump_table.php:16) in /var/www/html/dump_table.php on line 17
 
ma ligne contenant le header est celle ci:
header("Location: ./dump_table.php" );
 
Merci pour votre aide


Bon, hors discussion actuelle, je tiens à signaler que cette question revient au moins 5 fois par semaine, et qu'il serait peut-être temps de lire la doc :o :

Citation :

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

Reply

Marsh Posté le 24-05-2005 à 12:07:26    

ben en fait, ct le fait de pouvoir arreter ton script quand tu le voulais. Avec des redirections javascript tu pouvais arreter le script tandis qu'avec une boucle dans le script ben une fois lancé tu pouvais plus l'arreter... et pour peu que tu tombe sur une table à 31 millions d'enregistrement t'avait tout gagné et là tu avais els telephones qui sonnait avec les clients ou bout du fil disant que leur appli marchait plus forcement mysql etait surchargé

Reply

Marsh Posté le 24-05-2005 à 12:09:28    

faboubou a écrit :

ben en fait, ct le fait de pouvoir arreter ton script quand tu le voulais. Avec des redirections javascript tu pouvais arreter le script tandis qu'avec une boucle dans le script ben une fois lancé tu pouvais plus l'arreter... et pour peu que tu tombe sur une table à 31 millions d'enregistrement t'avait tout gagné et là tu avais els telephones qui sonnait avec les clients ou bout du fil disant que leur appli marchait plus forcement mysql etait surchargé


 
Mais est-ce une bonne idée de pouvoir lancer des scripts aussi lourdingues en même temps que les gens travaillent sur la base? Vous avez pas moyen de faire ça autrement? :??:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 12:13:59    

ben en fait ce sont des script de dump pour alleger les tables mais sur certains script on a une interface pour que l'admin puisse choisir ses tables a sauver...
Donc à part si l'admin reste la nuit pour lancer le script ben y'a pas de solutions. Quoique meme pas puisque on a des clients de partout dans le monde donc les acces à la base sont permanents... Y'a juste ce moyen qui a ete trouvé pour pouvoir ameliorer l'acces à la base.

Reply

Marsh Posté le 24-05-2005 à 12:18:07    

...et l'interface pourrait pas proposer à l'admin de choisir l'heure à laquelle il veut l'exécuter? Doit bien y avoir des moments un peu plus creux...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-05-2005 à 13:05:57    

Ben justement en fait je fais un script pour pouvoir automatiser le bordel. Mais je vais quand meme demander à mon boss l'histoire des redirections...

Reply

Marsh Posté le 24-05-2005 à 13:57:07    

Pour information il existe un nombre maximum de fois qu'un serveur peut envoyer une redirection au client.
 
Je sais plus combien c'est, mais au bout d'un moment certains browser vont arreter de suivre les redirections et afficher un "maximum number of redirections exceded".
 
Sinon pour faire ce que tu veux il existe d'autre techniques.
Si tes requetes ne doivent pas forcement etre faite a la suite les unes des autres, mais peuvent etre faites en paralelle, alors tu pourrais utiliser la techniques des "images" qui renvoient vers ton script php.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed