Autor Zpráva
fos4
Profil
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
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
zeptal bych se jinak - co takhle zvláštně potřebuješ dělat?
Joker
Profil
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
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
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
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
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
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
bude ji provadet uzivatel, pripadne spravce si to nacasuje kdy se to ma spoustet tedy cron..
imploder
Profil
http://cz2.php.net/ignore_user_abort
fos4
Profil
imploder
tuto fci. jsem v kodu pouzil viz. 1 prispevek.

a nepomaha..
Radim Hejhal
Profil
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')");
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0