Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Pagina LOG-IN, sessioni e cookie

    Premetto che sto imparando il php andando avanti col suo utilizzo, sono veramente alle prime armi con questo linguaggio.

    Sto cercando di far funzionare la pagina del log-in sul mio sito.
    Solo che capisco veramente poco di sessioni e cookie... probabilmente faccio errori stupidi, comunque.

    Riesco a loggarmi con i miei dati... succede tutto come deve... ma dopo 1-2 refresh la pagina rimane bianca!
    E' ciò che non capisco dato che ho un
    if (sono loggato) {
    require (pannello utente)
    } else {
    require (form log in)
    }

    dovrebbe darmi o l'una o l'altra pagina... ma rimane in bianco... eppure ho il cookie sul mio pc! il famoso PHPSESSION...

    Codice PHP:
    <?php               
    if (isset($_SESSION['nick'])) {              
    require (
    'pannello_utente.php');              
    echo (
    $_SESSION['nick']);              
    } else {              
    require (
    'login.php');              
    }              
    ?>
    Questo è il pezzo di codice nella index del mio sito...

    Codice PHP:
    <?php 
    require ('db.php'); 
    // Prendo variabili nick & password 
    $nick=$_POST['nick']; 
    $password=$_POST['password']; 
    // Mi connetto al database e faccio query 
    $db=mysql_connect($db_host$db_user$db_password); 
    mysql_select_db($db_name$db); 
    $passdb=mysql_db_query("SELECT * FROM `tst_users` WHERE `nick` = '$nick';"$db); 
    $psw mysql_fetch_assoc($passdb); 
    // Se i campi sono vuoti genero il form, senò se la pass è giusta genero sessione & cookie, altrimenti genero form con la dicitura dati errati 
    if ($nick == ' ' && $password == ' ') {   
    require (
    'form_login.php');   
    } elseif (
    $psw['password'] == $password) {     
    session_start();     
    $_SESSION['nick']=$nick;     
    } else {       
    require (
    'form_login.php');       
    echo (
    'Dati errati');       

    ?>
    Questo invece è lo script per il log-in...

    Probabilmente la soluzione sarà banale, ma io non la trovo...

    Grazie dell'aiuto!

  2. #2
    ho notato un punto e virgola di troppo

    Codice PHP:
    $passdb mysql_db_query("SELECT * FROM `tst_users` WHERE `nick` = '$nick' "$db); 
    Inoltre se posso darti un consiglio.
    Usa queste sintassi, potresti trovarne vantaggio.

    Codice PHP:
    $query "SELECT * FROM mytable"// query SQL
    $elabora_query mysql_query($query$db); // Lancio la query, il risultato è in $elabora_query
    $risultato mysql_fetch_array($elabora_query); //valido se hai una sola riga di risultato
    if (mysql_num_rows($elabora_query) != 0// controllo se ho almeno una riga
    {
    }
    else 
    // se non ho risultati
    {
    }
    while (
    $risultato mysql_fetch_array($elabora_query)) //se hai almeno due righe di risultato
    {

    con il while in pratica prendi ad ogni giro del ciclo il valore successivo dell'array.

  3. #3
    Come mai quel ; è di troppo? Uno serve alla fine della query, l'altro al termine dell'istruzione php, o sbaglio?'

    Comunque l'ho eliminato e non cambia nulla nei risultati...

    Il while non mi serve (credo) perchè ho solo la password da prendere dal db

    Grazie comunque

  4. #4
    nella definizione della query non c'è bisogno del ;

    se noti nel mio codice, funziona tutto, il ; serve per dire a php che ho finito l'istruzione su quella riga e basta.

  5. #5
    Capito, grazie... ora riprovo...

  6. #6

  7. #7
    ma questo codice

    <?php
    if (isset($_SESSION['nick'])) {
    require ('pannello_utente.php');
    echo ($_SESSION['nick']);
    } else {
    require ('login.php');
    }
    ?>

    è preceduto dalla istruzione session_start()?

  8. #8
    Si, è all'inizio di index.php (che contiene quel codice)

  9. #9
    Scusa, fammi capire un pò come avviene il login, quali pagine php vengono eseguite ed in quale ordine.
    Ossia nella pagina che tu dici essere la tua index, hai scritto:

    $nick=$_POST['nick'];
    $password=$_POST['password'];

    quindi c'è un'altra pagina da cui invii queste variabili?

  10. #10
    Guarda il mio primo messaggio qui!

    Il primo codice php è inserito nella 'index.php', e all'inizio della stessa pagina c'è session_start()

    Il secondo spezzone di codice è il contenuto di login.php che viene richiamato dal primo nel caso non ci fosse l'autenticazione.

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.