• User Attivo

    Problemi con il login

    Ciao, ragazzi.

    Sto realizzando uno script per il login utente.

    Quello che ho fatto funziona correttamente. Il login viene effettuato, ed il form di login si trasforma correttamente in pannello utente.

    Il problema è però che se mi sposto su un'altra pagina, il login si disattiva (nel senso che l'utente non risulta più loggato!).

    Posto il codice.

    Questo è quello relativo al form di login, posto sulla colonna destra:

    
    <?
    $query = "SELECT COUNT(*) FROM clienti WHERE confirm='1'";
    $result = mysql_query($query, $db); 
    $utenti_total=mysql_result($result,0);
    ?>
     
    ... ometto ....
     
    <?
    if(!$HTTP_SESSION_VARS["session_utente_registrato"]){
    ?>
    <form action='../index.php' method='post' name='form_reg'>
    <input type='hidden' name='action' value='login' />
         <div class="optiondx1"><img src="link" width="150" height="18" alt="area riservata" /></div>
         <div>&nbsp;</div>
         <div class="optiondx2">e-mail:&nbsp;<input name="email" type="text" class="box" size="11" style=" font-size:10px; font-weight:bold" /></div>
         <div class="optiondx2">passw:&nbsp;<input name="passwd" type="password" class="box" size="11" style=" font-size:10px; font-weight:bold" /></div>
         <div class="optiondx2"><input type='image' src='httplink' /></div>
         <div class="optiondx1"><img src="link" width="150" height="3" alt="" /></div>
         <div class="optiondx1">&nbsp;</div>
    </form> 
    <? } else {      $datestamp = date("d.m.Y", mktime()); 
                $t_arr = explode("." , $datestamp); 
                 $current_day = $t_arr[0]; 
                $current_month = $t_arr[1]; 
                $current_year = $t_arr[2]; 
           $today = date("Y-m-d H:i:s");
           $query2 = "update clienti set logged='".$today."' where email='".$HTTP_SESSION_VARS["session_utente_registrato"]."'";
           mysql_query($query2,$db);
    ?>
     
    **quì il pannello utente visibile dopo il login**
    
    

    Questo invece è quello della pagina index.php, lo script esecutivo:

    
    <?
    include("admin/database_config/config.php");
    session_start();
    if($action == "login" and $email and $passwd){
        $query = "select email, ragione_sociale from clienti where email='$email' and passwd='$passwd' limit 0,1";
     $result=mysql_query($query, $db); 
     while ($row = mysql_fetch_array($result)) {
      $found = 1;
      session_start();
          $HTTP_SESSION_VARS["session_utente_registrato"] = $email;
          header("Location: url assoluto alla index.php");  
     }
     if(!$found){
      echo"<script language='Javascript'>alert('Attenzione: login o password non validi');</script>";
     }
    }
    ?>
    
    

    Riuscite a spiegarmi perchè non va?


  • Super User

    Hey Kru,
    hai verificato di aver messo un "session_start();" all'inizio di ogni pagina? 😉
    Ciao!


  • User Attivo

    Ciao, probid 😉 Felice di rileggerti.

    Intanto, ti preciso che la pagina è una sola :). Solo la home, per il momento. Sulla barra del menù, ho dei links (chi siamo, servizi, ecc) ma dal momento che le pagine ancora non esistono, sono linkati tutti alla home.
    Cliccando su uno di quelli, si ricarica la home senza l'utente loggato.

    Quanto alla session_start(), sì, è presente, sulla home e sulla pagina right.php (la colonna destra), ma non è proprio all'inizio.
    Prima c'è il codice di validazione XHTML. E' un problema?
    Inoltre, inserisco sulla home anche altre 2 pagine: Footer.php e la colonna sinistra. Anche in queste devo mettere session_start(); ?


  • User Attivo

    Nessuno?

    Fra l'altro, mi sembra che lo stesso script funzioni bene su un altro dominio di mi9a proprietà, ma con hosting diverso.

    Il problema potrebbe dipendere da qualche settaggio del server?