Login in Php 2

Login Php (parte 2 del tutorial)

Nella prima parte Login in Php (parte 1) abbiamo visto come utilizzare un form per permettere di effettuare la login php ed entrare in un’area riservata.

Oggi andremo a vedere alcune operazioni supplementari che si possono effettuare all’interno del file login.php per ulteriori controlli molto utili. Inoltre vedremo come assicurare l’accesso alle pagine dell’area riservata solo a chi è in possesso di un account valido.

Login php – Controlli

login php 2

Partiamo con il rivedere il codice del file login.php:

<?php
$username= trim($_POST['username']);
$password = trim($_POST['password']);

if(!$username || !$password):

         //riporto alla pagina iniziale se uno dei due campi è vuoto
         header('location: index.php');

else:

        //mi connetto al db
	@require('conndb.inc');
		
	//recupero i dati inseriti
	$username= trim($_POST['username']);
	$password = trim($_POST['password']);
	$password = md5($password);
	
	$sql = ("SELECT Username, Password FROM utenti WHERE Username ='".$username."' AND Password ='".$password."'");
	
	if(@mysql_query($sql)){
	   $result = @mysql_query($sql);
	 
           if(!$result){
		exit('<p>* SQL: <i>\''.$sql.'\'</i> .Errore nella selezione dei dati di accesso: '.mysql_error().'</p>');
		}
        }
	
        $rows = @mysql_fetch_array($result);
      
        session_start();

	$username = $rows['Username'];
	$_SESSION['username'] = $username;
	$PHPSESSID = session_id();
	echo "<SCRIPT>";
	echo "location.href='area.php'";
	echo "</SCRIPT>";
	
endif;

?>

Utilizzando solamente questo codice potremo solo verificare se i dati inseriti nel form sono contenuti nella nostra tabella utenti e quindi l’utente potrà accedere all’area riservata.
Vi ricordate che se l’utente non esiste la pagina darà semplicemente un’errore o la pagina non visualizzerà nulla?
Vediamo come invece reindirizzare l’utente al form di login con un messaggio: inseriamo questo controllo dopo la riga 30:

if(mysql_num_rows($result) == 0)
	{
		echo "<SCRIPT>";
		echo "location.href='index.php?mex=noute'";
		echo "</SCRIPT>";
		
	}

Qui andiamo a verificare quante righe la select restituisce e se uguali a 0 (cioè che nessun utente con quei dati esiste nel nostro database) rimando alla pagina principale con un messaggio richiamato dalla variabile “mex=noute”.

Nella pagina del form a questo punto aggiungo il controllo per visualizzare o meno il messaggio:

<?php 
if($mex == "noute"){ 
   echo "<br><p class='description'><span class='blue'>Utente insesistente!</span></p><br>"; 
}
?>

Questo codice và inserito dove vorrete far apparire il messaggio.

Controllo accesso Area riservata

login php area riservata

Per essere certi che le pagine dell’area riservata vengano visualizzate solamente da chi effettua correttamente la Login, e che quindi ha un’account abilitato dobbiamo inserire un controllo in testa ad ogni pagina:

<?php
session_start();

if(!isset($_SESSION['username'])){
	header('location: index.php');
	}
?>

Il controllo viene effettuato sulla sessione creata durante la Login.

Davide Arduini Arduini

Developer Web in Php, Html, Asp, Css. Esperienza in sviluppo di siti web, pannelli gestionali e applicativi aziendali per uso interno. Conoscenza base dei vari CMS (Joomla, WordPress, etc..)

WebSite


Seguimi su: TwitterFacebookLinkedInPinterestGoogle PlusYouTube

SmartImage - Facile manipolazione delle immagini
Utility per il vostro sito web

Potrebbero interessarti anche

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.