sto creando un forum con login a file, ma il login non viene effettuato a dovere.
functions.inc.php
codice:
<?php
function prelogin() {
?><table width="100%">
	<tr>
		<td align="center"><font size="+1" color="#00CC99">Login</font></td>
	</tr>
	<tr>
		<td><form name="login" method="post" action="<?=$PHP_SELF?>?action=login">
		<table width="100%">
			<tr>
				<td width="20%" align="right">Username:</td>
				<td width="80%"><input name="user" type="text" id="user" size="20" maxlength="10"></td>
			</tr>
			<tr>
				<td width="20%" align="right">Password:</td>
				<td width="80%"><input name="password" type="password" id="password" size="20" maxlength="10"></td>
			</tr><?php
}
function buttonlogin() {
?>			<tr>
				<td width="20%"></td>
				<td width="80%">
<input style="font-size: 10px;" type="submit" height="1" value="   Login...   " id="login" name="login"></td>
			</tr><?php
}
function nologin($message) {
  prelogin();
?>			<tr>
				<td colspan="2"><font color="red">ATTENZIONE:</font> <?=$message?></td>
			</tr><?php
  buttonlogin();
?>		</table></form>
		</td>
	</tr><?php
}
function check_user($kuser, $kpassword) {
  $result = false;
  $users_db = file("db/users.db.php");
  unset($users_db[0], $users_db[1], $users_db[2], $users_db[3], $users_db[4], $users_db[5]);
  global $member;
  $pass = md5($kpassword);
  foreach($users_db as $user) {
    $member = explode("|", $user);
    if(($kuser == $member[0]) && ($pass == $member[1])) {
	  setcookie("kuser", $kuser);
	  setcookie("kpassword", $pass);
	  $result = true;
	  break;
    }
  }
  return $result;
}
function login($kutente, $kpass) {
  if(($kutente == "") || ($kpass == "")) {
    nologin("non hai inserito tutte le informazioni necessaie per il login.");
  }else{
    if(check_user($kutente, $kpass)) {
	  $self_file = __FILE__;
	  header("Location: $self_file");
	}else{
	  nologin("username e/o password errati.");
	}
  }
}
?>
e adesso la pagina di login login.php
codice:
<?php
include("functions.inc.php");
if(!isset($_GET['action'])) {
  prelogin();
  buttonlogin();
?>		</table></form>
		</td>
	</tr><?php
}elseif((isset($_GET['action'])) && ($_GET['action'] == "login")) {
  if((!isset($_COOKIE['kuser'])) && (!isset($_COOKIE['kpassword']))) {
    login($_POST['user'], $_POST['password']);
  }else{
    if(check_user($_COOKIE['user'], $_COOKIE['password'])) {
      header("Location: $PHP_SELF");
    }else{
	  nologin("username e/o password errati");
	}
  }
db/users.db.php
codice:
<?php
die("Non hai i permessi per visualizzare questa pagina.");
$fopen = fopen("log.php", "a+");
$message = "Tentativo di intrusione per la visualizzazione del database utenti rilevato e bloccato\n";
fputs($fopen, $message);
?>
utente|password formato md5(convertita con la funzione md5() prima di essere scritta)
il file log.php è dove ci sono descritti tutti i tentativi di intrusioni rilevati e bloccati aprendo in modo diretto il file users.db.php. Dove sta l'errore se tento di effettuare un login con username "utente" e password la password?