Visualizzazione risultati 1 fino 4 di 4

Discussione: Domanda su sessioni

  1. #1
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito Domanda su sessioni

    Premetto che leggendo sia in internet sia nel forum, dell'utilizzo delle sessioni ci ho capito poco o niente: ho capito soltanto che mi servono

    In particolare, su questo forum, ho trovato un post interessante dove Xenom89 spiegava l'utilizzo:

    Codice:
    <? 
    //recuperi la variabile dal form 
    $nome=$_POST['nome']; 
    //questo serve per eliminare un'eventuale vecchia sessione 
    session_start(); 
    session_unset(); 
    session_destroy(); 
    //inizializzi una nuova sessione 
    session_start(); 
    //salvi nella variabile $_SESSION['nome'] il contenuto di $nome 
    $_SESSION['nome']=$nome; 
    ?>
    Ma con questo codice, chiunque si può collegare: basta che nel form prima scrive qualsiasi cosa!!...

    Ho buttato giù questo codice:

    Codice:
    <?php
    session_start();  //elimino eventuali sessioni aperte 
    session_unset(); 
    session_destroy(); 
    session_start();  //apro una nuova sessione
    ?>
    <html>
    <head>
    <title>
    login...alemoppo.altervista.org
    </title>
    Attendere il login...
    <?php
    $db=mysql_connect("localhost","alemoppo", "");
    if($db == FALSE)
    {?>
    <script language="Javascript">
    alert("Errore nella connessione nel database...");
    setTimeout("annulla()", 100);
    </script>
    <?php
    }
    else
    {
    	$nick=$_POST['nick'];
    	$pass=$post['pass'];
    	mysql_select_db("my_alemoppo",$db);
    	$testo_query="SELECT livello FROM utenti WHERE pass='$pass' AND nick='$nick'";  //livello ha valori variabili maggiori di 0 (lo userò per decidere se si è neofita, mod...)
    	$livello=mysql_query($testo_query,$db);
    	if($livello)
    	{
    		$_SESSION['livello']=$livello;
    		$_SESSION['nick']=$nick;
    		alert("connessione accettata!");
    	}
    	else
    	{?><script language="Javascript">
    		alert("Errore: password errata!");
    		setTimeout("annulla()", 100);
    		</script>
    	<?php
    	}
    }
    ?>
    <script language="Javascript">
    function annulla()
    {
    	
    	window.navigate('index.php');
    }
    </script>
    </body>
    </html>
    ...Ma, (come mi è sembrato di capire in molte pagine), non posso andare a modificare $_SESSION['livello'] e $_SESSION['nick'] dopo <html>, giusto??... Ma allora, se non posso andare a invocare l'html, come faccio a vedere se il nick e la password esistono sul mio database??
    Come faccio a far capire all'utente che ha sbagliato a scrivere la password?

    Come devo fare??
    E' totalmente sbagliato il codice che ho scritto??

    p.s. e poi, a cosa serve l'ID della sessione?? Se $_SESSION['nome'] contiene qualcosa, va bene... no? e quindi a me non serve, giusto?

    Scusate l'ignoranza

    Grazie,

    CIAO!

  2. #2
    Guest

    Predefinito

    Io sul mio sito le utilizzo le sessioni, e faccio così.
    Intanto nella index se vuoi usare le sessioni devi scrivere prima di un qualsiasi output:
    Codice PHP:
    <?php
    session_start
    ();
    ?>
    Poi io mi tengo una variabile di sessione che se è settata a 1 vuol dire che l'utente è loggato, altrimenti non lo è.
    Quindi nella index del mio sito scrivo:
    Codice PHP:
    <?php
    //sessione già avviata
    if(!isset($_SESSION['log'])) {
    $_SESSION['log'] = 0;
    }
    ?>
    Nella pagina di login prendo i dati di tutti gli utenti (non uso database) e li confronto con quelli passati dal form. Se vengono trovati (Quindi un'utente esiste) verifico la password, e se anche quella è giusta prendo la variabile $_SESSION['name'] e ci metto il nome utente, poi prendo la variabile $_SESSION['log'] e la setto a 1. Ovviamente in tutte le pagine ci deve essere il controllo sulla variabile $_SESSION['log'] (perchè se è == 0 devo scrivere che non si è loggati).
    Un po' più chiare le sessioni adesso?

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    GRAZIE PER LA RISPOSTA...

    Anche io avevo pensato di tenere una variabile a 1 se si è loggati o 0 se non lo si è...

    Poi ho pensato che è sufficiente soltanto sapere il nome:

    In ogni pagina controllo se la variabile che contiene il nome ($_SESSION['nome']) è vuota (e se è vuota scrivo di fare il login)...

    No?: si risparmierebbe una variabile!

    Adesso, tutto mi è un pò più chiaro, ma ho altre 2 domande:

    1->Tra i due codici che ha scritto gabryhacker, si può mettere del codice HTML?

    2->Penso che il codice che ho fatto vada bene... PERCHè non funziona??

    GRAZIE...

    CIAO!

  4. #4
    Guest

    Predefinito

    Rispondo alla prima domanda: si, puoi mettere html

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •