sessioni personali

zighy

Utente Attivo
20 Gen 2012
96
0
0
Ho una pagina di login che apre una sessione, se i dati sono esatti viene richiamata una pagina specifica. Lo script è questo:

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);  
    $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. ";  
    }  
    }  
     
    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(); 
    } 
         
?>


Ogni utente loggato adesso è nella sua bella paginetta ma volendo avrebbe il ''permesso'' di visitare anche le pagine riservate di altri utenti.
Vorrei fare in modo che questo non accada, magari dando il nome utente alla sessione ma ci sto uscendo pazzo.
Posto anche il codice di controllo sessione:

PHP:
<?php 

session_start(); 

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

?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
il nome della pagina lo hai nel db?
potresti mettere un controllo a inizio pagina dove verifichi che nella tabella la pagina sia associata alla username
Codice:
SELECT username FROM utenti WHERE pagina = 'pagina.php' && username = $_SESSION['username']
oppure metti il nome della pagina in sessione insieme alla user e poi controlli
 

zighy

Utente Attivo
20 Gen 2012
96
0
0
Si la pagina che richiamo è nel database, credo sarebbe meglio mettere il nome della pagina in sessione insieme alla user c ho smanettato un sacco ma c è sempre qualcosa che non va.. quindi ho chiesto aiuto :confused:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
cosa non va? non riesci a metterla in sessione o non riesci poi a verificarla?
 

zighy

Utente Attivo
20 Gen 2012
96
0
0
A metterla in sessione..intanto..le sessioni sono quanto di meno ho capito nel php
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
nello stesso modo con cui hai messo in sessione l'username
PHP:
if($count==1){  
    $_SESSION['login']= $username;  
    $_SESSION['pagina']= $result_array['pagina'];
 

zighy

Utente Attivo
20 Gen 2012
96
0
0
Basta?Cioè, nella query la "pagina" non la dichiaro tanto c è *. Ma anche il resto del codice dopo aver aperto la sessione rimane invariato o questa sessione pagina va anche su qualche altro rigo??

La verifica la farei cosi:

PHP:
<?php 

session_start(); 

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

?>

Ti ringrazio per l'aiuto
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dovrebbe bastare cosi, cmq per vedere cosa hai in sessione ti consiglio di mettere nella pagina un bel var_dump()
PHP:
var_dump($_SESSION);
dal risultato a video ti puoi rendere conto se in sessione c'è esattamente quello che ti serve
 

zighy

Utente Attivo
20 Gen 2012
96
0
0
Tutto è come prima, entro e attivo la sessione ma con i permessi di un utente posso tranquillamente vedere anche le pagine degli altri.
 
Discussioni simili
Autore Titolo Forum Risposte Data
keyascii File temporanei Sessioni PHP 6
T PROBLEMA CON SESSIONI PHP 3
ilsuomillennio Sessioni PHP 3
maxnegri Contare sessioni aperte e creare condizione PHP 1
AC1 Sessioni php PHP 16
S [PHP] problemi con le sessioni PHP 3
B [PHP] Reload pagina e sessioni PHP 3
A Php e sessioni PHP 3
J sessioni in PHP PHP 3
T gestione livelli sessioni php msqli PHP 1
M Problema MySQL e sessioni MySQL 0
A form su più pagine e sessioni PHP 8
V Le sessioni: ho dei dubbi sul posizionamento PHP 6
A sessioni sicure? PHP 5
G Controllo scadenza sessioni PHP 2
M Sessioni??? PHP 4
C Sessioni in php (urgente) PHP 4
R Efficenza sessioni con proxy PHP 0
baobabdesign Problema scrittura sessioni PHP 0
Shyson Non mantiene sessioni PHP 0
L segnalare l'utilizzo delle sessioni come accade per i cookie PHP 0
D Login con sessioni per 2 pagine diverse PHP 2
L problema array con le sessioni PHP 1
D Sessioni e variabili PHP 4
R problema con le sessioni PHP 2
L Sessioni rank [#PHP] PHP 3
R Sessioni, cookies e token di autenticazione PHP 0
E [risolto] win 8.1 + IE11 le sessioni PHP non fuonzionano correttamente PHP 7
A Sessioni php PHP 0
otto9due [risolto] Problema sessioni php e login PHP 5
B Sessioni PHP 10
H [risolto] Uso delle SESSIONI PHP 2
F Sessioni PHP 1
A conservazione sessioni PHP 2
S Stampare una variabile in ogni pagina usando le sessioni PHP 5
Z Registrazione e sessioni PHP 8
asevenx problema con le sessioni PHP 6
S Un piccolo aiuto su cookie e sessioni PHP 1
S Problema con sessioni PHP 4
I Problema con le sessioni PHP 2
Emix Problema sessioni... PHP 17
Z Sessioni - Database PHP 6
P Problema con l'uso delle sessioni... PHP 4
E Gestione Sessioni sui file anziche nel database - Come fare? Joomla 0
P Problema con sessioni e aggiornamento profilo PHP 21
redevilduil Php problema nelle sessioni PHP 6
P Ho riunito le prove con le sessioni, ma l'update non va PHP 20
Shyson Non mantiene le sessioni PHP 7
D [JSP] Gestire eccezioni relative alla scadenza delle sessioni Java 0
M $_SESSION['sessione'][1] possibile? Sessioni con indice. PHP 8

Discussioni simili