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.. :-)