Buongiorno,
ho qualche problemino ad applicare una pagina protetta al mio sito. Vi spiego quello che ho fatto con l'aiuto del codice.
Per prima cosa ho creato la tabella "Login"
Campo - Tipo - Null - Extra
id_login - int(1) - No - auto_increment
username_login - varchar(10) - No
password_login - varchar(40) - No
Dopo di che ho inserito questo codice nella pagina login.php
Codice PHP:
<?php
// inizializzazione della sessione
session_start();
// se la sessione di autenticazione
// è già impostata non sarà necessario effettuare il login
// e il browser verrà reindirizzato alla pagina di scrittura dei post
if (isset($_SESSION['login']))
{
// reindirizzamento alla homepage in caso di login mancato
header("Location: gestisci.php");
}
// controllo sul parametro d'invio
if(isset($_POST['submit']) && (trim($_POST['submit']) == "Login"))
{
// controllo sui parametri di autenticazione inviati
if( !isset($_POST['username']) || $_POST['username']=="" )
{
echo "Attenzione, inserire la username.";
}
elseif( !isset($_POST['password']) || $_POST['password'] =="")
{
echo "Attenzione, inserire la password.";
}else{
// validazione dei parametri tramite filtro per le stringhe
$username = trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
$password = trim(filter_var($_POST['password'], FILTER_SANITIZE_STRING));
$password = sha1($password);
// inclusione del file della classe
include "funzioni_mysql.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
// interrogazione della tabella
$auth = $data->query("SELECT id_login FROM login WHERE username_login = '$username' AND password_login = '$password'");
// controllo sul risultato dell'interrogazione
if(mysql_num_rows($auth)==0)
{
// reindirizzamento alla homepage in caso di insuccesso
header("Location: index.php");
}else{
// chiamata alla funzione per l'estrazione dei dati
$res = $data->estrai($auth);
// creazione del valore di sessione
$_SESSION['login'] = $res-> id_login;
// disconnessione da MySQL
$data->disconnetti();
// reindirizzamento alla pagina di amministrazione in caso di successo
header("Location: gestisci.php");
}
}
}else{
// form per l'autenticazione
?>
<h1>Accesso all'amministrazione:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Username:
<input name="username" type="text">
Password:
<input name="password" type="password" size="20">
<input name="submit" type="submit" value="Login">
</form>
<?
}
?>
La mia domanda è: dove inserisco i miei dati per l'autenticazione? Nella tabella o nella pagina? Scusate per la domanda che ai più è banale e scontata, ma mi sto addentrando da poco nel mondo php.
Grazie in anticipo!