Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Script in php per accesso ad area riservata senza database

    Ho una scarsissima conoscenza del linguaggio PHP. Gestisco il sito della mia scuola e ho inserito uno script (formato da 4 file) per gestire l'accesso ad una area risevata e tutto funziona correttamente. Ho provato a inserire altri 4 file come i precedenti per gestire un'altra area riservata e tutto funziona. Ma c'è un problema!! Dopo che si entra in un'area riservata con relativa username e password, si può uscire dall'area riservata e si può entrare nell'altra senza bisogno di inserire alcuna password. In questo modo un utente abilitato ad entrare in un'area riservata, può se vuole entrare in tutte le altre aree riservate che non sono di sua competenza. E' possibile, apportando qualche modifica ai file di cui sopra o aggiungendone qualche altro, risolvere questo problema?
    Ciao a tutti!!!

    Allego lo script:

    1° file

    <?php
    if(ereg("^[a-zA-Z0-9]{6,12}$", $HTTP_POST_VARS['utente'])) {$utente = $HTTP_POST_VARS['utente'];} else {$utente="";};
    if(ereg("^[a-zA-Z0-9]{6,12}$", $HTTP_POST_VARS['password'])) {$pwd = $HTTP_POST_VARS['password'];} else {$pwd="";};
    if (
    ($utente == "topolino") && (sha1($pwd)=="mammifero" )
    )
    {
    /* login valido - viene registrata la variabile di sessione*/
    session_start();
    header("Cache-control: private");
    $_SESSION["controllo"] = "si";
    header("Location: index.php");
    } else
    /* login non valido - reindirizzamento alla pagina di login */
    {header("Location: login.php");
    die();}
    ?>

    2° file
    <?php
    session_start();
    header("Cache-control: private");
    if ($_SESSION["controllo"] == "si")
    { /* è stato effettuato il login */ }
    else
    {/* login non valido - reindirizzamento alla pagina di login con messaggio di errore */
    header("Location: login.php");
    die();}
    ?>

    3° file

    <?php include('controlla.php') ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
    <html xml:lang="it" lang="it" xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
    <title>Pagina riservata</title>
    </head>
    <body>


    Testo della pagina riservata</p>
    </body>
    </html>

    4° file

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
    <html xml:lang="it" lang="it" xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    <head>
    <title>Accesso all'area riservata</title>
    </head>
    <body>
    <h1>Accesso all'area riservata</h1>
    <?php if ( basename($HTTP_REFERER) == "login.php") echo "

    Utente e/o password sono errati</p>"; ?>
    <form action="auth.php" method="post">


    <label for="utente">Nome utente</label>
    <input type="text" name="utente" id="utente" maxlength="12" /></p>


    <label for="password">Password</label>
    <input type="password" name="password" id="password" maxlength="12" /></p>


    <input type="submit" name="invia" value="Invia" /></p>
    </form>
    </body>
    </html>

  2. #2
    cambia il controllo sulla variabile di sessione da una zona ad un'altra, ovvero in una chiami la variabile di sessione controllo, nell'altro file prova a chiamarla controllo_b

  3. #3
    Ciao,

    sto provando ad usare il tuo codice per fare la stessa cosa, ma, anche io non capisco molto di php

    mi dici i nomi dei singoli file di cui hai postato il codice?
    perchè non mi funzione, può essere che sbaglio ad assegnare i nomi ai 4 file?

    inolte è tutto lì il codice o c'è altro??

    non mi funziona, aiutoooo!!! :-(

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 © 2026 vBulletin Solutions, Inc. All rights reserved.