Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Php, jquery e settaggio di cookies

    Lo script che mi serve dovrebbe risettare i cookies di login una volta che l'utente abbia cambiato la propria password, in modo che non deva essere costretto a fare il logout e a riconnettersi.
    Siccome ho già stampato del codice in precedenza, non posso usare la funzione setcookie nella stessa pagina in cui cambia la password.
    La mia idea è: una volta fatta l'update del campo password tramite post, richiamo una pagina a parte con jquery; lì setto il cookie.
    Però non mi funzia. Raggiungo la pagina esterna, ma non mi setta il cookie (e ovviamente quando fa l'headers l'utente si disconnette, visto che non trova corrispondenze tra i parametri del cookie e la nuova password).

    Questo il codice javascript:
    codice:
    //funzione base da richiamare a ogni uso di ajax
    function CreateXmlHttpReq(handler){
    	var xmlhttp = null;
    	try{
    		xmlhttp = new XMLHttpRequest();
    	}catch(e){
    		try{
    			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    		}catch(e){
    			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	xmlhttp.onreadystatechange = handler;
    	return xmlhttp;
    }
    
    
    //aggiorna in tempo reale i campi modificati; "indirizzo" è il link al file dove viene eseguito lo script (che può essere insert, update, ecc.)
    function aggiorna_campo(indirizzo, valore){
        myRequest = CreateXmlHttpReq();
        myRequest.open("GET", indirizzo+'&valore='+valore);
        myRequest.send(null);
    }
    Questo il richiamo che faccio subito dopo il cambio di password ($valore contiene password in md5 + username, che viene passato come get alla pagina resetta_cookie.inc.php):
    codice:
    <script language="JavaScript" type="text/javascript">aggiorna_campo('resetta_cookie.inc.php', '<?php echo $valore; ?>')</script>
    Pagina di settaggio del cookie:
    Codice PHP:
    $username=substr($_GET["valore"], 32);
    $password=substr($_GET["valore"], 032);
    //setto  la durata del cookies a una settimana
    setcookie("session"$username.'_&&_'.$passwordtime()+3600*24*7); 
    Qualche idea del perché non va?

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    e se tu ti facessi una pagina di bridge che ti cancella il cookie e ti reindirizza?

    magari te la tieni buona come pagina di reset da richiamare quando vuoi fare un reset

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Ci ho pensato, ma il problema è sempre il fatto che ho degli echo in precedenza e quindi la funzione header di php non funziona... ho provato usando il self.location di javascript, ma il risultato è lo stesso: raggiunge la pagina, ma non setta i cookies.
    Mi viene da pensare che la pagina di destinazione faccia il reindirizzamento prima che il cookie sia settato...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.