Revisionato e corretto tutto ;) scusa se c'è voluto un pò
Ho ri-indentato un po tutto e messo un paio di commenti per i futuri programmatori che ci metteranno le mani XD
infsa ma per caso prima ti dava anche parecchi messaggi d'errore? A me si,sia sulla registrazione che sul login...ma ho messo a posto tutto ;)
Cmq per chi volesse sapere l'errore criptava la password in md5 (quel codice strano è un hash md5 infsa! XD) e poi quando andava a confrontare le password del DB (in questo caso file di testo) con quella inserita dal utente la ricriptava una seconda volta e quindi non corrispondevano ;)
Questo è il codice corretto,da inserire al posto di quello vecchi in "registrazione.php"
Codice PHP:
<?php
function controlla_presenza($nick){
$file = file("utenti.php");
foreach($file as $rigo) {
$ex = explode("|",$rigo);
if(@$ex[1] == $nick) {
return "presente";
}
}
}
function nick_pass_ok($nick,$pass) {
$file = file("utenti.php");
foreach($file as $rigo) {
$ex = explode("|",$rigo);
if(@$ex[1] == $nick AND $ex[2] == $pass)
{
return "ok";
}
}
}
$nick = $_POST['nome'];
$nick = str_replace("|","",$nick);
$nick = str_replace("\\","",$nick);
$vpass = $_POST['pass'];
$vpass = str_replace("|","",$vpass);
$vpass = str_replace("\\","",$vpass);
$pass = md5($vpass);
if(@$_POST['registrati'] OR @$_POST['login']){
if(trim($nick) == "" || trim($pass) == "") {
header("Location:form.html");
}
}
//Parte della registrazione
if(@$_POST['registrati']) {
$check = controlla_presenza($nick);
if($check == "presente") {
echo "Utente già presente!"; exit();
}
$fp = fopen("utenti.php","a+");
fwrite($fp,"<?php|".$nick."|".$pass."|\n ?>");
fclose($fp);
echo "$nick registrato! Password: $vpass";
echo "<br><a href='form.html'>Torna alla pagina di login</a>";
}
//Parte del login!
else if(@$_POST['login']) {
$contr = nick_pass_ok($nick,$pass);
if($contr == "ok") {
echo "<b>$nick</b> sei loggato!";
echo "Visualizza l'area riservata!";
}
else
{
echo "Nickname o password errati!";
}
}
?>
Facci sapere se ora ti funziona correttamente ;)
Byeee,buon login eheh