• User

    problema SESSION aperta con PHP password

    1. se un utente effettua il login corretto, ed esce senza fare LOGOUT, la sessione dell'utente stesso rimane aperta, quindi se rientra nella pagina login.php dovrebbe rispedirlo automaticamente nella sua pagina privata.
      Tutto questo, prima che Commentavo tutti gli Header "FUNZIONAVA":?,ora non più!!:x

    Quindi ti chiedo nuovamente di aiutarmi a correggere questo script??

    In attesa di un riscontro,
    ti ringrazio anticipatamente per la collaborazione,

    login.php
    **[PHP]
    <?php
    $login_admin = "_private/admin_panel.php";
    $login_pippo = "_private/pippo.php";
    $login_pepo = "_private/pepo.php";

    session_start();
    if (isset($_COOKIE[session_name()]))
    setcookie(session_name(), '', time() - 90000);

    #CODICE PER LA VISUALIZZAZIONE DELL'ID DI SESSIONE*******
    if($utente == "admin"){
    $id_utente = "Amministratore";
    header("Location: $login_admin");
    }
    elseif($utente == "salvatore"){
    $id_utente = "Sepe Salvatore";
    header("Location: $login_admin");
    }
    elseif($utente == "pippo"){
    $id_utente = "D'Esposito Pippo";
    header("Location: $login_pippo");
    }
    elseif($utente == "pepo"){
    $id_utente = "Russo Pepo";
    header("Location: $login_pepo");
    }else{
    $id_utente = "VUOTO";
    }
    #********************************************************

    #VISUALIZZA MESSAGGIO ID******************
    echo "<br>\n";
    echo "L'ID di sessione è: ";
    L'ID DI SESSIONE*******
    echo $id_utente;
    echo "<br>\n";
    #*****************************************
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>** Login-Page **</title>
    <script type="text/javascript" language="javascript" src="validation.js"></script>
    </head>
    <body onLoad="document.modulo.utente.focus();">
    <?
    function check($user,$password){
    include("private/utenti.php");
    foreach($utenti as $user
    => $password_){
    if (($user==$user_) AND ($password==$password_)) {
    return true;
    }
    }
    return false;
    }
    function form_login(){
    ?>
    <form name="modulo" method="post" onSubmit="return Controlla(this);">
    <div style="text-align:center;margin-left:auto;margin-right:auto;">
    <font color="#FF0000"><b>NON RISULTI LOGGATO!!! </b></font> <br /> Utente:<br>
    <input type="text" name="utente" size="20" maxlength="255"><br> Password:<br>
    <input type="password" name="password" size="20" maxlength="255"><br><br>
    <input type="submit" value=" Entra ">
    </div>
    </form>
    <?
    }

    if(isset($_POST["utente"])){
    if (check($_POST["utente"],$_POST["password"])){
    $_SESSION["utente"] = $_POST["utente"];
    $_SESSION["password"] = $_POST["password"];
    if($_POST["utente"] == "admin" || $_POST["utente"] == "salvatore"){include("_private/admin_panel.php");
    }
    if($_POST["utente"] == "pippo"){include("_private/pippo.php");
    }
    if($_POST["utente"] == "pepo"){include("_private/pepo.php");
    }
    }else{
    form_login();
    }
    }else{
    form_login();
    }

    if($_SESSION["utente"] != $_POST["utente"]){
    ?>
    <script type="text/javascript">
    var alertMsg = "Il form contiene uno o più errori:\n ";

    alert(alertMsg += " -> Il campo User ID o la Password non sono corretti.\n")
    </script>
    <?
    }
    ?>

    </body>
    </html>
    [/PHP]**


    utenti.php
    [PHP]
    <?
    /* Per aggiungere un nuovo utente scrivere:
    $utenti["nome_utente"] = "password";
    Ad esempio, se si vuole aggiungere l'utente mario con password rossi,
    scrivere: $utenti["mario"] = "rossi";
    */
    $utenti["admin"] = "admin";
    $utenti["salvatore"] = "sepe";
    $utenti["pippo"] = "pippo";
    $utenti["pepo"] = "pepo";
    ?>
    [/PHP]


    **validation.js
    **
    [PHP]
    function Controlla(){
    var utente = document.modulo.utente.value;
    var password = document.modulo.password.value;
    var alertMsg = "Il form contiene uno o più errori:\n";
    Errore="";
    if(document.getElementById('utente').value==""){document.modulo.utente.value = ''; document.modulo.utente.focus() }
    if(document.getElementById('password').value==""){document.modulo.password.value = ''; document.modulo.password.focus() }
    if(document.getElementById('utente').value==""){Errore=alertMsg += " -> Il campo User ID è vuoto, oppure non è corretto.\n Non hai il permesso per entrare in quest'area!\n";
    document.modulo.utente.value = '';
    document.modulo.utente.focus()
    }

    if(document.getElementById('password').value==""){Errore=alertMsg += " -> Il campo Password è vuoto, oppure non è corretto.\n      Non hai il permesso per entrare in quest'area!\n"; 
                                               document.modulo.password.value = ''; 
                                               document.modulo.password.focus() 
                                              } 
    
    if(Errore!=""){ 
       alert(alertMsg);  
    return false; 
    } else { 
       return true; 
           } 
    

    }
    [/PHP]


    **Spiego il problema:

    1° problema: il messaggio ALERT non lo lancia se il campo password è diverso da admin, sepe, pepo e pippo.

    2° problema: il messaggio ALERT lo lancia solo se il campo utente è diverso da admin, salvatore, pepo e pippo.

    Buongiorno a tutti,
    vi chiedo la cortesia di aiutarmi con il codice sopra indicato...

    Grazie anticipatamente per la collaborazione,
    saluti,


  • User Attivo

    A questo punto la domanda nasce spontanea e la risposta è evidente.

    Usi un database su cui confronti i dati inseriti prima che l'utente sia loggato?

    Evidentemente NO. Hai nome utente e password salvati in file e quindi controlli gli utenti stessi staticamente.

    Posso dirti, sicuramente, che non è un buon metodo per far loggare gli utenti. Anzi è un metodo poco sicuro.

    Ti consiglio vivamente di usare un database.

    Magari un altro giorno ti faccio un esempio su come loggarsi confrontando i dati, inseriti dal client con quelli nel database.

    A presto


  • User

    Ciao Mikslap,
    ti ringrazio per il suggerimento, ma purtroppo non so utilizzare i DataBase.
    Quindi mi farebbe molto piacere se mi faresti vedere qualche esempio su come loggarsi confrontando i dati, inseriti dal client con quelli nel database.

    In attesa,
    ti ringrazio anticipatamente,
    saluti,