Nella lezione precedente abbiamo visto come registrare un nuovo utente, ora vedremo come farlo "Loggare" nel nostro sito grazie alle sessione e alle "chamate" al database.
Di seguito è riportato il codice html da inserire nella home del nostro sito, i commenti sono preceduti da un asterisco (#):
Codice: |
#Iniziamo il form indirizzando i dati che invieremo alla pagina login.php <FORM name="login_form" action="login.php" method="post"> #Inseriamo le caselle del form in una tabella per meglio ordinarle <TABLE cellPadding=1> <TBODY> <TR> <TD align=left><font size="1" face="verdana"><B>User </B></font></TD> <TD align=left><font size="1" face="verdana"> #Ecco l'input dell'user <input id="usr" name="usr" type="text" size="12"> </font></TD> </TR> <TR> <TD align=left><font size="1" face="verdana"><B>Pass </B></font></TD> <TD align=left><font size="1" face="verdana"> #L'input per la password - Notare il Type :-) <input id="pwd" name="pwd" type="password" size="12"> </font></TD> </TR> <TR> <TD align=middle colSpan=2> <div align="center"><font size="1" face="verdana"> #Infine il pulsantino submit <INPUT name="submit" type=submit value=Login> </font></div></TD> </TR> </TBODY> </TABLE> </FORM> |
Di seguito scriviamo il codice php della pagina "login.php":
Codice: |
<?
session_start(); #Includiamo il file db.php che creerà la connessione al database include ("inc/db.php"); #Riempiamo la variabile $Nome con i dati scritti nell'input dell'username $Nome = $_POST['usr']; #Riempiamo la variabile $Password con i dari scritti nell'input della password $Password = $_POST['pwd']; #Con un ciclo IF blocchiamo lo script nel caso in cui non fosse stata #inserita nè password nè username if((!$Nome) || (!$Password)){ echo "Si prega di inserire tutte le informazioni! <br />"; header("Location: index.php"); exit(); } #Se l'if non ha bloccato lo script, allora i dati sono stati inseriti tutti #E quindi cerchiamo nel database se c'è un Utente con il Nome e la # Password inseriti nel form $MySql = "SELECT * FROM users WHERE Nome='$Nome' AND Pass='$Password'"; $Result = mysql_query($MySql); $rs = mysql_fetch_array($Result); $a1 = $rs['Nome']; $a2 = $rs['Pass']; $a3 = $rs['Amministratore']; $a4 = $rs['Bannato']; $a5 = $rs['Livello']; $rs->close; #Abbiamo riempito alcune variabili con dei dati essenziali ora #con un if vediamo se i dati presi da database sono uguali a quelli #inviati dal form .. ovvero immessi dall'utente if ($a2 == $Password){ #Se la password inviata è uguale a quella reperita nel database allora riempiamo #Alcune sessioni #Registriamo la sessione first_name e la riempiamo con il risultato # inserito nella variabile $a1, poi facciamo lo stesso per le altre #sessioni e variabili session_register('first_name'); $_SESSION['first_name'] = $a1; session_register('Password'); $_SESSION['Password'] = $a2; session_register('Amministratore'); $_SESSION['Amministratore'] = $a3; session_register('Bann'); $_SESSION['Bannato'] = $a4; session_register('livello'); $_SESSION['livello'] = $a5; #Riempite le sessioni portiamo l'utente alla pagina game.php che #creeremo in sguito header("Location: game.php"); } else { #Se i dati del database sono diversi da quelli inviati dal form blocchiamo #lo script echo "Accesso Negato<br /><br />"; header("Location: gioco.php"); exit(); } #Caricati i dati, se l'utente risulta "Bannato" ovvero bloccato, viene #chiamata la pagina di logout, che creeremo nella prox lezione, #e viene chiamato l'index.php bloccando quindi lo script if ($_SESSION['Bann'] == '1') { echo "Sei stato bloccato dall'amministrazione!"; include("logout.php"); include("index.php"); } ?> |