Newsgroup: it.comp.www.php
Titolo: php fra 2 siti web

ciao a tutti
questo è il mio problema: io ho il mio portale che con numerosi link a
vari altri siti finali.
io devo monitorare quanti click vengono fatti su questi link. 
Per fare questo ho fatto un programma in php che parte quando clicchi
sul link, scrive un database e poi fa il redirect al sito finale.
Tutto funziona ad eccezione di una cosa fondamentale: se dal sito
fianle clicco sul tasto indietro del browser non torno sul portale ma
sul programma php che fa la redirect e mi riporta di nuovo avanti sul
sito finale innescando una situazione senza uscita!!! In sostanza io
vorrei che il mio php fosse 'trasparente' alla history del browser!
spero di essermi spiegato
vi ringrazio molto
andrea

 sito finale innescando una situazione senza uscita!!!
1^ Soluzione, non perfetta, fare un controllo su 
$_SERVER['HTTP_REFERER'].
2^ Soluzione, usare 1, e se il referer non e' valorizzato utilizzare le
sessioni per tracciare i movimenti, ad esempio:
	a. se la sessione non esiste (es. il client e' uscito completamente
sul sito), tornare alla pagina precedente (es con JS) oppure alla home
page del portale.
	b. se la sessione esiste:	
		b1. il link che porta alla pagina di uscita dovrebbe 
		    contenere un campo univoco (es. un hash su un random)
		    in modo da poter tracciare la singola richiesta
		b2. salvo in sessione una cosa tipo:
				if (!isset ($_SESSION[$hash_univoco])) {
					$_SESSION[$hash_univoco] = 1;
				} else {
					$_SESSION[$hash_univoco]++;
				}
		b3. poi eseguo:
			if ($_SESSION[$hash_univoco] % 2 == 0) {
				// vai alla pagina precedente/home del portale
			} else {
				// vai alla url di destinazione
			}
E' un po' complicato ma in teoria dovrebbe funzionare.
-- 
I am what I am, I do what I can
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.


Avevo gia tentato qualcosa con HTTP_REFERRER o altre soluzioni di
controllo DENTRO il file PHP intermedio. Il vero problema è che, alla
pressione del tasto INDIETRO del browser, lo script php NON viene
rieseguito, ma soltanto viene restituito l'output in cache! per
provare ciò ho banalmente inserito un echo microtime(); e il timestamp
restituito non varia assolutamente!
Forse sbaglio qualcosa nel sistema per fare il redirect? 
ho provato a utilizzare header ("location: nomesito"); ma php mi
restituisce il warning header already sent by.... e ciò già non lo
capisco poiche lo  script era il seguente:
<?php
header ("location: nomesito"); 
?>
quindi spiegatemi dove li ha già inviati questi headers???
e così ho ripiegato su una soluzione
echo "<script language='javascript'>";
echo "location.href='nomesito'";
echo "</script>"; 
e, naturalmente, funziona.
insomma non so più che pesci pigliare!!

 insomma non so più che pesci pigliare!!
La soluzione che ho proposto dovrebbe funzionare, pero' forse non e'
alla tua portata.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C


 un file_prepend configurato.
e certo, era questo qui il problema! utilizzando l'header location ho
risolto il tutto e, cosa fondamentale, non c'è alcun bisogno di
gestire il back perchè lo script php rimane totalmente trasparente
alla history
grazie,
andrea