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

Inlogg med hjälp av fil

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>

Dela detta inlägg


Länk till inlägg
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.

Dela detta inlägg


Länk till inlägg
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!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...