ecco come l'ho modificato e credo che il malfunzionamento sia causa mia. seguono gli altri file che compongono il sistema così chi volesse aiutarmi a risolvere il problema ha tutte le unfo che necessita.
gradisco moltissimo l'abuso di commento a spiegazione dello script, non immaginate quanto sia utile per imparare!
lo scopo finale è questo:
un distema di autenticazione con amministrazione (creare e distruggere utenti) che ad ogni utente assegni una destinazione personale (pagina personale che lui userà per gestire il suo spazio)
tale pagina dovrebbe essere accessibile solo a lui quindi protetta e il login dovrebbe essere normalmente effettuato da una pagina diversa e comune per tutti (anche admin magari).
1: pagina login_____________________________________________ _________
<form action="auth_login.php" method=post>
<input name="username" value="" size=10>
<input name="password" type=password value="" size=10>
<input name=submit type=submit value="Login">
<input type=reset value="Clear">
</form>
2: php che controlla i dati (come proposto e modificato)_____________
<?php
function authUser($username, $password) {
// se la pass è criptata qui metti ex $pass = md5($pass);
$p = md5($username.$password);
$userlist = file("users.inc.php");
foreach($userlist as $user) {
list($n, $p, $d) = explode(":", trim($user));
if($name == trim($n) && $pass == trim($p)) {
return $d;
}
}
return false;
}
if(isset($_POST['login'])) {
$username = htmlentities(trim($_POST['username']));
$password = htmlentities(trim($_POST['password']));
if($username != '' && $password != '' && ($dest = authUser($username, $password)) !== false) {
header("Location: $dest");
exit();
}
}
echo "<form action=\"".basename($_SERVER['PHP_SELF'])."\" method=\"post\">
Username <input type=\"text\" name=\"username\">
Password <input type=\"password\" name=\"password\">
<center><input type=\"submit\" name=\"login\" value=\"login\">
</form>";
?>
3: file che detiene le informazioni (users.inc.php)__________________
<?php die("Access Restricted"); ?>
a:4124bc0a9335c27f086f24ba207a4912:a.php
b:21ad0bd836b90d08f4cf640b4c298e7c:b.php
c:e0323a9039add2978bf5b49550572c7c:c.php
4: file gestione utenti (adduser.php)________________________________
<?php
if (!isset($submit)) {
?>
<form>
<input name="name" size=10>
<input name="pass" size=10>
<input type="hidden" name="dest" value=".php">
<input type=submit name="submit" value=" Set ">
</form>
<form action="admin_delchecked.php" method=post>
<?php
$userlist = file("users.inc.php");
for ($i=1; $i<count($userlist); $i++) {
list($n,$p,$a) = explode(':',chop($userlist[$i]));
echo "[*]<input type=checkbox name=\"user[]\" value=\"$n\"> $n | $a ";
}
?>
<input type=submit name="submit" value=" Set ">
</form>
<? } else {
$userlist = file("users.inc.php");
$done = false;
$auth = false;
$found = false;
$i = 0;
while ((!$found) && ($i<count($userlist))) {
$i++;
list($n,$p,$a) = explode(':',$userlist[$i]);
$found = ($n==$name);
}
if ($found) {
echo "Error: Username $name already exists
";
echo "<a href=adduser.php>Back</a>";
} else {
$p = md5($name.$pass);
$a = $name.$dest;
$i = count($userlist);
$userlist[$i] = implode(':',array($name,$p,$a));
sort($userlist);
$fd = fopen("users.inc.php","w");
fputs($fd,"<?php die(\"Access restricted\"); ?>\n");
for ($i=1; $i < count($userlist); $i++) {
fputs($fd,chop($userlist[$i])."\n");
}
fclose($fd);
header("Location: $HTTP_REFERER");
}
}
?>
5: file cancella utenti (admin_delchecked.php)_______________________
<?php
if (isset($user)) {
$userlist = file("users.inc.php");
$fd = fopen("users.inc.php","w");
fputs($fd, "<?php die(\"Access Restricted\"); ?>\n");
for ($i=1; $i < count($userlist); $i++) {
list($n,$p,$a) = explode(':',$userlist[$i]);
if (!in_array($n,$user)) {
fputs($fd,$userlist[$i]);
}
}
fclose($fd);
}
header("Location: $HTTP_REFERER");
?>
quanta roba!!!
ciao!