Newsgroup: it.comp.www.php
Titolo: Chiudo browser...etc..parte II

Ho fatto come mi avete consigliato ma purtroppo quando chiudo il browser non
parte lo script..
vi riporto cio' che ho fatto..
ho il file chiudicarrello.php:
<?
  include ("funzioni/connect.php");
 $user=tizio;
  @mysql_db_query("e27","drop table $user",$db);
?>
nel mio index.php :
<BODY onUnload="chiudicarrello.php"  bgcolor= <? echo $sfondo; ?>>
La tabella $user esiste ma quando chiudo il browser continua ad
esistere...allora ho provato le seguenti varianti:
onUnload("chiudicarrello.php")
onUnload=("chiudicarrello.php")
niente da fare...
ho definito chiudicarrello all'interno del'index  come una funzione interna
fra gli HEAD:
<?
function chiudi()
{
  include ("funzioni/connect.php");
 $user=tizio;
  @mysql_db_query("e27","drop table $user",$db);
}
?>
poi nel body ho richiamato:
<BODY onUnload="chiudi();"  bgcolor= <? echo $sfondo; ?>>
anche con varie altre varianti...
ma purtroppo non elimina nessun carrello...
euterpex



ciao! secondo me stai facendo confusione tra script client-side e
script server-side.
il php viene eseguito dal server prima di spedire la pagina, poi il
codice php viene tolto dalla pagina e spedita. quindi la gunction
chiudi() in php non e' nota al javascript che tu richiami,
client-side, con l'evento onUnload !!!!
ora non ho tempo eventualmente te lo spieghero' meglio stasera, ma
secondo me dovresti fare una cosa del tipo:
lo script di chiusura chiudi_carrello.php come facevi all'inizio
poi nella pagina HTML scrivi (per effettuare una redirezione)
<html>
<head>
<title.....etc
<script   language="Javascript">
   function fine() {
	document.location.href = "chiudi_carrello.php";
   }
</script>
<body onUnload ="fin();">
etc...
prova e fammi sapere!
ciao 
Roberto Padovani
----------------
ICQ#125729644
----------------

 ha scritto nel messaggio
news:3ba8772c...@news.interbusiness.it...


 ha scritto nel messaggio
news:3ba8772c...@news.interbusiness.it...


sapete per caso indicarmi qualcosa...?
dunque, per il fatto della pagina bianca ... io lo script di chiusura
lo chiamo con un form con method post dove ci sono solo input con
type=hidden trasformando il javascript in
document.my_form_name.submit();
e facendo in modo che dopo aver terminato le ciapinerie di chiusura la
pagina si rediriga sulla homepage, come per permettere all'utente di
ricominciare... se lo script di chiusura non fa output la pagina
bianca non la vedi.
per l'altro problema si puo' pensare di fare un controllo nella
funzione javascript sul valore di una variabile che imposti attraverso
php. sfortunatamente l'unico punto di contatto tra php e javascript e'
il codice html percio' credo che l'unico modo per passare on valore,
per esempio un flag booleano per dire se effettivamente deve eseguire
lo script di chiusura, si di scrivere in un form un controllo input
con type=hidden name="flag_close" e  value="x" dove x = true | false.
nel javascript poi controllo con un:
if ( document.my_form_name.flag_close.value=="true" ) { allora
submitto la chiusura }
normalmente invece il campo hidden varra' "false" e i cambi di pagina
non provocherranno i logout
ciao
P.S ho accettato la tua richiesta


Scusate, ma non è più semplice che:
nel carrello inserisci pure una data di scadenza e che quando un'utente
qualsiasi vede (per esempio) il carrello, cancelli tutti i records scaduti.
Poi visualizzi il carrello di quel utente ...
@mysql_query(delete * from tuo_db where time < $time);
@mysql_query(select * from tuo_db where ecc, ecc.);
Cosi facendo non devi preoccuparti di quando uno se ne va senza comperare,
perchè al prossimo cliente passato un certo tempo ti cancella i carrelli che
sono scaduti ...
(Spigazione un po' incasinata, ma spero di essermi spiegato (non sono ancora
andato a dormire da ieri ...sob!!!))
Devil



e' una possibile soluzione, ma non credo convenga aumentare l'overhead
sia della rete che dell motore mysql per tutto il tempo (futuro) in
cui sara' attiva per risparmiare un'ora di programmazione.
cheers,
