elisa
leggendo brevemente il codice che hai postato quel ".filtra_caratteri dannosi ecc.." è una funzione che controlla credo con delle str_replace o eregi i caratteri che non si vogliono far immettere nel db, come per esempio tag "<" o apici.. o quello che vuoi tu.. invece il parametro md5 è un algoritmo complesso per criptare la password anche nel db e quindi impedire che anche l'amministratore del db possa sapere quale è la tua pass...
spero di essere stato chiaro. :-)
cmq sia credo che quello script sia abbastanza prolisso, se devi fare un log-in solo per l'amminsitratore io non lo farei così lo script, piuttosto creerei due pagine. login.php e check_user.php
nella login.php metterei il form e i controlli javascript:
<script language="javascript">
function Validate() {
var user=document.form1.user.value; //definisco la variabile del campo user
var pass=document.form1.pass.value; // definisco la variabile del campo pass
var regexp=/^([a-zA-Z0-9\.])+$/; // definisco in una espressione regolare che accetto solo lettere e numeri
// controllo se il campo user è vuoto o meno
if ((user == "") || (user == "undefined")) {
alert("Inserire tutti i dati");
document.modulo.user.focus();
return false;
}
//controllo se il campo pass è vuoto o meno
else if ((pass == "") || (pass == "undefined")) {
alert("Inserire tutti i dati");
document.modulo.pass.focus();
return false;
}
// controllo se il campo user contiene solo lettere e numeri
else if (!regexp.test(user)) {
alert("Sono permessi soltanto lettere,numeri ed il punto");
document.modulo.user.focus();
return false;
}
// controllo se il campo pass contiene solo lettere e numeri
else if (!regexp.test(pass)) {
alert("Sono permessi soltanto lettere,numeri ed il punto");
document.modulo.pass.focus();
return false;
}
//INVIA IL MODULO SE TUTTO QUELLO SOPRA VA BENE
else {
document.form1.action = "salva_utente.php";
document.form1.submit();
}
}
</script>
poi qui ci metto il form chiamando i due textfield "user" e "pass" che manderà con method=post i valori alla pagina check_user.php
e qui finisce la pagina login.php
passiamo alla pagina check_user.php
da questa pagina io ricevo i valori dal form, controllo se esiste già una sessione e se esiste la distruggo perchè potrebbe contenere valori che io non voglio, eseguo una query sul db per vedere se i due dati passati dal form esistono nel database e se tutto quello sopra è valido, creo una sessione e ridirigo l'utente alla pagina dopo.
check_user.php
<?php
session_start(); //starto la sessione
include "db.php"; //includo il file per il collegamento al db (parametri vari)
$user = $_POST['user'];
$pass = $_POST['pass']; //converto i valori in variabili semplici
$query= "SELECT * FROM utenti WHERE user='$user' AND pass='md5($pass)' " ;
$sql = mysql_query($query);
$login_check = mysql_num_rows($sql);
if($login_check > 0){
$row = mysql_fetch_array($sql);
$nome=$row["user"]; // controllo nel db se esiste nome utente e pass
// controllo se esiste già una sessione che si chiama come quella che voglio creare e se esiste suppongo che non l'ho creata io e la distruggo per sicurezza
if($_SESSION['nome']) {
$_SESSION=array(); // Desetta tutte le variabili di sessione.
session_destroy(); //DISTRUGGE la sessione.
}
// Registro nella sessione le variabili
session_register('nome');
$_SESSION['nome'] = $nome;
header ("Location:index.php"); // ridirigo l'utente alla pagina successiva se tutto è andato a buon fine.
?>
e questo è tutto.. :-)