Advertisement
Guest User

Untitled

a guest
Jun 15th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.89 KB | None | 0 0
  1. // ####
  2. // controlla se è stato premuto il bottone Logout
  3. if (isset($_POST['logout_but'])) {
  4.     // in caso di risposta affermativa, richiama la funzione per effettuare il logout
  5.     logout();
  6.     header("location: $_SERVER[PHP_SELF]");
  7. }
  8.  
  9.  
  10.  
  11. if ($_POST) {
  12.     login();
  13. } else {
  14.     show_form();
  15. }
  16.  
  17.  
  18. // funzione che mostra il form, sia se si è loggati che non ##ASPETTO DA RIVEDERE
  19. function show_form() {
  20.     if (isset($_GET['msg'])) {
  21.         echo "<b>".htmlentities($_GET['msg'])."</b><br />";
  22.     }
  23.    
  24.     // controlla se il valore status è impostato su 'done'
  25.     if ($_GET['status'] == "done") {
  26.         // se la condizione è verificata, significa che il login è stato effettuato
  27.         // quindi mostra il pulsante per effettuare il logout
  28.         echo '
  29.             <a href="'.$_SERVER[PHP_SELF].'">Reload</a>
  30.             <form action="" method="post" name="logout">
  31.                 <input type="submit" name="logout_but" value="Logout" />
  32.             </form>';
  33.     } else {
  34.         // altrimenti mostra il form
  35.         echo '
  36.             <a href="'.$_SERVER[PHP_SELF].'">Reload</a>
  37.             <form action="" method="post" name="login">
  38.                 Username: <input type="text" name="user" value="" /><br />
  39.                 Password: <input type="password" name="pass" value="" /><br />
  40.                 <input type="submit" name="login_but" value="Invia" />
  41.             </form>';
  42.     }
  43. }
  44.  
  45. // funzione per effettuare il login
  46. function login() {
  47.     // elimina gli spazi bianchi all'inizio e alla fine dei dati
  48.     $user = trim($_POST['user']);
  49.     $pass = trim($_POST['pass']);
  50.    
  51.     // controlla se è attiva la funzione di PHP per l'escape automatico dei caratteri speciali
  52.     if (get_magic_quotes_gpc()) {
  53.         // se è attiva, provvede a togliere gli slash eventualmente inseriti
  54.         $user = stripslashes($user);
  55.         $pass = stripslashes($pass);
  56.     }
  57.    
  58.     // effettua l'escape dei caratteri speciali per effettuare la query
  59.     $user = mysql_real_escape_string($user);
  60.     $pass = mysql_real_escape_string($pass);
  61.    
  62.    
  63.     $query = "SELECT id FROM users WHERE name = '$user' AND pass = MD5('$pass')";
  64.     $result = mysql_query($query);
  65.     // controlla l'esito della query
  66.     if (!$result) {
  67.         die("Query non eseguita con successo:<br />".mysql_error());
  68.     }
  69.    
  70.     // assegna alla variabile $row il record estrapolato grazie alla funzione
  71.     $row = mysql_fetch_array($result);
  72.    
  73.    
  74.     if (!$row) {
  75.        
  76.         $msg = urlencode("Nome utente o password errati");
  77.         $tok = urlencode("err"); //####
  78.         header("location: $_SERVER[PHP_SELF]?msg=$msg&status=$tok");   
  79.     } else {
  80.        
  81.         session_start();
  82.         $_SESSION['user_id'] = $row['id']; // assegna l'id di sessione
  83.         $msg = urlencode("Login eseguito con successo");
  84.         $tok = urlencode("done"); //####
  85.         header("location: $_SERVER[PHP_SELF]?msg=$msg&status=$tok");
  86.     }  
  87. }
  88.  
  89. // funzione per effettuare il logout ### ?? ###
  90. function logout() {
  91.     //session_destroy(); // distrugge la sessione
  92.     $_SESSION = array(); // svuota l'array di sessione
  93.     $_POST = array(); // svuota l'array $_POST
  94.     //header("location: $_SERVER[PHP_SELF]");
  95.  
  96. }
  97. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement