Hanfsamen Tinte: Registrierungsfilter mit Textdatei

Guten Tag,

ich schreibe gerade ein Skript welches leider nicht funktioniert, es sollte eigentlich die Datei mit folgendem Syntax durchforsten und überprüfen ob der Benutzer nach den Regeln der Datei registrierungsberechtigt ist.

  
#  
# Alles Kommentar und eventuelle Beschreibung  
#  
#  
  
# Mit @ soll er allen die mit @xy.de enden erlauben sich zu registrieren  
@domain.de  
  
# Falls das nicht klappt soll er überprüfen ob es nicht nach dem ! mit #einer Direktfreigabe funktioniert  
!test@domain.de  
!check@check.de  

So und der PHP-Code sieht so aus:

  
 // Zuerst öffne ich die Datei mit den User Registrierungsrechten und lese sie aus!  
 $regrulesfile = './includes/regrechte.rlst';  
  
 // Die Datei öffnen  
 $fh = fopen($regrulesfile, "r");  
  
 // Lese ein  
 while ($line = fgets($fh, 1000))  
 {  
  // Die Datei habe ich jetzt Zeilenweise also checken ersteinmal ob es eine Kommentarzeile (#) ist  
  $kommentar = substr($line, 0, 1);  
  
  if ($kommentar == '#')  
  {  
   // Tue nichts es ist bloß ein Kommentar ERGO muss er nichts tun  
  }  
  else if ($kommentar == '@')  
  {  
   // So hier mal nach einer Domainfreigabe abchecken  
   $line = trim($line);  
  
   // Zu Kleinholz machen ;-)  
   $line = strtolower($line);  
  
   // Überprüfe ob jetzt eine Domainfreigabe vorkommt  
   if (substr_count($email,$line) == 1)  
   {  
    // Ja wir haben eine Domainfreigabe  
    die("Domain ist frei!!!!"); // die für DEBUGZWECKE eingesetzt!  
   }  
  
   // Ansonsten mache einfach weiter  
  }  
  else if ($kommentar == '!')  
  {  
   // Checke ob die E-Mail explizit freigegeben ist  
   $line = trim($line);  
  
   $line = strtolower($line);  
  
   if ($line == $email)  
   {  
    // Ja wir haben eine Freigabe  
    die("Domain ist frei !!!! Aber über direkte Freigabe!"); // die für DEBUGZWECKE eingesetzt  
   }  
  }  
  else  
  {  
   die("Du musst Mitglied im Club sein...blabla");  
  }  
  
 }  
  
 // Datei gelesen also Verbindung schließen ich habe was ich brauche  
 fclose($fh);  

  1. echo $begrüßung;

    ich schreibe gerade ein Skript welches leider nicht funktioniert, es sollte eigentlich die Datei mit folgendem Syntax durchforsten und überprüfen ob der Benutzer nach den Regeln der Datei registrierungsberechtigt ist.

    Möchtest du auch noch sagen, was genau nicht funktioniert? Hast du mal die Inhalte der Variablen und die Ergebnisse der Ausdrücke mit den von dir gewünschten Werten verglichen? An welcher Stelle kommt es zu Abweichungen, die du dir nicht erklären kannst?

    echo "$verabschiedung $name";

    1. Hallo,

      also ich kann mich eben mit jeder E-Mail Adresse registrieren was eigentlich nicht sein sollte er winkt mich sozusagen einfach blos durch.
      Und ich habe einfach mal alle wichtigen Werte überprüft und es funktioniert einfach nicht.

      echo $begrüßung;

      ich schreibe gerade ein Skript welches leider nicht funktioniert, es sollte eigentlich die Datei mit folgendem Syntax durchforsten und überprüfen ob der Benutzer nach den Regeln der Datei registrierungsberechtigt ist.

      Möchtest du auch noch sagen, was genau nicht funktioniert? Hast du mal die Inhalte der Variablen und die Ergebnisse der Ausdrücke mit den von dir gewünschten Werten verglichen? An welcher Stelle kommt es zu Abweichungen, die du dir nicht erklären kannst?

      echo "$verabschiedung $name";

      1. echo $begrüßung;

        also ich kann mich eben mit jeder E-Mail Adresse registrieren was eigentlich nicht sein sollte er winkt mich sozusagen einfach blos durch.

        Das ist immer noch zu ungenau.

        Und ich habe einfach mal alle wichtigen Werte überprüft und es funktioniert einfach nicht.

        In welchem Zweig deiner if-else-Konstruktion landest du? Warum landest du dort? Was ist in dem Fall der Inhalt von $kommentar? Welches Ergebnis erhältst du bei den anderen if-Anweisungen?

        Lass dir die beteiligten Variablen mit var_dump() ausgeben, das zeigt dir neben dem Inhalt auch die Länge (z.B. bei Strings) und den aktuellen Typ der Variablen an. Ebenso kann man var_dump() mit Ausdrücken füttern, dessen Ergebnis samt Typ es dann anzeigt.

        echo "$verabschiedung $name";