Visualizzazione dei risultati da 1 a 10 su 10

Discussione: problema sessioni

  1. #1

    [login] problema sessioni

    Ecco il codice del mio login2.php:

    Codice PHP:
    <?php
    include("config.inc.php");
    $nick htmlspecialchars(trim($_POST["nick"]));
    $pass md5($_POST["pass"]);
    $query "SELECT id, nick, passw FROM utenti WHERE nick = '$nick'";
    $q mysql_query($query);
    $c mysql_num_rows($q);
    if ( 
    $c $v mysql_fetch_row($q);
    else {
      
    //header("Location: login.php");
      //exit;
      
    echo "else";
    }
    if ( 
    $v[2] == $pass ) {
        
    $_SESSION["loggato"] = TRUE;
        
    $_SESSION["IDlog"] = $v[0];
        
    $_SESSION["nick"] = $v[1];
    }
    echo 
    $v[0];
    echo 
    " // ";
    echo 
    $_SESSION[nick];
    echo 
    " // ";
    echo 
    $_SESSION[IDlog];
    print_r($_SESSION);
    print_r($v);
    echo 
    "fatto";

    //header("Location: index.php");

    ?>
    D'entro l'if ci entra ^^ e qui ok.
    adesso vi scrivo gli i vari echo finali:

    1 // stermi // Array ( [loggato] => 1 [IDlog] => [nick] => stermi ) Array ( [0] => 1 [1] => stermi [2] => 3f5bee793650e3f ) fatto

    come vedete dentro $_SESSION[IDlog] ( dove dovrebbe risiedere l'ID dell'user ) non c'è niente... questo mi ha fatto pensare che dentro l'ID del db non ci sia nulla... invece se andiamo a vedere $v[0] che contiene l'ID del db c'è 1....

    allora come mai non va a buon fine il $_SESSION["IDlog"] = $v[0]; ??

    Un altra domanda quando faccio $_SESSION["loggato"] = TRUE; dentro $_SESSION["loggato"] ci infila 1... è normale cosi? cioe 1 == true?

    grazie per le risposte

  2. #2
    Ci capisci solo tu in quell'output.

    formatta la stampa dell'array con il tag < pre >. Presubilmente hai fatto un array multidimensionale.

    echo "<pre>";
    print_r($_SESSION);

    E' errato il modo... i dati devono rimanere nel db, che te ne fai nella variabile di sessione. Al massimo metti il nick. 1 significa true, ma poi se fai un controllo con

    if($variabile == true ) qualunque cosa ci sia e' true...

    leggi questa recentissima discussione...

    http://forum.html.it/forum/showthrea...hreadid=868668

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

  3. #3
    le sessioni le uso semplicemente per questo:

    $_SESSION["loggato"] = TRUE;

    quando poi un utente entra dentro una pagina accedibile solo per gli utenti loggati faccio il controllo

    if ( $_SESSION["loggato"] != TRUE ) die ("Devi loggarti!");

    --- codice pagina ---

  4. #4
    Originariamente inviato da StErMi
    le sessioni le uso semplicemente per questo:

    $_SESSION["loggato"] = TRUE;

    quando poi un utente entra dentro una pagina accedibile solo per gli utenti loggati faccio il controllo

    if ( $_SESSION["loggato"] != TRUE ) die ("Devi loggarti!");

    --- codice pagina ---
    $_SESSION["loggato"] = TRUE;

    lo scrivono solo sui libri. renditi conto che qualsiasi cosa ci sia e' true. Un passepartout.

    $_SESSION["loggato"] = "evviva la mucca carolina";

    e' molto meglio "assai".... comunque io te l'ho detto, tu farai come ti pare....


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

  5. #5
    Ecco tutto aggiornato con i tag <pre> ^^

    Codice:
    Codice PHP:
    <?php
    include("config.inc.php");
    $nick htmlspecialchars(trim($_POST["nick"]));
    $pass md5($_POST["pass"]);
    $query "SELECT id, nick, passw FROM utenti WHERE nick = '$nick'";
    $q mysql_query($query);
    $c mysql_num_rows($q);
    if ( 
    $c $v mysql_fetch_row($q);
    else {
      
    //header("Location: login.php");
      //exit;
      
    echo "else";
    }
    if ( 
    $v[2] == $pass ) {
        
    $_SESSION["loggato"] = TRUE;
        
    $_SESSION["IDlog"] = $v[0];
        
    $_SESSION["nick"] = $v[1];
    }
    echo 
    $v[0];
    echo 
    "<pre>";
    echo 
    $_SESSION[nick];
    echo 
    "<pre>";
    echo 
    $_SESSION[IDlog];
    echo 
    "<pre>";
    print_r($_SESSION);
    echo 
    "<pre>";
    print_r($v);
    echo 
    "<pre>";

    //header("Location: index.php");

    ?>
    Echo vari:

    4

    lol

    Array
    (
    [loggato] => 1
    [IDlog] =>
    [nick] => lol
    )

    Array
    (
    [0] => 4
    [1] => lol
    [2] => 9cdfb439c7876e7
    )

  6. #6
    non capisco perche $_SESSION["IDlog"] sia vuoto

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    il tag <pre> basta metterlo una sola volta. Mancano le apici agli indici associativi.
    codice:
    echo $v[0];
    echo "
    ";  
    echo $_SESSION['nick'];
    echo "
    ";  
    echo $_SESSION['IDlog'];
    echo "<pre>"; 
    print_r($_SESSION); 
    print_r($v);
    echo "</pre>";

  8. #8
    ok ma una risposta?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Originariamente inviato da StErMi
    ok ma una risposta?
    Una risposta a che?

    La sintassi è quella, vedi tu perchè non va. Prova a cambiare il valore. Se lo provo sul mio pc funziona certamente.

  10. #10
    ho risolto da solo ^^

    grazie ad ogni modo

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.