Newsgroup: it.comp.www.php
Titolo: script che prosegue alla chiusura del browser

(forse avevo già posto questo quesito ma poi avevo accantonato la cosa)
uso php 5.0.5 come modulo e apache 2.0.53 su wXP.
da una pagina a chiamo con un link una pagina b(in una nuova finestra) che
fa una serie di cose(inserimenti nel db, manda mail ecc.)
il tutto funziona perfettamente(notare che la pagina b ha un tempo die
secuzione abbastanza lungo, ho infatti settato set_time_limit(0);).
io vorrei pero' che la cosa mi funzionassse(nel senso che la pagina b
dovrebbe continuare a eseguire il codice) anche se chiudo il browser che
mi richiama la pagina b(insomma in generale l'utente dovrebbe poter pure
spegnere il pc e andare a far merenda)
perchè invece non accade??
ricordo che con un'altra configurazione(non so se era una versione
precdente di apache o di php o forse entrambe) potevo chiudere il browser
e lo script proseguiva cmq
qualcuno sa se è possibile rimediare e come???
grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Mi intendo poco di PHP ma penso di non sbagliare dicendo che quando 
l'utente vede la pagina B (come tu la chiami) tutto il lavoro fatto da 
PHP sia gia' finito.
Per fare cio' che vuoi fare tu dovresti appoggiarti a JavaScript che, 
comunque, ha bisogno di avere la pagina del browser aperta per funzionare.

warp10 ha scritto:


quando l'utente va alla pagina b, questa è in esecuzione(quindi il lavoro
deve essere ancora fatto) e quindi non vede nulla se non un messaggio che
gli dice che la pagina è in esecuzione (mandato in oputput tramite flush)
javascript non centra nulla.
cmq grazie


 spegnere il pc e andare a far merenda)
http://it2.php.net/ignore_user_abort

 cmq grazie
prego

 l'utente non possa chiuderla e lo puoi fare non tramite PHP ma tramite JS.
io voglio il contrario: l'utente deve poterla chiudere. ma se mi dici che
finisce tutto allora forse voglio una cosa impossibile. 


hk3project ha scritto:

grazie(mi sembra stia funzionando ma devo verificare...è lunghetta la
cosa...incrociamo le dita)


 finisce tutto allora forse voglio una cosa impossibile. 
Io ti consiglio, pero', di evitare di permettere all'utente remoto di 
chiudere la finestra B mentre e' in esecuzione il lavoro.
Mettiti dalla sua parte. Lui apre la finestra A e poi chiede 
l'esecuzione di qualcosa che apre la B. Se chiude la finestra B pensa 
che il lavoro che aveva richiesto non procede piu'.
Anche se PHP ti da' gli strumenti per poterlo fare devi chiederti se e' 
giusto farlo. L'utente deve sempre essere informato sulle operazioni che 
il software sta svolgendo soprattutto quando queste occupano molto 
tempo. Se gli dai la possibilita' di non avere queste informazioni 
perche' gli permetti di chiudere la finestra gli comunichi una falsa 
informazione. Dovresti intercettare la chiusura della finestra emettendo 
un messaggio tipo "Guarda che il lavoro va avanti comunque!".
Spero d'essere stato chiaro.

warp10 ha scritto:





è stato richiesta dall'utente(cliente) questa possibilità.
cmq grazie dei suggerimenti


 cmq grazie dei suggerimenti
Cerca di fargli cambiare idea perche' sara' senz'altro una delle prime 
cose che ti chiedera' quando si accorgera' che ti ha chiesto una 
cavolata. Non sempre devi attaccare l'asino dove vuole il padrone.

 cavolata. Non sempre devi attaccare l'asino dove vuole il padrone.
le tue sono tutte massime buone e ti ringrazio ma purtroppo è difficile
fargli cambiare idea e so anche che poi la cambierà da solo.


 fargli cambiare idea e so anche che poi la cambierà da solo.
Lo spero per te e per lui :)