Schau, du möchtest was und nicht ich. Wenn du dich weigerst eine vernünftige Fehlerbeschreibung zu liefern, dann lassen wir es einfach bleiben. Ich hab kein Problem damit.
							
						
					Login-Abfrage über txt-Datei
				
					Einklappen
				
			
		
	X
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Ich verstehe nur nicht, warum das von Bedeutung ist und inwiefern das mein Problem lösen könnte.
 Also ich habs jetzt mit file probiert (s.Code):
 $datei=file('benutzernamen.txt',"r") ;
 while (!feof($datei)) //while sorgt dafür, dass die Datei bis zum Ende ausgelesen wird
 {
 $zeilenArray = fgets($datei);
 echo "Nutzer enthalten";
 }
 fclose($datei);
 
 und erhalte folgende Fehlermeldung:
 Warning: file() expects parameter 2 to be long, string given in /users/hanan/www/uebung4.php on line 136
 
 Warning: feof() expects parameter 1 to be resource, null given in /users/hanan/www/uebung4.php on line 137
 
 Warning: fgets() expects parameter 1 to be resource, null given in /users/hanan/www/uebung4.php on line 139
 Nutzer enthalten
 Warning: feof() expects parameter 1 to be resource, null given in /users/hanan/www/uebung4.php on line 137
 
 usw.usw.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 file() kennt keinen zweiten Parameter 'r'. Den hast du erfunden, im PHP-Handbuch steht der nicht. Siehe:
 
 PHP: file - Manual
 
 file() liefert außerdem bereits ein Array. Warum tust du dann noch mit feof(), fgets() und flocse() herum? Sowas kommt im PHP-Handbuch auch nicht vor.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Das hast du mit file() bereits getan. Wenn dir nicht klar ist, was anschließend in deiner Variablen $zeilenArray steht – dann lass es dir mittels var_dump() ausgeben.Zitat von Hananananan Beitrag anzeigenAber wie kann ich jetzt die txt auslesen
 
 Da kommt dann wieder in_array ins Spiel. Eine Schleife braucht es dafür dann nicht mehr.und überprüfen, ob der Name nun vorhanden ist?I don't believe in rebirth. Actually, I never did in my whole lives.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Das ist genauso wenig eine brauchbare Problembeschreibung wie „funktioniert nicht“.Zitat von Hananananan Beitrag anzeigenJa genau das kriege ich ja nicht hin mit dem in_array :S
 
 Zeig deinen Code, und erkläre detailiert was er machen soll.I don't believe in rebirth. Actually, I never did in my whole lives.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Alles was ich mit in_array versucht hatte, habe ich wieder verworfen, weil es nicht geklappt hat. Daher brauche ich einen neuen Ansatz. Mein Skript kannst du ja dem Thread entnehmen. Also ich weiß nicht, wie in mithilfe von in_array überprüfen kann, ob der eingetragene Benutzername in der txt-Datei vorhanden ist oder nicht. Das möchte ich dementsprechend ausgeben (mit true/false).
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 So, wie bereits erklärt wurde:Zitat von Hananananan Beitrag anzeigenAlso ich weiß nicht, wie in mithilfe von in_array überprüfen kann, ob der eingetragene Benutzername in der txt-Datei vorhanden ist oder nicht.
 
 - Textdatei mittels file() in Array einlesen
 - mit var_dump kontrollieren(!), ob die Daten auch tatsächlich so vorliegen, wie du annimmst (genau ein Benutzername pro Array-Eintrag)
 - wenn ja, einfach in_array anwenden, dann hast du dein Ergebnis in Form von true oder falseI don't believe in rebirth. Actually, I never did in my whole lives.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Hi,
 also ich habe jetzt folgendes Skript:
 <html>
 <body>
 <form action="test.php" method="post" name="form1">
 Dein User-Name:<br>
 <input type="text" size="24" maxlength="50" name="username" value=""> <br><br>
 
 
 <input type="submit" value="Registieren">
 </form>
 
 
 
 
 <?php
 if(isset($_POST['username'])) $username = $_POST['username']; else $username="";
 
 $user_vorhanden = array();
 
 $userdatei = fopen ("benutzernamen.txt","r");
 while (!feof($userdatei))
 {
 $zeile = fgets($userdatei,500);
 $userdata = explode("|", $zeile);
 array_push ($user_vorhanden,$userdata[0]);
 }
 fclose($userdatei);
 
 if (in_array($username,$user_vorhanden))
 {
 echo "Username schon vorhanden";
 }
 
 else
 {
 $userdatei = fopen ("benutzernamen.txt","a");
 fwrite($userdatei, $username);
 fwrite($userdatei, "|");
 fwrite($userdatei, "\n");
 fclose($userdatei);
 echo "$username, deine Anmeldung war erfolgreich";
 }
 
 
 
 
 
 
 
 $zeilenArray = file('benutzernamen.txt');
 
 //Ausgeben des Arrays mit einer foreach Schleife
 foreach ($zeilenArray as $zeilenNummer => $zeile) {
 echo "<br>Benutzer: <b>".$zeilenNummer."</b> : " . $zeile . "\n";
 
 }
 ?>
 
 
 Die Ausgabe sieht dann ungefähr so aus
 hans|
 peter|
 
 Wie kriege ich dieses Zeichen "|" da weg. Hab schon alles versucht, es hängt wohl mit explode zusammen. Wenn ich es ändere funktioniert das Skript nicht mehr. Sprich, es wird immer ein neuer Name gespeichert, obwohl er schon vorhanden ist.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Um ehrlich zu sein habe ich das Skript im Internet gefunden und etwas angepasst und verändert. Als ich versucht habe dieses Zeichen weg zumachen, hat das Skript nicht mehr richtig funktioniert. Also, wie ich schon gesagt habe, der Fehler ist, dass der eingetragene Nutzername immer wieder neu eingetragen wird, obwohl der gleiche schon vorhanden ist. Außerdem werden durch explode unnötige Leerzeichen entfernt, die wieder erscheinen, wenn ich die Funktion ändere.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 $userdata = explode("|", $zeile);
 array_push ($user_vorhanden,$userdata[0]);
 }
 
 
 
 fwrite($userdatei, "|");
 
 Ich verstehe zwar was es macht, ich weiß aber nicht, wie ich | das Zeichen in der Ausgabe wegbekomme.
 
 
 Ich versuche den Code selbst zu schreiben und ihn zu verstehen. Aber wenn ich das nicht hinkriege und das Internet solche Skripts bietet, warum soll ich die nicht benutzen und damit weiter arbeiten . .
 Kommentar
 
          
Kommentar