Buongiorno
Ragazzi ho fatto un area riservata, che funziona , solo che avendo un db già utilizzato, con campo user, che equivale a nome e cognome, l'area riservata fatta da me, non permette, perchè ho un controllo sul campo username, per le parole, username come Paolo rossi, per via dello spazio, senza che tolgo il controllo, è possibile fare in modo che lo spazio non sia considerato errore?
vi posto il codice
Codice PHP:
<?php
session_start();
ob_start();
include("./config.php");
$user = $_POST['nome'];
$pass = ($_POST['email']);
// 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 amministratori WHERE nome_utente='$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 registrazione WHERE nome_cognome='$user' and email='$pass'";
$user_query = @mysql_query($user_sql);
$user_result = @mysql_fetch_array($user_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'];
header("Location: ./content.php");
} else {
header("Location: ./content.php?login=failed");
}
} else {
header("Location: ./content.php?login=chars");
}
}
ob_end_flush();
?>
Questa è la stringa che fa il cntrollo
Codice PHP:
if(!eregi("[^a-zA-Z0-9_\@.]", $user)) {
Grazie in anticipo per le rispsote