Login und Registrierung über Textdatei

Diskutiere Login und Registrierung über Textdatei im PHP Forum im Bereich Programmierung; Hallo ich bin noch ziemlicher anfänger und hab eine frage: also ich habe(mit einem tutorial) ein reestrierungs- und ein login script...
  • Login und Registrierung über Textdatei Beitrag #1
P
patrick1704
Member
Beiträge
12
Punkte Reaktionen
0
Hallo ich bin noch ziemlicher anfänger und hab eine frage:
also ich habe(mit einem tutorial) ein reestrierungs- und ein login script geschrieben.wenn man sich registriert wirden die daten in user.txt gespeichert.
nur das problem ist ich habe gemerkt das sich nur einer registrieren kan.
wenn sich noch wer registrieren will kommt ein fehler.
Also kan mir jemand helfen und mir sagen was ich am script ändern muss das wenn sich einer registriert die daten in einer neue zeile von user.txt gespeichert werden?
Hier der quelltext:
PHP:
<?php
$username = $_POST["username"];
$password = $_POST["passwort"];
$password2 = $_POST["passwort2"];



if ($password == $password2)
   {
   $user_vorhanden = array();
   $passwort = md5($password);


   $userdatei = fopen ("user.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 <br> <a href=\"eintragen.html\">zurück</a>";
      }

   else
      {
      $userdatei = fopen ("user.txt","a");
      fwrite($userdatei, $username);
      fwrite($userdatei, "|");
      fwrite($userdatei, $passwort);
      fwrite($userdatei, "\n");
      fclose($userdatei);
      echo "$username, deine Anmeldung war erfolgreich<br><a href=\"login.html\">zum Login</a>";
      }
   }

else
  {
  echo "Die Passwörter sind nicht identisch<br> <a href=\"eintragen.html\">zurück</a> ";
  }

?>
 
  • Login und Registrierung über Textdatei Beitrag #2
developr
developr
Teammitglied
Beiträge
336
Punkte Reaktionen
0
Das einlesen der Datei hat nicht richtig funktioniert, da keine neuen Zeilen angelegt wurden. Ich habe nun einfach ein ; als Trennzeichen zwischen den Datensätzen genommen. Außerdem hab ich die Datei nun anders eingelesen. Erst wird der gesamte Inhalt mit file_get_contents() gelesen, dann werden die Datensätze über das ; unterschieden und auch noch durch | getrennt. So funktioniert es jedenfalls bestens ;-).
PHP:
 <?

$username = $_POST["username"];
$password = $_POST["passwort"];
$password2 = $_POST["passwort2"];

if ($password == $password2) {
	$user_vorhanden = array();
	$passwort = md5($password);
	
	$userdatei = fopen ("patrick1704.txt","r");
	$userdatei = "patrick1704.txt";
	$userdatei_inhalt = file_get_contents($userdatei);
	$zeilen = explode(";",$userdatei_inhalt);
	foreach($zeilen AS $zeile) {
		$userdata = explode("|",$zeile);
		array_push($user_vorhanden,$userdata[0]);
	}

	/*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 <br> <a href=\"eintragen.html\">zurück</a>";
	} else {
		$userdatei = fopen ("patrick1704.txt","a");
		fwrite($userdatei, $username);
		fwrite($userdatei, "|");
		fwrite($userdatei, $passwort);
		fwrite($userdatei, ";");
		fclose($userdatei);
		echo "$username, deine Anmeldung war erfolgreich<br><a href=\"login.html\">zum Login</a>";
	}
	
} else {
	echo "Die Passwörter sind nicht identisch<br> <a href=\"eintragen.html\">zurück</a> ";
}

?>
 
  • Login und Registrierung über Textdatei Beitrag #3
P
patrick1704
Member
Beiträge
12
Punkte Reaktionen
0
danke für die hilfe.
aber ich hab das jetzt getestet aber ich glaube da ist was falsch:
PHP:
  zurück";     } else {         $userdatei = fopen ("patrick1704.txt","a");         fwrite($userdatei, $username);         fwrite($userdatei, "|");         fwrite($userdatei, $passwort);         fwrite($userdatei, ";");         fclose($userdatei);         echo "$username, deine Anmeldung war erfolgreich
zum Login";     }      } else {     echo "Die Passwörter sind nicht identisch
 zurück "; }  ?>


das sehe ich genau so wie es hier steht.
oder muss ich da noch was ändern?
 
Zuletzt bearbeitet:
  • Login und Registrierung über Textdatei Beitrag #4
developr
developr
Teammitglied
Beiträge
336
Punkte Reaktionen
0
Bitte setze deinen PHP-Code in BB-Code um.

[php]Dein PHP Code[/php]
 
  • Login und Registrierung über Textdatei Beitrag #5
P
patrick1704
Member
Beiträge
12
Punkte Reaktionen
0
sorry schon geändert.
also:kannst du mir sagen was ich ändern muss?
 
  • Login und Registrierung über Textdatei Beitrag #6
developr
developr
Teammitglied
Beiträge
336
Punkte Reaktionen
0
Ups... ja.

PHP:
<?

$username = $_POST["username"];
$password = $_POST["passwort"];
$password2 = $_POST["passwort2"];

if ($password == $password2) {
    
    $user_vorhanden = array();
    $passwort = md5($password);
    
    $userdateiname = "user.txt";
    $userdatei_inhalt = file_get_contents($userdateiname);
    $zeilen = explode(";",$userdatei_inhalt);
    foreach($zeilen AS $zeile) {
        $userdata = explode("|",$zeile);
        array_push($user_vorhanden,$userdata[0]);
    }
 
    if (in_array($username,$user_vorhanden)) {
        echo "Username schon vorhanden <br> <a href=\"eintragen.html\">zurück</a>";
    } else {
        $userdatei = fopen ($userdateiname,"a");
        fwrite($userdatei, $username);
        fwrite($userdatei, "|");
        fwrite($userdatei, $passwort);
        fwrite($userdatei, ";");
        fclose($userdatei);
        echo "$username, deine Anmeldung war erfolgreich<br><a href=\"login.html\">zum Login</a>";
    }
    
} else {
    echo "Die Passwörter sind nicht identisch<br> <a href=\"eintragen.html\">zurück</a> ";
}

?>
 
  • Login und Registrierung über Textdatei Beitrag #7
P
patrick1704
Member
Beiträge
12
Punkte Reaktionen
0
vielen dank aber ich sehe immer noch genau:
PHP:
zurück";     } else {         $userdatei = fopen ($userdateiname,"a");         fwrite($userdatei, $username);         fwrite($userdatei, "|");         fwrite($userdatei, $passwort);         fwrite($userdatei, ";");         fclose($userdatei);         echo "$username, deine Anmeldung war erfolgreich
zum Login";     }      } else {     echo "Die Passwörter sind nicht identisch
 zurück "; }  ?>
Normal müsste doch ein anmeldeformular dort sein nicht?
warum wird es falsch angezeigt?
 
Thema:

Login und Registrierung über Textdatei

Oben Unten