• User Attivo

    come funziona SESSION

    Ciao a tutti, io ho una pagina dove faccio il login, se è andato a buon fine vorrei che nalla pagina dolo lo invio, uscisse il nome di chi si è loggato, lo faccio, forse in modo errato
    login.php
    [php]
    if(isset($_POST['t_username']))
    {
    $user = (isset($_POST['t_username'])) ? trim($_POST['t_username']) : '';
    $pass = (isset($_POST['t_password'])) ? trim($_POST['t_password']) : '';
    if (get_magic_quotes_gpc())
    {
    $user=stripslashes($user);
    $pass=stripslashes($pass);
    }
    $user= htmlspecialchars($user);
    $pass= htmlspecialchars($pass);
    $user=mysql_real_escape_string($user);
    $pass=mysql_real_escape_string($pass);

    $query = mysql_query("SELECT id_giocatore FROM tab_registrazione WHERE nickname = '$user' AND password = '$pass' LIMIT 1");
    if(mysql_num_rows($query) == 1)
    {
    $login = mysql_fetch_array($query);
    $_SESSION['login'] = $login['id_giocatore'];
    header('Location: index.php');
    exit;
    }
    else
    {
    $messaggio=urlencode("Accesso Negato!<br>
    Username e/o Password non riconosciuti"<br>
    header('location:'.'frm_login.php'.'?msg='.$messaggio);
    exit;
    }
    }
    [/php]
    la pagina index.php
    [php]
    <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="400">
    <tr>
    <td><?php
    if(!isset($_SESSION['id_login'])){
    echo"aaa";}
    else{
    echo"$_SESSION['id_login']";}?></td>
    </tr>
    </table>
    [/php]

    mi stampa sempre aaa

    ciao e grazie


  • ModSenior

    Ciao danny1975,

    tu imposti $_SESSION['login'] mentre fai il controllo su $_SESSION['id_login'].


  • User Attivo

    Grazie ho provato anche
    [PHP]
    <?php
    if(!isset($_SESSION['login'])){
    echo"aaa";}
    else{
    echo"$_SESSION['login']";}?>
    [/PHP]
    ma nulla da fare, secondo me non ho capito niente delle sessioni


  • ModSenior

    Il session_start viene eseguito in entrambe le pagine?


  • User Attivo

    Solo in login.php nella index.php no


  • ModSenior

    Devi metterlo pure la, altrimenti non puoi usare le sessinoi in quella pagina.


  • User Attivo

    Quando inserisco ```
    session_start();

    Warning: session_start()function.session-start: open(C:\temp\sess_b9ce7dd2e0c8e3427137d5a63ce49939, O_RDWR) failed: No such file or directory (2) in D:\html\fantascommetti\privato\index.php on line 2

    [PHP]
    <?php
    session_start();
    require '../Config.php';
    require '../Connect.php';
    ?>
    <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
        <tr>
            <td><?php
       if(!isset($_SESSION['login'])){
       echo"aaa";}
       else{
        echo"$_SESSION['login']";}?></td>
        </tr>
    </table>
    [/PHP]
     
    eppure sembra cosi facile
    ciao :cry:

  • User

    Ciao! (danny1975) prova se funziona così?

    [php]
    <?php
    session_start();
    require '../Config.php';
    require '../Connect.php';
    ?>
    <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
    <tr>
    <td><?php
    $login=$_SESSION['login'];
    if(!isset($_SESSION['login']))
    {
    echo"Ciao $login";
    }

    else{
    echo"devi effettuare prima il login";}?></td>
    </tr>
    </table>
    ?>
    [/php]
    Se funziona fammi sapere.


  • User Attivo

    @mauranto99 said:

    Ciao! (danny1975) prova se funziona così?

    [php]
    <?php
    session_start();
    require '../Config.php';
    require '../Connect.php';
    ?>
    <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
    <tr>
    <td><?php
    $login=$_SESSION['login'];
    if(!isset($_SESSION['login']))
    {
    echo"Ciao $login";
    }

    else{
    echo"devi effettuare prima il login";}?></td>
    </tr>
    </table>
    ?>
    [/php]
    Se funziona fammi sapere.

    Ciao oltre all'errore che ho segnalato in precedenza adesso mi dice

    **Notice**: Undefined index: login in **D:\html\fantascommetti\privato\siu.php** on line **9**
    Ciao 
    

  • ModSenior

    L'errore che hai postato precedentemente non è un problema che dipende dallo script, bensi ci sono problemi nelle gestioni lato server, è la configurazione del tuo server locale ad avere dei problemi e non lo script.


  • User Attivo

    @mauranto99 said:

    Ciao! (danny1975) prova se funziona così?

    [php]
    <?php
    session_start();
    require '../Config.php';
    require '../Connect.php';
    ?>
    <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
    <tr>
    <td><?php
    $login=$_SESSION['login'];
    if(!isset($_SESSION['login']))
    {
    echo"Ciao $login";
    }

    else{
    echo"devi effettuare prima il login";}?></td>
    </tr>
    </table>
    ?>
    [/php]
    Se funziona fammi sapere.

    @Thedarkita said:

    L'errore che hai postato precedentemente non è un problema che dipende dallo script, bensi ci sono problemi nelle gestioni lato server, è la configurazione del tuo server locale ad avere dei problemi e non lo script.

    Hai ragione adesso ho provato anche un altro sito che avevo fatto e mi da lo stesso errrore, mi potresti aiutare, grazie


  • User Attivo

    Ok con un po di pazienza sono riuscito a settare il php.ini
    adesso mi riconosce la session e mi da Ciao 1,
    1 sarebbe l'id del loggato, adesso devo dargli un nome ed ho fatto una query, ma non va pwerchè non so dove è l'errore con le virgolette, vi posto la query
    [PHP]
    <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
    <tr>
    <td><?php
    $login=$_SESSION['login'];
    $query_1=mysql_query("SELECT nickname FROM tab_registrazione WHERE id_giocatore=$login")
    or die("errore nella query;".mysql_error());
    $result=mysql_num_rows($query_1);
    if(isset($_SESSION['login']))
    {
    echo"Ciao" . $result['nickname'];
    }

    else{
    echo"devi effettuare prima il login";}?></td>
    </tr>
    </table>
    [/PHP]
    Lo so il problema sta che c'è una stringa


  • User Attivo

    @danny1975 said:

    Ok con un po di pazienza sono riuscito a settare il php.ini
    adesso mi riconosce la session e mi da Ciao 1,
    1 sarebbe l'id del loggato, adesso devo dargli un nome ed ho fatto una query, ma non va pwerchè non so dove è l'errore con le virgolette, vi posto la query
    [php]
    <table border="1" cellspacing="0" cellpadding="0" bordercolor="#00FF00" height="100">
    <tr>
    <td><?php
    $login=$_SESSION['login'];
    $query_1=mysql_query("SELECT nickname FROM tab_registrazione WHERE id_giocatore=$login")
    or die("errore nella query;".mysql_error());
    $result=mysql_num_rows($query_1);
    if(isset($_SESSION['login']))
    {
    echo"Ciao" . $result['nickname'];
    }

    else{
    echo"devi effettuare prima il login";}?></td>
    </tr>
    </table>
    [/php]
    Lo so il problema sta che c'è una stringa

    scusatemi tanto, non è mysql_num_rows
    ma mysql_fetch_array, infatti il risultato torna, potreste dirmi se la query professionalmente è giusta? grazie da danny per l'aiuto