Visualizzazione risultati 1 fino 5 di 5

Discussione: Controllare privilegi utente.

  1. #1
    Guest

    Predefinito Controllare privilegi utente.

    Ciao a tutti.

    Io ho una schermata di login con questo codice:

    Codice HTML:
    <HTML>
    <HEAD>
    <TITLE>prova</TITLE>
    <style type="text/css">
    A:link {text-decoration: none; color: red;}
    A:hover {text-decoration: underline; color: gold;}
    </style>
    </HEAD>
    <BODY>
    <table border="0" cellspacing="1" cellpadding="0" width="230" align="left" bgcolor="#cccccc"><tbody>
    <tr><form action="controlla_login.php" method="post"> <input name="phpMyAdmin" type="hidden" value="V0N0db6Fl62QWr6eBkly75xAGn3" /><td>
    <table border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#FFFFFF"><tbody>
    <tr>
    <td width="78">Username</td>
    <td width="6">:</td>
    <td width="294"><input id="myusername" name="myusername" type="text" /></td>
    </tr>
    <tr>
    <td>Password</td>
    <td>:</td>
    <td><input id="mypassword" name="mypassword" type="password" /></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td><input name="login" type="submit" value="Login" /></td>
    <strong>Login Membri</strong>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td><a href="password_dimenticata.php">Password dimenticata</a></td>
    </tr>
    </tbody></table>
    </td>
    </form></tr>
    </tbody></table> 
    </BODY>
    </HTML>
    mentre controlla_login.php ha questo codice:

    Codice PHP:
    <?php

    $host
    ="localhost"; // Hostname

    $username="archivionegozio1"; // Mysql username

    $password=""; // Mysql password

    $db_name="my_archivionegozio1"; //Nome del Database

    $tbl_name="utenti"; // Nome della Tabella

    // Procedimento per connettersi al Database

    mysql_connect("$host", "$username", "$password")or die("Connessione Fallita.");
    mysql_select_db("$db_name")or die("Database non trovato.");


    $username = addslashes($_POST['myusername']);
    $pass = addslashes($_POST['mypassword']);

    //qui controlli se l'utente ha scritto nel campo se nn sai cm si fa chiedimi

    $sql = "SELECT * FROM utenti WHERE username = '".$username."' AND password = '".$pass."'";
    $query = mysql_query($sql) or die("errore nella query: ".mysql_error());

    if(
    mysql_num_rows($query) == 1) {

    $riga = mysql_fetch_array($query);
    $_SESSION['username'] = $riga['Username'];
    $_SESSION['pass'] = $riga['Password'];

    }else{
    echo
    "Username o password incoretti";
    }
    ?>
    Vorrei fare in modo che la pagina controlli anche i privilegi della persona loggata:

    ho fatto una colonna per ogni registrazione con i valori 0 (utente) e 1 (amministratore).

    Questa colonna si chiama "privilegi", nella tabella "utenti".

    Come faccio a registrare insieme a id e password, u privilegi in una sessione?

    Grazie!

    PS: Se i privilegi sono uguali a 0, allora va a utenti.php mentre se è a 1 va a admin.php altrimenti va a login.php.

    Grazie a tutti!

  2. #2
    Guest

    Predefinito

    Ti salvi un'altra variabile di sessione che contiene il grado:
    Codice PHP:
    <?php

    $host
    ="localhost"; // Hostname

    $username="archivionegozio1"; // Mysql username

    $password=""; // Mysql password

    $db_name="my_archivionegozio1"; //Nome del Database

    $tbl_name="utenti"; // Nome della Tabella

    // Procedimento per connettersi al Database

    mysql_connect("$host", "$username", "$password")or die("Connessione Fallita.");
    mysql_select_db("$db_name")or die("Database non trovato.");


    $username = addslashes($_POST['myusername']);
    $pass = addslashes($_POST['mypassword']);

    //qui controlli se l'utente ha scritto nel campo se nn sai cm si fa chiedimi

    $sql = "SELECT * FROM utenti WHERE username = '".$username."' AND password = '".$pass."'";
    $query = mysql_query($sql) or die("errore nella query: ".mysql_error());

    if(
    mysql_num_rows($query) == 1) {

    $riga = mysql_fetch_array($query);
    $_SESSION['privilegi'] = $riga['privilegi']; // qui hai il grado dell'utente loggato
    $_SESSION['username'] = $riga['Username']; // qui l'username
    $_SESSION['pass'] = $riga['Password']; // qui la password

    }else{
    echo
    "Username o password incoretti";
    }
    ?>
    E se vuoi che si possa accedere ad una pagina solo se il grado è 1 cioè admin:
    Codice PHP:
    <?php
    if($_SESSION['privilegi'] != 1) {
    die(
    "Solo l'amministratore può accedere a questa pagina");
    }
    ?>
    <!-- Pagina HTML -->
    Ultima modifica di nokiagames : 20-05-2009 alle ore 21.45.57

  3. #3
    Guest

    Predefinito

    Non funziona... dice sempre che la pagina è visualizzabile solo dall'amministratore anche se il valore privilegi è 0 o 1.
    Ultima modifica di programmarealpc : 22-05-2009 alle ore 14.44.01

  4. #4
    Guest

    Predefinito

    Che stupido che sono :

    Codice PHP:
    <?php
    session_start
    (); // inizio della sessione
    if($_SESSION['privilegi'] != 1) {
    die(
    "Solo l'amministratore può accedere a questa pagina");
    }
    ?>
    <!-- Pagina HTML -->
    Stessa cosa per controlla_login.php

    Codice PHP:
    <?php
    session_start
    (); // inizio della sessione

    $host="localhost"; // Hostname

    $username="archivionegozio1"; // Mysql username

    $password=""; // Mysql password

    $db_name="my_archivionegozio1"; //Nome del Database

    $tbl_name="utenti"; // Nome della Tabella

    // Procedimento per connettersi al Database

    mysql_connect("$host", "$username", "$password")or die("Connessione Fallita.");
    mysql_select_db("$db_name")or die("Database non trovato.");


    $username = addslashes($_POST['myusername']);
    $pass = addslashes($_POST['mypassword']);

    //qui controlli se l'utente ha scritto nel campo se nn sai cm si fa chiedimi

    $sql = "SELECT * FROM utenti WHERE username = '".$username."' AND password = '".$pass."'";
    $query = mysql_query($sql) or die("errore nella query: ".mysql_error());

    if(
    mysql_num_rows($query) == 1) {

    $riga = mysql_fetch_array($query);
    $_SESSION['privilegi'] = $riga['privilegi']; // qui hai il grado dell'utente loggato
    $_SESSION['username'] = $riga['Username']; // qui l'username
    $_SESSION['pass'] = $riga['Password']; // qui la password

    }else{
    echo
    "Username o password incoretti";
    }
    ?>

  5. #5
    Guest

    Predefinito

    Funziona alla perfezione!

    Grazie mille!!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •