Lo script che ho fatto è questo qua:
Codice PHP:
<?php
session_start();
ob_start();
$user = $_POST['username'];
$pass = md5($_POST['password']);
// Se non sono stati inseriti i dati di login rimanda alla pagina principale segnalando l'errore
if(!isset($user) || !isset($pass)) {
header("Location: ./content.php?login=empty");
} else {
// Controllo principale sull'integrità dei caratteri per evitare tentativi di SQL Injection
if(!eregi("[^a-zA-Z0-9_\-]", $user)) {
$amm_sql = "SELECT * FROM amministratore WHERE username='$user' and password='$pass'";
$amm_query = @mysql_query($amm_sql);
$amm_result = @mysql_fetch_array($amm_query);
//anagrafica è la tabella utenti, rinominata per via del flusso xml
$user_sql = "SELECT * FROM anagrafica WHERE username='$user' and password='$pass'";
$user_query = @mysql_query($user_sql);
$user_result = @mysql_fetch_array($user_query);
//fornitori accesso
$fornitori_sql = "SELECT * FROM fornitori WHERE username='" . trim($user)."' and password='". trim($pass)."'";
$fornitori_query = @mysql_query($fornitori_sql);
$fornitori_result = @mysql_fetch_array($fornitori_query);
if(@mysql_num_rows($amm_query) > 0) {
if($amm_result['banned'] == 'Y') {
header("Location: ./content.php?login=ban");
} else {
$_SESSION['username'] = $user;
// L'utente e` un amministratore, quindi assegno come privilegi 1
$_SESSION['privileges'] = 1;
$_SESSION['time'] = time();
$_SESSION['ammid'] = $amm_result['id_amministratore'];
header("Location: ./content.php");
}
} elseif(@mysql_num_rows($user_query) > 0) {
$_SESSION['username'] = $user;
// L'utente e` un inquilino, quindi assegno come privilegi 2
$_SESSION['privileges'] = 2;
$_SESSION['time'] = time();
$_SESSION['userid'] = $user_result['id'];
$_SESSION['condominio'] = $user_result['id_condominio'];
$_SESSION['amministratore'] = $user_result['id_amministratore'];
header("Location: ./content.php");
} elseif(@mysql_num_rows($fornitori_query) > 0) {
$_SESSION['username'] = $user;
// L'utente e` un fornitore, quindi assegno come privilegi 3
$_SESSION['privileges'] = 3;
$_SESSION['time'] = time();
$_SESSION['fornitoreid'] = $fornitori_result['id'];
$_SESSION['amministratore'] = $fornitori_result['id_amministratore'];
$_SESSION['fornitore'] = $fornitori_result['id_fornitore'];
header("Location: ./content.php");
} else {
header("Location: ./content.php?login=failed");
}
} else {
header("Location: ./content.php?login=chars");
}
}
ob_end_flush();
?>
come posso fare in modo che chi fa invio senza inserire i dati venga loggato ?