Ultima modifica da un moderatore:
[font='Georgia, Times New Roman, Times, serif']Indice
• Introduzione
• Preparazione al lavoro
• Form Login
• Pagina delle Registrazioni
• Pagina con Classifica Personaggi
• Servizio di ticket (Via Database)
Form Login
Apriamo con un editor di testo il file index.php (consiglio vivamente di usare Notepad++). Creiamo in html un form con method "post", con il nome "login" e con il file di destinazione "./login.php".
Dopodichè, creiamo due "input". Uno deve essere di tipo "text" e l'altro di tipo "password". Entrambi di dimensione 16 (non maggiore). I nomi dei due input dovranno essere rispettivamente "userid" e "password. A vostro piacere potete inserire anche dei label per indicare quale dei due input è password e quale è ID.
A questo punto creiamo un altro input questa volta di tipo "submit" che servirà per confermare il modulo.
È ovvio che ognuno di voi poi curerà l'aspetto grafico di questo form.
Fatto ciò salviamo il file index.php e ci rispostiamo nella directory "A:/" dove creeremo un nuovo file chiamato "./login.php".
Questo file ci servirà per creare una nuova sessione dati e cercherò di spiegarne passo passo ogni funzione.
Iniziamo con il creare una sessione in questo modo:
Ora riprendiamo i dati che ci pervengono dalla pagina "index.php" e impostiamoli come due variabili:
Fatto ciò preveniamo un po' di errori dando quest'ordine:
Quest'ultima funzione stampa "Errore durante il login!" nel caso in cui il numero di caratteri della stringa "$userid" o della stringa "$password" sia inferiore ad 1.
Ora, se così non fosse...
Qui su dobbiamo inserire l'ip del database tra le virgolette che seguono a "$aaa_ip =", l'user per il login al database tra le virgolette che seguono a "$aaa_user =", la password per il login al database tra le virgolette che seguono a "$aaa_psw =" e, nel caso in cui la tabella "account" non si trovi nel database "account", modificare la stringa "$aaa_db" con il corrispettivo database.
Subito sopra abbiamo visto la dichiarazione della stringa "$query1", l'esecuzione di quest'ultima in qualità di query ed una funzione "mysql_fetch_object" che restituisce valori 1 o 0 dipendenti dall'esistenza di risultanti dalla query.
Quindi ora creiamo una macro che per il valore 1 di "$rs" segnerà nuovi dati nella sessione che riceverà dal risultato della query e che per il valore 0 di "$rs" ci darà un errore e terminerà la sessione.
Per esempio io ho salvato in sessione solo alcuni dati del form risultante dalla query, ma voi potete aggiungere a vostro piacimento altri "$_SESSION["AsD"] = $rs->NomeColonnaDaCuiDevoPrendereIDati".
Non ci dimentichiamo a questo punto di chiudere la nostra macro aperta con "}else{" e quindi mettiamo una parentesi graffa chiusa alla fine (codici ascii per parentesi graffe, molto utile impararli: 123-125) e di chiudere il php con un "?>".
Come sicuramente avrete notato, compare anche una funzione "header("location:index.php");" che è un comando che al termine della macro rimanda alla pagina index.php.
Pagina che sicuramente vorremo far sì che sia diversa a seconda che tu sia o non sia loggato.
Far ciò è forse il passaggio più complicato del nostro sistema di login, ma cercherò di semplificarlo il più possibile.
Chiariamo un paio di concetti: a questo punto ciò che faremo è "duplicare" la pagina html e di modificare una delle due in modo che sia quella che apparirà quando in Session saranno presenti alcuni dati come ad esempio $userid.
Fate ben attenzione a questo passaggio abbastanza delicato.
Posizioniamoci nella directory "A:/" e rinominiamo il file "index.php" in "index_out.php".
Fatto ciò copiamo il file "index_out.php" ed incolliamolo in "A:/" questa volta però con il nome di "index_in.php" e sarà questa (index_in.php) la pagina visibile dopo aver effettuato il login.
Creiamo ora un file chiamato "index.php" ed al suo interno scriviamo:
Cos'abbiamo scritto? Se $_SESSION["UserID"] esiste ed è maggiore di 1, il risultato è "loggato()" perchè avendo già dei dati in sessione, vuol dire che abbiamo effettuato il login in precedenza, altrimenti è "loggante()".
Quindi se il risultato è "loggante()", visualizziamo la pagina "index_out.php", altrimenti essendo loggati, visualizziamo la pagina "index_in.php".
Ultimo accorgimento per il php è quello di inserire all'inizio della pagina "index_in.php" un qualcosa che blocchi chi cerca di raggiungere direttamente il file senza effettuare il login, quindi aggiungeremo all'inizio della pagina:
Ed infine aggiungendo ai piedi della pagina:
[/font]
• Introduzione
• Preparazione al lavoro
• Form Login
• Pagina delle Registrazioni
• Pagina con Classifica Personaggi
• Servizio di ticket (Via Database)
Form Login
Apriamo con un editor di testo il file index.php (consiglio vivamente di usare Notepad++). Creiamo in html un form con method "post", con il nome "login" e con il file di destinazione "./login.php".
PHP:
<form id="login" method="post" action="./login.php"></form>
A questo punto creiamo un altro input questa volta di tipo "submit" che servirà per confermare il modulo.
PHP:
<form id="login" method="post" action="./login.php">
UserID: <input type="text" name="userid" size="16" value="" />
Passowrd: <input type="password" name="password" size="16" value="" />
<input type="submit" value="Login" />
</form>
Fatto ciò salviamo il file index.php e ci rispostiamo nella directory "A:/" dove creeremo un nuovo file chiamato "./login.php".
Questo file ci servirà per creare una nuova sessione dati e cercherò di spiegarne passo passo ogni funzione.
Iniziamo con il creare una sessione in questo modo:
PHP:
<?php
session_start();
PHP:
$userid=$_POST["userid"];
$password=$_POST["password"];
PHP:
if (strlen($userid) < 1 || strlen($password)< 1){
echo "Errore durante il login!";
Ora, se così non fosse...
PHP:
}else{
$aaa_ip = "";
$aaa_user = "";
$aaa_psw = "";
$aaa_db = "account";
$conn=mysql_connect($aaa_ip, $aaa_user, $aaa_psw);
mysql_select_db($aaa_db);
PHP:
$query1="select * from account where Login='$userid' and Password=password('$password')";
$result=mysql_query($query1);
$rs=mysql_fetch_object($result);
Quindi ora creiamo una macro che per il valore 1 di "$rs" segnerà nuovi dati nella sessione che riceverà dal risultato della query e che per il valore 0 di "$rs" ci darà un errore e terminerà la sessione.
PHP:
if($rs){
$_SESSION["UserID"] = $rs->Login;
$_SESSION["cash"] = $rs->cash;
$_SESSION["real_name"] = $rs->real_name;
$_SESSION["email"] = $rs->email;
$_SESSION["social_id"] = $rs->social_id;
$_SESSION["status"] = $rs->status;
header("location:index.php");
}else{
echo "Userid o Password sbagliati!";
exit;
}
Non ci dimentichiamo a questo punto di chiudere la nostra macro aperta con "}else{" e quindi mettiamo una parentesi graffa chiusa alla fine (codici ascii per parentesi graffe, molto utile impararli: 123-125) e di chiudere il php con un "?>".
Come sicuramente avrete notato, compare anche una funzione "header("location:index.php");" che è un comando che al termine della macro rimanda alla pagina index.php.
Pagina che sicuramente vorremo far sì che sia diversa a seconda che tu sia o non sia loggato.
Far ciò è forse il passaggio più complicato del nostro sistema di login, ma cercherò di semplificarlo il più possibile.
Chiariamo un paio di concetti: a questo punto ciò che faremo è "duplicare" la pagina html e di modificare una delle due in modo che sia quella che apparirà quando in Session saranno presenti alcuni dati come ad esempio $userid.
Fate ben attenzione a questo passaggio abbastanza delicato.
Posizioniamoci nella directory "A:/" e rinominiamo il file "index.php" in "index_out.php".
Fatto ciò copiamo il file "index_out.php" ed incolliamolo in "A:/" questa volta però con il nome di "index_in.php" e sarà questa (index_in.php) la pagina visibile dopo aver effettuato il login.
Creiamo ora un file chiamato "index.php" ed al suo interno scriviamo:
PHP:
<?
session_start();
if(isset($_SESSION["UserID"]) && strlen($_SESSION["UserID"])>1){
loggato();
}else{
loggante();
}
function loggante(){
include("index_out.php");
}
function loggato(){
include("index_in.php");
}
?>
Quindi se il risultato è "loggante()", visualizziamo la pagina "index_out.php", altrimenti essendo loggati, visualizziamo la pagina "index_in.php".
Ultimo accorgimento per il php è quello di inserire all'inizio della pagina "index_in.php" un qualcosa che blocchi chi cerca di raggiungere direttamente il file senza effettuare il login, quindi aggiungeremo all'inizio della pagina:
PHP:
<?
if(isset($_SESSION["UserID"]) && strlen($_SESSION["UserID"])>1){
?>
PHP:
<?
}else{
header("location:index.php");
}
?>