php sessione per singolo utente

  • Creatore Discussione Creatore Discussione zighy
  • Data di inizio Data di inizio

zighy

Utente Attivo
20 Gen 2012
96
0
0
Ciao:faraone:,
non è molto che sto usando le sessioni e non credo di averle ancora capite proprio a pieno.Ho un form login che controlla username e password e se sono esatte mi apre una sessione. Ora mi chiedevo se ,e credo di si, sia possibile apripre una sessione diversa per ogni utente in modo da indirizzare in base a username e password sulle pagine che voglio. A rileggere mi sembra un po contorta come richiesta ma gli script renderanno meglio l'idea.

PHP:
<?php

    session_start();

    function loginform(){
    
        echo "<form action='' method='POST'>
        Username: <input type='text' name='username'>
        Password: <input type='text' name='password'>
        <input type='submit' name='login' value='Login'>
        </form>
        
        ";
    }
    
    function logoutform(){
    
        echo "<form action='' method='POST'>
        
        <input type='submit' name='Invia' value='Logout'>
        </form>
        
        ";
    }
    
   
    function login($username, $password){
    $pass = md5($password);
    $con = mysql_connect('localhost', 'root', '****') or die (mysql_error());
    mysql_select_db('my_fantacalciojarno', $con) or die (mysql_error());
    $result = mysql_query(" SELECT * FROM user WHERE username='$username' AND password='$pass' ") or die (mysql_error);
    
    $count = mysql_num_rows($result);
    
    if($count==1){
    $_SESSION['login']=$username;
    echo "Login avvenuto";
    }
    else{
    echo "Login errato. ";
    }
    }
    
    function logout(){
    session_destroy();
    }

    if(isset($_POST['login'])){
        echo "sei loggato.";
            logoutform();
    }
    else{
    echo "fai il login" ;     
            loginform();
    }
    
    if($_POST['login']){
    echo "login in corso..";
    
            login($_POST['username'], $_POST['password']);
    }    
    elseif($_POST['logout']){
    echo "Stai facendo il logout ";
            logout();
    }
        
?>

Pagina riservata:

PHP:
<?php

session_start();

if (!isset($_SESSION['login'])){
 exit( "Accesso negato. Devi fare il <a href='login.php'>login<a>.");
}

echo "pagina riservata";

?>
 
Non hai bisogno di aprire nuove sessioni, ma potresti inserire nella tabella del database un campo "pagina", estrarre il dato (tipo pagina.html o pagina.php) e poi cambiare la pagina alla quale si deve andare al momento del login corretto inserendo una variabile nel link. Spero di essere stato chiaro ma se hai bisogno di chiarimenti dimmi pure. :byebye:
 
Nel database c è anche un id, in parte in previsione di questa cosa, è fisso, considerato che la cosa che voglio fare ha un numero esiguo di utenti.
Non ho capito molto bene quello che intendi ma io stavo smanettando si st' id.. ma se mi chiarisci il tuo concetto.. potrebbe essere un idea migliore
 
Nel database c è anche un id, in parte in previsione di questa cosa, è fisso, considerato che la cosa che voglio fare ha un numero esiguo di utenti.
Non ho capito molto bene quello che intendi ma io stavo smanettando si st' id.. ma se mi chiarisci il tuo concetto.. potrebbe essere un idea migliore

Non centra l'id. Andiamo per passi: crea un campo nella tabella del database chiamato "pagina".
 
ok...varchar..12

ti ringrazio..i passi pero'anche un po piu' lunghi vanno bene :moira:
 
ok...varchar..12

ti ringrazio..i passi pero'anche un po piu' lunghi vanno bene :moira:

Ora inserisci in ogni utente, in questo campo, la pagina che vuoi che visitino quando accedono.
Poi modifica questa parte di codice:
PHP:
    function login($username, $password){ 
    $pass = md5($password); 
    $con = mysql_connect('localhost', 'root', '****') or die (mysql_error()); 
    mysql_select_db('my_fantacalciojarno', $con) or die (mysql_error()); 
    $result = mysql_query(" SELECT * FROM user WHERE username='$username' AND password='$pass' ") or die (mysql_error); 
     
    $count = mysql_num_rows($result); 
     
    if($count==1){ 
    $_SESSION['login']=$username; 
    echo "Login avvenuto"; 
    } 
    else{ 
    echo "Login errato. "; 
    } 
    }

in questa:
PHP:
function login($username, $password){ 
    $pass = md5($password); 
    $con = mysql_connect('localhost', 'root', '****') or die (mysql_error()); 
    mysql_select_db('my_fantacalciojarno', $con) or die (mysql_error()); 
    $result = mysql_query(" SELECT * FROM user WHERE username='$username' AND password='$pass' ") or die (mysql_error); 
    $result_array = mysql_fetch_array($result);
    $count = mysql_num_rows($result); 
     
    if($count==1){ 
    $_SESSION['login']=$username; 
    echo "Login avvenuto"; 
    echo"<script type='text/javascript'>";
    echo "setTimeout(\"location.href='{$result_array['pagina']}';\", 1000);";  
    echo"</script>";
    } 
    else{ 
    echo "Login errato. "; 
    } 
    }

Così dovrebbe andare.
Ciao,
hackersatifal. :byebye:
 
Ultima modifica:
Ora inserisci in ogni utente, in questo campo, la pagina che vuoi che visitino quando accedono.
Poi modifica questa parte di codice:
PHP:
    function login($username, $password){ 
    $pass = md5($password); 
    $con = mysql_connect('localhost', 'root', '****') or die (mysql_error()); 
    mysql_select_db('my_fantacalciojarno', $con) or die (mysql_error()); 
    $result = mysql_query(" SELECT * FROM user WHERE username='$username' AND password='$pass' ") or die (mysql_error); 
     
    $count = mysql_num_rows($result); 
     
    if($count==1){ 
    $_SESSION['login']=$username; 
    echo "Login avvenuto"; 
    } 
    else{ 
    echo "Login errato. "; 
    } 
    }

in questa:
PHP:
function login($username, $password){ 
    $pass = md5($password); 
    $con = mysql_connect('localhost', 'root', '****') or die (mysql_error()); 
    mysql_select_db('my_fantacalciojarno', $con) or die (mysql_error()); 
    $result = mysql_query(" SELECT * FROM user WHERE username='$username' AND password='$pass' ") or die (mysql_error); 
    $result_array = mysql_fetch_array($result);
    $count = mysql_num_rows($result); 
     
    if($count==1){ 
    $_SESSION['login']=$username; 
    echo "Login avvenuto"; 
    echo"<script type='text/javascript'>";
    echo "setTimeout(\"location.href='{$result_array['pagina']}';\", 1000);";  
    echo"</script>";
    } 
    else{ 
    echo "Login errato. "; 
    } 
    }

Così dovrebbe andare.
Ciao,
hackersatifal. :byebye:

Ho modificato ora il messaggio guardalo: confusione fra thread. :D
 
Ti ringrazio, ho dato un occhiata adesso e anche se nn ho provato il codice ho capito come funziona. Domani lo provo solo che gia' a darci un occhio ho idea che ci sia un intoppo. La sessione che voglio iniziare è su piu' pagine non su una sola pagina singola, cioè ogni utente dovrebbe aprire una sessione per cui possa visualizzare le sue 3/4 paginette.. nel modo che mi hai descritto tu credo valga per una singola pagina...intanto buonanotte!!!
 

Discussioni simili