Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    147

    [php+mysql]login area protetta ma senza inganni

    Ho creato un form di login con sessioni che una volta loggato carica la pagina dell'utente
    codice:
    <?php  
    $utente=$login->get_username(); 
    header("location:$utente.php");  
    ?>
    fin qui tutto ok.
    Però se l'utente tizio che effettua il login e carica la sua pagina tizio.php può (se è scaltro) accedere anche alla pagina caio digitando .../caio.php perchè il controllo avviene sulla sessione e non sull'utente.

    Avete qualche info da suggerirmi per ovviare a questo inghippo?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Ma perchè hai fatto in quel modo ? non era più semplice fare una generica pagina utente.php e cambiarne il contenuto in base all'utente loggato?

    L'unico modo adesso è quello di controllare nella pagina caio.php se l'utente è caio
    Codice PHP:
    // caio.php
    if($_SESSION['username'] != "caio")    // Se hai registrato l'utente in session
        
    header("..."); //redirect su una pagina di accesso non consentito o sulla pagina dell' utente 
    In alternativa potresti fare un controllo generico se e soltanto se lo username è lo stesso del nome della pagina(username caio => caio.php). Come, però, puoi notare questo lo puoi fare solo sulla pagina personale dell'utente

    Codice PHP:
    $file $_SERVER["SCRIPT_NAME"];
    $break explode('/'$file);
    $pfile $break[count($break) - 1]; 

    if(
    $_SESSION['username'].".php" != $pfile)    // Se hai registrato l'utente in session
        
    header("..."); 
    Resta il fatto che il tuo è un approccio un po' strano ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    147
    Originariamente inviato da boots
    Ma perchè hai fatto in quel modo ? non era più semplice fare una generica pagina utente.php e cambiarne il contenuto in base all'utente loggato?
    Eh hai ragione, però non sono capace di fare un controllo e cambiare il contenuto in base all'utente loggato.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    147
    Ho due utenti, pluto e admin, e voglio utilizzare il tuo primo script

    codice:
    // admin.php 
    if($_SESSION['username'] != "admin")    
    // Se hai registrato l'utente in session     
    header("location:accesso_negato.php"); //redirect su una pagina di accesso non consentito o sulla pagina dell' utente
    ma nn so come registrare l'utente in $_SESSION

    P.S. sono alle prime armi...

  5. #5
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Originariamente inviato da lume70
    Ho creato un form di login con sessioni che una volta loggato carica la pagina dell'utente
    codice:
    <?php  
    $utente=$login->get_username(); 
    header("location:$utente.php");  
    ?>
    ...
    Grazie
    Non hai detto che hai usato la sessione?

    Comunque,nella pagina di login, dopo il post fai la query sul db per vedere se l'utente è registrato, giusto? quindi farai qualcosa del tipo
    Codice PHP:
    session_start();
    if(isset(
    $_POST['username'] && isset($_POST['password'])){
        
    $uname $_POST['username'];
        
    $pwd $_POST['password'];
        
    $query "SELECT * FROM users WHERE username='$uname' AND password='$pwd' ";
        
    $res mysql_query($query$conn);
        if(
    $row mysql_fetch_array($res)){
             
    // Login ok
             
    $_SESSION['user'] = array();
             
    $_SESSION['user']['username'] = $row['username'];
             
    // aggiungi tutti i campi che ritieni necessario ricordare in  sessione
        
    }else{
             
    // Login fallito
        
    }



Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.