Autor | Zpráva | ||
---|---|---|---|
fos4 Profil |
#1 · Zasláno: 18. 7. 2008, 13:19:01
zdarvim,
potreboval bych presmerovat uzivatele ale script,aby bezel dal..predpokladal jsem ze to pujde vyresit ignore_user_abort(true); Header("Location: $url"); Header("Connection: close"); sleep(10); delej neco... bohuzuel nefrci :( |
||
imploder Profil |
#2 · Zasláno: 18. 7. 2008, 13:32:26
To je divný. To, co to má dělat, je doufám něco na serveru, ne v prohlížeči? Protože prohlížeč už výstup toho skriptu po přesměrování samozřejmě nepřijímá.
|
||
souki Profil |
#3 · Zasláno: 18. 7. 2008, 13:42:07
zeptal bych se jinak - co takhle zvláštně potřebuješ dělat?
|
||
Joker Profil |
#4 · Zasláno: 18. 7. 2008, 13:50:30
fos4
To je zajímavé, předpokládal bych, že přesměrování ten skript neukončí. Každopádně to přesměrování může být až za "dělej něco", nenapadá mě nic, čemu by to mohlo vadit. |
||
fos4 Profil |
#5 · Zasláno: 18. 7. 2008, 14:07:28
Jde o zalohy, clovek si rekne,ze zazalohuje, ale obrazku je hodne a trva to opravdu dlouho, proto ho chci presmerovat aby necekal nekolik minut nez se to dodela..
to "delej neco".. je zalohovani obrazku - kopirovani, komprese apod.. |
||
fos4 Profil |
#6 · Zasláno: 18. 7. 2008, 14:08:39
jedine co mne napadlo je dat na formular ktery na tohle smeruje dat JavaScript a poslat to jako httprequest a pak hodit window.location jinam, ale to je takove reseni nereseni :(
|
||
souki Profil |
#7 · Zasláno: 18. 7. 2008, 14:12:07
fos4
Přes ajax mi to přijde nejlepší. A bud můžeš točit kolečkem než se to dodělá nebo pouít ten ignore_user_abort |
||
fos4 Profil |
#8 · Zasláno: 18. 7. 2008, 14:13:57
souki
ja bych byl nejradeji kdyby fungovalo to presmerovani :) nebo v PHP si muzu otevrit svoji url s vlastnim postem a dat timeout 1vterinu a pak presmerovat..ale taky na prd reseni :( |
||
Alphard Profil |
#9 · Zasláno: 18. 7. 2008, 14:14:33
fos4
jak častá akce to bude a kdo ji bude provádět? správci, uživatelé? napadlo mě, jestli by nebylo jednodušší normálně spustit načítání stránky v panelu na pozadí, bude to fungovat a nemůsíš se strachovat z vypnutého javascriptu apod. a nikoho to nezbrzdí jen by se na odkaz Zálohovat kliklo prostředním tlačítkem myši, nic víc |
||
fos4 Profil |
#10 · Zasláno: 18. 7. 2008, 14:17:00
bude ji provadet uzivatel, pripadne spravce si to nacasuje kdy se to ma spoustet tedy cron..
|
||
imploder Profil |
#11 · Zasláno: 18. 7. 2008, 14:56:12
|
||
fos4 Profil |
#12 · Zasláno: 18. 7. 2008, 15:30:33
|
||
Radim Hejhal Profil |
#13 · Zasláno: 18. 7. 2008, 15:32:03 · Upravil/a: Radim Hejhal
Měla by pomoct funkce flush().
Pokud tedy byl problém v tom, že script čekal na celé svoje vykonání před přesměrováním, místo aby uživatele přesměroval a vykonal zbytek. To se děje kvůli bufferování výstupu scriptu - výstup ze scriptu (Header() nebo třeba echo) se neodesílá uživateli hned, ale až si server zhodnotí, že je toho v bufferu dost na to, aby to mělo cenu odeslat. Funkce flush() se snaží data z bufferu odeslat okamžitě. Zkoušeno na jednoduchém zápisu do databáze, po deseti vteřinách se zápis provedl, jak měl, přesměrování ale bylo okamžité: <?php require "./konfigurace.php"; ignore_user_abort(true); $url = "http://www.seznam.cz"; Header("Location: $url"); Header("Connection: close"); flush(); sleep(10); $mysqli = new mysqli(SERVER, LOGIN, HESLO, DATABAZE); $mysqli->query("INSERT INTO aaazkouska VALUES ('', 'aaa')"); ?> |
||
Časová prodleva: 16 let
|
0