Wert aus Variable mit Werten aus Textdatei vergleichen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
absenden
benutzer
benutzername
code
datei
eingetragenen namen
einmalige verwendung
eintragen
erledigen
login
machen
spitzname
text
textdatei
url
verbindung
vergeben
vergleichen
zeile
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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. -
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.
-
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 -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage