webForumDet fria alternativet

Läser endast sista raden...

PHP

2 svar · 251 visningar · startad av Jontto

Medlem sedan okt. 2001125 inlägg
Frågan#1

Hej!

Har ett litet login-script som cryptar lösenordet med MD5 å sedan jämför med nyligen inskrivna krypterade lösenet.
Problemet är det att min kod endast loggar in om man använder användarnamn och lösenordet på sista raden i filen.

Däri ligger problemet. HJÄLP!

	// if tried to login, check
	$username = "user";
	$userpass = crypt("password",CRYPT_MD5);
	$filen = "andupp.psw";
	clearstatcache();
	$passfile = fopen($filen, "rb") or print("Kunde inte granska om lösenordet var rätt.");
	$passfile_cont = fread($passfile,filesize($filen));
	fclose($passfile);
	$lines = explode("\n", $passfile_cont);
	foreach($lines as $line) {
		list($usercomp,$passcomp) = explode(":",$line);
		if($usercomp == $username && $passcomp == $userpass) { 
		// if match found, then exit loop
			echo "$usercomp == $username && $passcomp == $userpass";
			$auth = true;
			break;
		}

	}

MVH, Jontto

Medlem sedan aug. 20002 975 inlägg
#2

När du läser in från filen så ligger det lite skräpkod kvar. Skriv din foreach-loop så här:

foreach($lines as $line) {
  list($usercomp,$passcomp) = explode(":",$line);
  $passcomp = rtrim($passcomp);
  if($usercomp == $username && $passcomp == $userpass) { 
    // if match found, then exit loop
    echo "$usercomp == $username && $passcomp == $userpass";
    $auth = true;
    break;
  }
}

Du kan dessutom spara lite kod genom att ersätta:

$passfile = fopen($filen, "rb") or print("Kunde inte granska om lösenordet var rätt.");
$passfile_cont = fread($passfile,filesize($filen));
fclose($passfile);
$lines = explode("\n", $passfile_cont);

med

$lines = file($filen);
Medlem sedan okt. 2001125 inlägg
#3

åujee!

Thänx mannen matte...de funcka perfekt å dessutom blev den flera kilo lättare oxå på köpet.

//jontto

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)