Txt Datei auslesen und vergleichen

Chakky

Member of Honour
hi,
ich hab folgendes problem ich hab hier eine txt datei mit folgenden inhalt

Code:
     Chakky=asdf
    FireBird=adfe
     MuhKuh = ido

jetzt brauch ich ein php script was aus der txt datei genu die zeile ausliest "Chakky=asdf"
bzw ich gebe den user name und das pw an und der soll kontrollieren ob das in der txt file drinne steht.


mit einer datenbank wüsste ich es wie es geht soll aber nicht genutz werden
 
Und nun?
Wie weit biste denn bis jetzt? bzw. wo genau ist dein Problem?

mfg
püppi
 
also ich bin jetzt soweit das ich einen code habe der mir aber immer noch fehler anzeigt

Code:
<?php
$fp = fopen("pw.txt","r");
$input ="Chakky=asdf";
if ($fp)
{
while(!feof($fp))
{
$text = fgets($fp);
  foreach ($text as $key) {
		if ($key == "$input") {
			print "Passwort found";
} 
}
echo"$text"; 


}
fclose($fp);
}
?>

die fehlermeldung
Warning: Invalid argument supplied for foreach() in H:\apache\xampp\htdocs\auth\abfrage2.php on line 9
[users]
Warning: Invalid argument supplied for foreach() in H:\apache\xampp\htdocs\auth\abfrage2.php on line 9
Chakky=asdf
Warning: Invalid argument supplied for foreach() in H:\apache\xampp\htdocs\auth\abfrage2.php on line 9
FireBird=adfe
 
das leigt daran das mit foreach() Array behandelt werden, du bekommst bei fgets aber kein array sondern einen einfachen String.
Versuch doch mal sowas:
PHP:
<?php
$fp = fopen("pw.txt","r");
$input ="Chakky=asdf";
if ($fp)
{
while(!feof($fp))
{
$text = fgets($fp);
if (strcmp($text,$input) == 0) {
print "Passwort found";
} 
echo"$text";
}
fclose($fp);
}
?>
Habs nicht getestet, aber müsste eigentlich klappen. Wenn nich sag bescheid ;)
[EDIT] hab eben noch was geändert, hatte noch nen Fehler drin ;) [/EDIT]
mfg
püppi
 
danke dir hab jetzt auch ne lösung gefunden die so ähnlich is:
Code:
<?php
$fp = fopen("pw.txt","r"); //hier die txt datei angeben 

if ($fp)
{
while(!feof($fp))
{
$text = fgets($fp);
$text = str_replace("\r\n", "", $text );


if ($text == $input)
{

$found = 1;
break;
}

}
fclose($fp);


}
if ($found != "1")
{
//inhalt festlegen wenn einloggen NICHT erfolgreich
echo "password not found";
}
else
{
//inhalt wenn login erfolreich
echo "password found";
}
?>
 
liegt das an mir oder warum sehe ich hier nirgendwo ne eingabe?! na ok, bevor ich gleich lostrabe und mich nach moehrchen anstelle hier ne andere loesung (so auffe schnelle):
PHP:
<?php
 $verzeichnis = "txt/";
 $offen = fopen($verzeichnis."test.csv", "r");

 while($zeile = fgetcsv($offen, 1024)){
 	if ($zeile[0] == $_POST['login'] && $zeile[1] == $_POST['pass']) $tuersteher = true;
 } // while
 
 echo $tuersteher == true ? "na dann mal los!" : "du kummst hier ned rein!";
?>
<html>
  <head>
  
  </head>
  <body>
  	<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
	  <input name="login" type="text">
	  <input name="pass" type="text">
	  <input name="senden" type="submit" value="klopfklopfklopf">
	</form>
  </body>
</html>
und noch der inhalt der test.csv
Code:
test,pass
erwin,petra
klaus,gabi

hardy
 
@Chakky nimm mal besser statt
PHP:
if ($text == $input)
PHP:
if (strcmp($text,$input) == 0)
;)

mfg
püppi
 
die eingabe wird an einer anderen stelle gemacht mit einer http auth funktion danke euch *g*
 
Zurück
Oben