kostenloser Webspace werbefrei: lima-city


Wert aus Variable mit Werten aus Textdatei vergleichen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Hallo zusammen.
    Ich habe ein Formular, in dem man einen Namen eintragen kann. Dieser Name soll in eine Textdatei geschrieben werden, aber nur, wenn der Name noch nicht in der Textdatei vorhanden ist. Also müsste man den eingetragenen Namen mit allen Namen also Zeilen aus der Textdatei vergleichen. Wie macht man das?

    Hier ist der Code, wie die Namen in die Textdatei eingetragen werden:

    <?php
    if (isset($_POST['absenden']) && isset($_POST['spitzname'])) {
    	$spitzname = $_POST['spitzname'];
    	$text = "$spitzname \r\n";
    	$text=nl2br($text);
            $datei=fopen("spieler.txt","a");
    	fputs($datei,$text);
    	fclose($datei);
    }
    ?>


    In der Textdatei stehen die eingetragenen Namen so:

    Franz <br />
    Dirk <br />
    Jürgen <br />
    .
    .


    Die Variable mit der die Namen aus der Textdatei verglichen werden müssen ist also $spitzname. Aber wie kann ich $spitzname mit jeder Zeile aus der Textdatei vergleichen? Würde mich freuen, wenn mir jemand helfen kann.
    Liebe Grüße
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Irgendwie riecht diese Sache nach Sicherheitsproblem (XSS?)…

    Du könntest deine gesamte Datei in den Speicher laden und dann mit einer Suchfunktion nach dem Benutzernamen suchen.

    Warum nimmst du hierbei eigentlich kein MySQL? Das würde sich diese Frage von selbst erledigen und bei sehr vielen Benutzern wäre es auch schneller.
  4. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Der Login mit dem Spitznamen soll sozusagen ein Gastaccount für eine einmalige Verwendung sein und die Namen in der Textdatei sind die Namen von denen, die gerade Online sind, die ebenfalls für eine einmalige Verwendung online sind. Es geht halt nur darum das nicht zwei Leute gleichzeitig mit dem selben Namen online sind. Und mit MySQL kenn ich mich noch nicht aus.
  5. mysql ist wesentlich einfacher, sicherer und performanter.
    Wenn man später noch irgentetwas anderes machen soll, als sich einloggen, kommst du um mysql nicht herum
    wie immer empfiehlt sich folgende Seite http://www.google.de/?q=mysql+tutorial

    Beitrag zuletzt geändert: 12.12.2012 18:53:26 von unlikus
  6. Ein Beispielcode für eine MySQL-Abfrage:

    <?php
    #MySQL-Verbindung aufbauen (Eigene Benutzerdaten eingeben)
    if(!mysql_connect("localhost", "root", "")) {echo "Verbindung zum Datenbankserver fehlgeschlagen"; }
    if(!mysql_select_db("gastaccounts")) { echo "Datenbankauswahl gescheitert."; }
    
    #Variabeln empfangen (Ist zwar Umstaendlich, mache ich aber ganz gerne.)
    $spitzname = $_POST['spitzname'];
    $text = "$spitzname \r\n";
    $text=nl2br($text);
    
    
    #Deine Abfrage, ob Text in der Anfrage vorhanden ist
    if (isset($_POST['absenden']) && isset($spitzname)) {
    
    	#mysql-query, der abfraegt, ob der Benutzername bereits vergeben ist:
    	$result = mysql_query("SELECT spitzname FROM gastaccounts WHERE spitzname LIKE '$text'");
    
    		#Gibt die Anzahl der Zeilen mit dem Benutzernamen aus (>0 bedeutet, dass der Benutzername schon vorhanden ist)
    		$vergeben = mysql_num_rows($result);
    
    			#Abfrage, ob mehr als 0 Benutzer den Namen bereits benutzen
    			if($vergeben == 0) {
    				
    				#Der Fall, dass der Benutzer noch nicht verwendet wird
    				#Query, der in eine Datenbank den Benutzernamen eintraegt
    				$query = mysql_query("INSERT INTO gastaccounts (spitzname) VALUES ('$text')");
    					
    						#Abfrage, ob das Eintragen funktioniert hat
    						if(!$query) { echo "Eintrag fehlgeschlagen."; }
    				}
    			else {
    				#Der Fall, das der Benutzer schon existiert
    				echo "Dein Spitzname ist bereits vergeben.";
    				}
    			
    		
    }
    
    		
    ?>

    Habe probiert, deine Variabeln zu verwenden
    Ungetestet. Würde dir auch empfehlen, das Vorhaben mit MySQL umzusetzen, im Endeffekt ist es schneller und simpler zu verwalten.
    Falls du dich dafür entscheiden solltest, Copy'n'Paste bringt dir zum lernen nichts, am besten, du suchst dir ein Projekt wie dieses und googelst dir einfach die Funktionen, die du brauchst.

    Grüße :prost:
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!