• User Attivo

    Variabile demoniaca -.-

    Ciao

    E' da due giorni che ho a che fare con una variabile posseduta dal demonio:x nella pagina login.php inserendo username e password l'utente può entrare nella pagina personale. Assegno la seguente sessione
    [php]$id = $username1;
    session_register("id");[/php]L'utente prosegue alla pagina profile.php dove con l'include della pagina membersonly.php viene verificata la validità della sessione. TUTTO FUNZIONA. Se non ho la sessione non entro. Ora ecco il problema che descriverò con un esempio banale.

    Voglio scrivere nella pagina dell'utente
    [php]echo "Benvenuto $_SESSION["id"]";[/php]Cosa accade? Al refresh della pagina o comunque proseguendo in altre pagine protette da login vengo disconnesso :arrabbiato: Nel momento stesso in cui richiamo la variabile questa si cancella dalla sessione. Ho provato veramente di tutto!!! Ho provato senza successo a "duplicarmi" la sessione ma niente da fare! Ma come faccio a creare la pagina dinamica senza poter utilizzare l'username / id dell'utente!?


  • ModSenior

    Ciao kian,

    Puoi fare più semplicemente cosi:
    [php]
    $_SESSION['id'] = $id;
    [/php]
    e facendo un echo cosi, dovrebbe andare:
    [php]
    echo 'Benvenuto '.$_SESSION['id'];
    [/php]


  • User Attivo

    Grazie della risposta. Dunque ci siamo quasi. Nei link adesso mi fa mettere la variabile senza farmi fare il log out. Il problema però persiste nella query. Appena uso la sessione nel SELECT al refresh successivo sono sloggato.
    [php]$query = "Select * from signup where username='$_SESSION[id]'";
    $result = mysql_query($query);[/php]


  • ModSenior

    Ciao Kian,

    Ma tu metti session_destroy se non passa il controllo?
    Prova cosi, anche se dovrebbe essere indifferente.
    Ma non stai confrontando il nick con l'id?
    [php]
    $query = "Select * from signup WHERE username='{$_SESSION['id']}'";
    $result = mysql_query($query);
    [/php]


  • User Attivo

    mmm la faccenda è più strana di quanto pensassi. Non è un problema di sessioni. L'utente viene sloggato nel momento in cui eseguo la seguente query
    [php]$query = "SELECT * FROM cabal_bestclass WHERE username=''";[/php]Qualunque cosa metta nel WHERE ($_GET, $_POST, $_SESSION, $row[var], variabile) vengo sloggato. Se lascio il WHERE vuoto non ci sono problemi. Che senso ha? :mmm: posto la quey completa
    [php]
    $lista = "";

    $query = "SELECT * FROM cabal_bestclass WHERE username=''";
    
    $query_ret = mysql_query($query);
    
    if(!$query_ret)
    {
        $lista = "
            <tr title=>
            <td class=ww><a href=".$sql_return["id_char"].">".$sql_return["nickname"]."</a></td>
            <td class=aa><a href=$_SESSION[id]><img src=img/arrow.gif border=0></a></td>
            </tr>";
    }
    
    if(mysql_num_rows($query_ret) == 0)
    {
       $lista = "
            <tr title=>
            <td class=ww><i>No character created</i></td>
            <td class=aa><i>0/5</i></td>
            </tr>";
    }
    else
    {
        while($sql_return = mysql_fetch_assoc($query_ret))
        {
    
            $lista .= "
            <tr title=>
            <td class=ww><img src=".$sql_return["id_char"]."><br></td>
            <td class=aa><a href=edit.php?id_char=".$sql_return["id_char"]."&username=".$sql_return["username"]."&type=".$sql_return["type"]."><img src=img/arrow.gif border=0></a></td>
            </tr>";
        }
    }[/php]p.s. Ho dovuto "mutilare" le parti con il link perchè non me lo fa postare