Ciao a tutti,
premetto che non sono molto pratico di Php, anzi direi quasi per niente, e per questo vi ringrazio tantissimo in anticipo dell'aiuto che potrete darmi.
Nel mio sito sto creando un'area riservata con un file login.php e utenti.php
i loro codici sono i seguenti:
Login.php
Codice:
<?
if (isset($_COOKIE[session_name()])) setcookie(session_name(), '', time() - 90000);
?>
<div align="center">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Area Riservata - Login</title>
</head>
<?
function check($user,$password){
include("../pagine_riservate/utenti.php");
foreach($utenti as $user_ => $password_){
if (($user==$user_) AND ($password==$password_)) {
return true;
}
}
return false;
}
function form_login(){
?>
</p>
<body background="../../images/sfondi/sfondo_area_riservata/sfondotabella.jpg">
<table bgcolor="#CC9900">
<tr>
<td style="border-style: double; border-width: 4px" bordercolor="#C0C0C0">
<form id="login" action="<?=$PHP_SELF?>" method="post" >
<p align="center">
<font color="#FFFFFF" face="Arial">User</font><font color="#FFFFFF" face="Andale Mono"> </font>
<font face="Andale Mono"><input type="text" name="utente" size="20">
<font color="#FFFFFF" face="Arial">Password</font><font color="#FFFFFF" face="Andale Mono"> </font>
<input type="password" name="password" size="20">
<input type="submit" value=" OK ">
</p>
</form>
</td>
</tr>
</table>
<? }
if(isset($_POST["utente"])){
if (check($_POST["utente"],$_POST["password"]) And $_SESSION[tentativi] <= 5){
session_start();
$_SESSION["tentativi"] = 0;
$_SESSION["utente"] = $_POST["utente"];
$_SESSION["password"] = $_POST["password"];
if($_POST["utente"] == "pippo"){include("../pagine_riservate/pippo.php");}
if($_POST["utente"] == "pepo"){include("../pagine_riservate/pepo.php");}
}else{
$_SESSION[tentativi]++;
form_login();
echo "
\n";
echo "User o Password errati oppure hai esaurito il numero di tentativi a disposizione.
";
echo "Attualmente hai utilizzato ". $_SESSION[tentativi]."tentativi dei 5 a disposizione";
echo "
\n";
echo "accesso non eseguito";
}
}else{
form_login();
}
?>
</body>
</html>
</div>
utenti.php
Codice:
<?
/*
Per aggiungere un nuovo utente scrivere:
$utenti["nome_utente"] = "password";
Ad esempio, se si vuole aggiungere l'utente mario con password rossi, scrivere:
$utenti["mario"] = "rossi";
*/
$utenti["pippo"] = "pippo";
$utenti["pepo"] = "pepo";
?>
arrivo al dunque...
quello che non riesco proprio a fare ? un controllo che mi permetta di limitare il numero di tentativi di accesso a 4-5 e quindi far scomparire la maschera di inserimento user e password al cui posto visualizzare un messaggio del tipo NUMERO MASSIMO DI TENTATIVI RAGGIUNTO.
Il problema che si verifica ? che se inserisco i user e pass corretto entra tranquillamente, mentre se inserisco dati non corretti la limitazione al numero di tentativi di accesso non funziona...ossia l'utente pu? provare ad inserire user e pass quante vuole...
Il link in cui provare quello che sto cercamdo di spiegare a parole ?:
parmarealestate.altervista.org
cliccando in area riservata del menu orizzontale.
E poi se fatta in questo modo tale tipo di area riservata ? abbanstanza sicura?
Vi ringrazio in anticipo dell'aiuto che potrete darmi.
Ciao..
Kite