Originariamente inviato da coteaz
ok va bene, vada per una sola query, e per quanto riguarda la sicurezza cosa consigliate?
un paio di annotazioni... se i dati che aspetti ti devono arrivare per POST, usa $_POST e non $_REQUEST perche' $_REQUEST prende tutto per buono (post/get/cookies) ....
codice:
$password = md5($_POST['password']);
Quando verifichi l'utente non estrarre la password, ma verificala direttamente nel db.

select id, privilegi from tabella where utente = '$utente' and password = '$password'

Non usare per verificare il login isset($_SESSION['login'] perche' lascia il tempo che trova. ti dara' true anche se $_SESSION['login'] fosse vuoto. Usa empty() e ci starebbe pure bene un riferimento del valore id, ed anche un codice per i privilegi assegnati.

per esempio parti con l'id dal valore 10000 e per i privilegi assegna: admin = 2222, user = 3333

codice:
<?php
session_start();

if(!empty($_SESSION['id']) AND $_SESSION['id']  >= 10000 ) {

     if(!empty($_SESSION['privilegi']) and $_SESSION['privilegi'] == 2222 ) {

         pagina admin
   
               elseif($_SESSION['privilegi'] == 3333 ) {
 
                 pagina user

                 }     else    { accesso negato, torna al login   }

} else { accesso negato, torna al login   }
chiaro che e' un semplice esempio, si puo' fare di piu' e di meglio. Ma la sostanza e' questa.