Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    109

    [PHP] Settaggio cookie che non avviene

    Ho un problema relativo ad un settagio di cookie dopo una determinata operazione, dove su un server windows di aruba(PHP 4.3.10 e IIS6)funziona(idem su un server linux di serverplan) e su un'altro sempre windows (PHP 4.3.9 e IIS5) non funziona. Premesso che ho verificato il discorso settaggi PHP e non trovo grosse differenze sostanziali, vi riporto il codice che crea problemi.

    codice:
    function li() {
    	
    	global $password;
            global $login;
            global $passage;
    	global $cookie_user;
    	global $envSelected;
    	
    	$user = "$login";
    	$user .= "%";
    	$user .= "$password";
    	$user_info = base64_encode($user);
    	
    	$crypted_pass = md5($password);
    	$resource = mysql_query("SELECT id FROM users WHERE username=\"$login\" AND password=\"$crypted_pass\" ", $envSelected->dbMyWork);
    	
    	$resources_num = mysql_num_rows($resource);
    	
    	if ($resources_num == 1) { 
    	setcookie("cookie_user",$user_info,time()+3600);
    	header("Location: pagine.php?page=Login&passage=liok");
    	
    	}else{
    	
    		if ( $resources_num > 1){
    		print("Attenzione: più di un utente possiede stessa password e stesso username"); 
    		} else {
    		if ( $resources_num == 0) header("Location: pagine.php?page=Login&passage=liko");
    		} 
    	
    
    	}
    
    }
    Quindi credo si capisca che dopo una query di verifica user e pass se da come risultato 1 va a settare il cookie altrimenti esegue altre cose...

    Non mi spiego perchè questo passaggio funziona su due server differenti e sul terzo server su cui ora è ospitato non crea il cookie, eppure facendo una prova in un file a parte cercando di settare un cookie tutto funziona...

    Qualcuno sa dirmi se su questo può influire qualche parametro dei settaggi del php oppure se può essere dovuto alla versione di IIS o di PHP stesso?

    Ve ne sarei molto grato, purtroppo la mia limitata esperienza ancora non mi permette di capire se sbaglio qualcosa io a livello di programmazione o se il server fa capricci...

    Ringrazio anticipatamente


  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    109
    Potrebbe essere questo settaggio nel PHP?

    session.use_trans_sid off


  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    109
    up


  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    109
    Ho risolto il problema... nelle versioni precedenti di IIS6 a quanto pare, il settaggio di un cookie seguito da un redirect php comporta una mancata creazione del cookie stesso. Provo a spiegarmi con un esempio sperando di poter essere di aiuto a qualcuno in futuro, visto che ci ho perso un po di tempo tra test vari e ricerche.

    Esempio non corretto (Nelle versioni di IIS<6)

    setcookie("cookie_user","pippo",time()+3600);
    header("Location: index.php");

    Esempio corretto (Versioni di IIS<6)

    setcookie("cookie_user","pippo",time()+3600);
    echo "<meta http-equiv='REFRESH' content='1; URL=index.php'>";

    Il problema da me posto non sussiste dal momento che il codice è ospitato su server Windows con versione IIS6 o Linux


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 © 2025 vBulletin Solutions, Inc. All rights reserved.