Tach!
ich versuche derzeit eine Registrierung zu erstellen, die wenn sie erfolgreich ist, ein Textdokument für den registrierten Account erstellt, in dem die Infos zu dem Account gespeichert werden etc.
Hier ist der Ausschnitt zu meiner Sicherstellung, dass eine E-Mail Adresse nur einmal genutzt wird. [...]
Bin noch sehr neu bei diesem Thema und auch unerfahren^^. Kann also sein, dass das Prinzip völliger Mist ist. Ich habe auch von MySQL gelesen. Wird solch eine Datenbank eher genutzt als so ein Prinzip, wie ich es hier geübt habe?
Ja, oder ein anderes DBMS, beispielsweise SQLite. Da sind solche Dinge wie Verhinderung doppelter Werte bereits eingebaut - nebst den ganzen anderen Sachen, wie Selektieren in allen Lebenslagen.
Auf jeden Fall funktioniert mein Script nicht. Kommen keine Fehlermeldung,
Wieweit bist du mit dem Debugging? Wo genau ist denn in den Variableninhalten und Funktionsergebnissen etwas anderes enthalten als du erwartest? Debugging ist meist nervig, aber integraler Bestandteil der Programmierung. Du musst damit umgehen können. Baue var_dump()-Aufrufe ein, um dir Variableninhalte anzeigen zu lassen. Willst du wissen, ob das Programm hierlang oder dalang rennt, baue Ausgaben in if- und else-Zweige ein, die dir das anzeigen (alternativ: das Bedingungsausdrucksergebnis mit var_dump() anzeigen lassen).
$addressee = $_POST["email"]; //die eingegebene Adresse auf der Registrierungsseite
Immer wieder (un)gern gesehen: das reine Umkopieren in einfache Variablen. Das ist nicht weiter sinnvoll, nimm doch gleich $_POST["email"].
$scanned_directory = array_diff(scandir($path), array('..', '.'));
$string = implode ($scanned_directory);
Was hast du nun in $string (ein übrigens nicht sehr aussagekräftiger Variablennanme) drinstehen?
(Und: glob() liest Verzeichnisse ohne die ./.. mitzuliefern.)
$open = fopen ("accounts/ger/$string", "r");
Und was bezweckst du mit der Dateinamensuppe in fopen(), das gern einen einzelnen Dateinamen haben möchte?
$emailexists = "/fread ($open, "8000")/";
$findemail = preg_match ($emailexists, "email: $addressee");
Die Syntax eines Funktionsaufrufs als Suchmuster für einen regulären Ausdruck? Ich kann dir schonmal sagen, dass der Inhalt von $emailexists nur unter ziemlich seltenen Umständen auf den Suchtext "email: $addressee" passt. In anderen Worten: das ist, wie du selbst sagtest, Mist.
Für einfache Vergleiche braucht man keine regulären Ausdrücke, da reicht ein simples ==. Dein Problem ist aber, dass dir (derzeit noch) das Verständnis fehlt, was fopen() und fread() macht. Wenn du hier weitermachen willst und doch nicht mit SQL anfangen willst, nimm lieber file_get_contents().
dedlfix.