Just nu i M3-nätverket
Gå till innehåll

Inlogg med hjälp av fil


stonnew

Rekommendera Poster

Jag försöker göra ett login-script där man kollar igenom en txt-fil efter rätt användarnamn och lösenord när man fyllt i ett formulär. Men jag förstår inte varför det inte fungerar? Jag har testat flera olika liknande kod.

 

Det enda som fungerar är sista användarnamnet och lösenordet i filen, som står på sista raden. Men hur får jag så alla användarnamn fungerar som står i textfilen? Något tips? Vad gör jag fel?

 

<? 
session_start();
if (isset($_POST["loggaut"]))
{ session_unset(); session_destroy();}

if(isset($_POST["submit"])) 
{
$a["namn"] = $_POST["id"];
$a["pass"] = $_POST["pass"];

$file = fopen("losen.txt","r");
$arr1;
$ix = 0;

while (!feof($file))
{
	$arr1[$ix] = fgets($file);
	++$ix;
}
fclose($file);

foreach ($arr1 as $i => $pass)
{
	$b = explode(" ", $pass);
	if($b[0] == $a["namn"] && $b[1] == $a["pass"])
	{
		header('Location: test.php');
	}
}

}
?>
<html>
<head>
<title>Inloggning</title></head>
<body>

<fieldset><legend><b>Logga in</b></legend>
<form action="http://localhost/xampp/skol/lab2.php" method="post" name="login">
<table>
<tr><td>Användarnamn: </td><td><input type="text" name="id" 
<? if($_POST["id"]) echo 'value="'.$_POST["id"].'"'?> ></td></tr>
<tr><td>Lösenord: </td><td><input type="password" name="pass" 
<? if($_POST["pass"]) echo 'value="'.$_POST["pass"].'"'?> ></td></tr>
<tr><td><input type="submit" name="submit" value="Skicka">
</table></form></fieldset>
</body>
</html>

Länk till kommentar
Dela på andra webbplatser

Hej!

Minns jag rätt så returnerar fgets en rad inklusive newline-tecknet.

Testa efter varje läsning om sista tecknet är newline, och ta i så fall bort det.

Jag tror det skall gå med

trim($b[0], "\n\r");

trim($b[1], "\n\r");

 

Lycka till.

Länk till kommentar
Dela på andra webbplatser

Tack så mycket!

 

Missade den lilla detaljen som inte "syns" så att säga, men ändå finns där.

 

Ändrade bara om foreach-satsen till följande:

foreach ($arr1 as $i => $pass)
{
    if(trim($pass) == trim($str))
    {
          header('Location: test.php');
    }
}

 

Tack så mycket igen!

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...