Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Controllo Session

  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    Controllo Session

    Mi succede una cosa strana; questo codice controlla se la sessione è valida e nel caso contrario ti rimanda alla pagina del login.
    codice:
    <?
    session_save_path("/tmp");
    session_start();
    
    include("config.php");
     
    if (!$_SESSION['valido']) {
    	session_destroy();
    	header("Location: index.php");
    } elseif ($_SESSION['valido'] == "false") {
    	session_destroy();
    	header("Location: index.php");
    }
    ?>
    Se sono in locale mi funziona perfettamente e dopo che eseguo il login mi fa entrare. Quando testo online, invece, eseguendo il login corretto mi rimanda all'index.php.

    [questo è il codice che uso per il login]
    codice:
    ini_set('session.save_path','/tmp'); 
    session_start();
    include ('config.php');
    
    if (!empty($_POST['user']) and !empty($_POST['password'])) { 	
    			$pass = md5($_POST['password']);
    			$user = $_POST['user'];
    				
    			$sql = "SELECT * FROM ". $prefix ."users WHERE username = '$user' AND password = '$pass'";
    			 $consulta=mysql_query($sql,$conn);			
    			$nom=mysql_num_rows($consulta);
    			if ($nom==1) {			    
    				$_SESSION['valido'] = "true";		
    				header("Location: main.php");
    			} else {				
    				$_SESSION['valido'] = "false";
    				$error = " Errore: Nome e Password non validi.";
    			}
    		} else {
    	
    	if (!isset($_SESSION['valido'])){	
    	 	$_SESSION['valido'] = "false";	
    	} 
    	$error = "";
    }
    Allora mi chiedo:
    può essere che online non viene registrata la sessione?
    Può dipendere da: session_save_path("/tmp");?

    Ripeto in locale funziona perfettamente.

  2. #2
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Nessuno sa dirmi qualcosa?

  3. #3
    Originariamente inviato da semolino
    Nessuno sa dirmi qualcosa?
    Se non puo' scrivere il file di sessione ti renderebbe errore. Oppure non i cookies abilitati.

    Explorer accetta i cookie di sessione in locale anche se sono disabilitati. Ovviamente non li accetta da remoto.

    Verifica anche nel php.ini dove sono allocati i file di sessione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Allora ho fatto la prova in locale sul mac e funziona, da remoto usando safari mi da lo stesso errore.

    I miei file sono sui server aruba.
    Cosa mi serve sapere dove sono allocati nel php.ini? Tanto è da remoto che non va, oppure ho capito male cosa devo controllare

  5. #5
    quello che ho scritto si riferisce al remoto. Hai provato a togliere il session_save_path dal tuo script? /tmp potrebbe gia' essere nella configurazione del php.ini (controlla)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Ok ho decommentato la riga session_save e finalmente mi entra.
    Ora si pone un altro problema.
    All'interno della mia area ho anche il pulsante esci, cosi al termine delle mie operazioni esco dalle aree protette.
    Il codice che esegue la pagina esci.php è questo
    codice:
    session_start();
    session_destroy();
    header("Location: index.php");
    Ma se dalla index.php digito la pagina main.php mi entra lo stesso, come se avessi eseguito il login.
    Come mai? VVoVe:

  7. #7
    codice:
    session_start();
    $_SESSION = array();
    session_destroy();
    header("Location: index.php");
    exit;

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    E' possibile che lo faccia ancora?

  9. #9
    Originariamente inviato da semolino
    E' possibile che lo faccia ancora?
    Faccia ancora che? l'id di sessione lo recupera se non chiudi il browser ma $_SESSION sara' vuoto. Devi controllare $_SESSION anche se, come gia' detto altre volte, lascerei perdere il true e il false, ma controllerei un valore specifico.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Dopo che ho cambiato e ho messo il tuo codice, mi fa ancora entrare nella main.php senza fare il login.

    In effetti è vero, se chiudo il browers non lo fa più!
    ---
    Quindi per migliorare ancora tu mi dici di non usare false o true ma di usare un valore; devo intervenire su questa parte?
    codice:
    if ($nom==1) {			    
    				$_SESSION['valido'] = "strSessionOk";		
    				header("Location: main.php");
    			} else {				
    				$_SESSION['valido'] = "strSessionDenied";
    				$error = " Errore: Nome e Password non validi.";
    			}
    		} else {
    	
    	if (!isset($_SESSION['valido'])){	
    	 	$_SESSION['valido'] = "strSessionDenied";	
    	} 
    	$error = "";
    poi il controllo lo faccio cosi?
    codice:
    if (!$_SESSION['valido']) {
    	session_destroy();
    	header("Location: index.php");
    } elseif ($_SESSION['valido'] == "strSessionDenied") {
    	session_destroy();
    	header("Location: index.php");
    }
    Oltre a questo poi il fatto che fino a che non chiudo il browers riesco ad accedere senza fare il login o risolvo anche questo fatto?
    Grazie di tutto (intanto)

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.