Adrian: Ich finde den Fehler nicht: ereg() und fwrite()

Hallo!

Ich habe folgenden Code:

  
<?php  
  $continuation=true;  
  //Überprüfung der Eingaben  
  if(ereg("/[a-zA-Z0-9]*/",$_POST["username"].$_POST["chatroom"])==true) {  
  $continuation=false;  
  echo "Fehler: Sie dürfen nur die Zeichen a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 verwenden für Ihren Username und den Chatroom!";  
  }  
  //IP Aufzeichnung  
  if($continuation==true) {  
  $userips_connection=fopen("userips.txt","a+b");  
  if(filesize("userips.txt")==0) {  
  $userips="Datum: ".date("d.m.Y").", Zeit: ".date("H:i:s").", Zeitzone des Clients: ".date("T").", IP: ".getenv("REMOTE_ADDR").", Username: ".$_POST["username"].", Chatroom: ".$_POST["chatroom"];  
  }  
  else {  
  $userips=fread($userips_connection,filesize("userips.txt"));  
  $userips=$userips.";Datum: ".date("d.m.Y").", Zeit: ".date("H:i:s").", Zeitzone des Clients: ".date("T").", IP: ".getenv("REMOTE_ADDR").", Username: ".$_POST["username"].", Chatroom: ".$_POST["chatroom"];  
  }  
  fwrite($userips_connection,$userips);  
  $userips_output_array=explode(";",$userips);  
  $userips_output=$userips_output_array[count($userips_output_array)-1];  
  echo "      Deine Daten sind erfolgreich aufgezeichnet worden:<br />\n      ".$userips_output;  
  fclose($userips_connection);  
  }  
 ?>  

Wenn ich nun in das vorherige Formularfeld eine Eingabe wie "Test" machen, dann geht er normal durch die erste Überprüfung.
Wenn ich aber zum Beispiel "Test<br>" (was ja vermieden werden soll) eingebe, dann geht er trotzdem durch die ereg() Überprüfung.
Ich habe die ereg() Funktion zum ersten Mal benutzt, als habt Nachsicht... ;)

Zweites Problem: Wenn ich das erste mal was in "userips.txt" eintrage, dann funktioniert alles, in der Datei steht dann ganz normal das, was ich eintragen wollte.
Wenn ich nun ein zweites Mal etwas hineinschreiben lasse, nachdem sie nicht mehr leer ist, dann steht das erste da, plus das zweite allerdings ohne ";" abgegrenzt und dann nochmal mit ";" abgegrenzt... !?

Könntet ihr mir bitte helfen? Ich weiss nicht was ich falsch mache, hab schon rumprobiert...

Mit freundlichen Grüßen,
Adrian

  1. Hi,

    if(ereg("/[a-zA-Z0-9]*/",$_POST["username"].$_POST["chatroom"])==true) {

    Du prüfst hier, ob die beiden Parameter in ihrer Kombination mindestens einmal eine Ansammlung beliebig vieler Buchstaben und Ziffern besitzt. Keine sind übrigens auch beliebig viele. Mit anderen Worten: Die Prüfung trifft auf alle Strings zu, inklusive dem Leerstring.

    Wenn ich nun ein zweites Mal etwas hineinschreiben lasse, nachdem sie nicht mehr leer ist, dann steht das erste da, plus das zweite allerdings ohne ";" abgegrenzt und dann nochmal mit ";" abgegrenzt... !?

    Bitte wem?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo Adrian,

    Ich habe die ereg() Funktion zum ersten Mal benutzt, als habt Nachsicht... ;)

    Du hast also die Funktionen zu regulären Ausdrücken gefunden, das ist doch schon mal was.

    //Überprüfung der Eingaben
      if(ereg("/[a-zA-Z0-9]*/",$_POST["username"].$_POST["chatroom"])==true) {
    Wenn ich nun in das vorherige Formularfeld eine Eingabe wie "Test" machen, dann geht er normal durch die erste Überprüfung.
    Wenn ich aber zum Beispiel "Test<br>" (was ja vermieden werden soll) eingebe, dann geht er trotzdem durch die ereg() Überprüfung.

    Äh ja, es werden erlaubte Zeichen gefunden, also ist das Ergebnis wahr. In Wirklichkeit suchst Du die nicht erlaubten Zeichen. Wenn das Ergebnis dann falsch ist, wurden nur erlaubte verwendet.

    Schau dir in SELFHTML im Abschnitt Reguläre Ausdrücke für einzelne Zeichen die Beispiele 18 und 19 an, lies die Erklärung dazu (letzter Absatz). So könntest Du Dein Ziel erreichen.

    Freundliche Grüße

    Vinzenz

    1. hallo Vinzenz,

      Du hast also die Funktionen zu regulären Ausdrücken gefunden, das ist doch schon mal was.

      Ja. Allerdings würde ich noch auf die Aussage "Die Funktion preg_match(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg()" aus dem Manual aufmerksam machen wollen.

      Schau dir in SELFHTML im Abschnitt Reguläre Ausdrücke für einzelne Zeichen die Beispiele 18 und 19 an

      Das kann zwar hilfreich sein, hier ist es aber vielleicht günstiger, auch wieder auf das entsprechende Kapitel im PHP-Manual zu verweisen.

      Aber BTW: molily hat mit Javascript eine Inhaltsdiskussion zu SELFHTML 9 angeschoben. Mir schwebt nun sowieso vor, für SELHTML 9 für das Thema "Reguläre Ausdrücke" ein eigenes (Unter-)Kapitel vorzuschlagen. Der Grund ist einfach: Es gibt sie in Perl, PHP (da soll ja ein neues Kapitel hinzukommen) und in Javascript - sowie in einigen anderen in SELFHTML nicht behandelten Sprachen. Geringfügige Unterschiede sind für die Zuordnung zu einem Kapitel eigentlich vernachlässigbar, müssen gegebenenfalls in einer Fußnote auf der Seite erwähnt werden. Wäre das ein "redaktioneller Vorschlag" für SELFHTML 9?

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      http://www.christoph-schnauss.de
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hallo Christoph,

        Aber BTW: molily hat mit Javascript eine Inhaltsdiskussion zu SELFHTML 9 angeschoben. Mir schwebt nun sowieso vor, für SELHTML 9 für das Thema "Reguläre Ausdrücke" ein eigenes (Unter-)Kapitel vorzuschlagen. [...] Wäre das ein "redaktioneller Vorschlag" für SELFHTML 9?

        Ja, das erscheint mir sehr sinnvoll. Die Beispiele könnten die Ähnlichkeit (und ggf. Unterschiede) unterstreichen (gleiches Beispiel, verschiedene Sprachen).

        Freundliche Grüße

        Vinzenz

      2. Hallo Christoph,

        Mir schwebt nun sowieso vor, für SELHTML 9 für das Thema "Reguläre Ausdrücke" ein eigenes (Unter-)Kapitel vorzuschlagen.

        Diesen Gedanken gab es in Developer-Kreisen schon öfters, ebenso ein generelles Kapitel „Programmiertechnik“ zu gestalten, in dem man in allen in v9 zu dokumentierenden Sprachen gleiche Merkmale wie OOP oder eben auch RegExps zu behandeln. Der Nachteil liegt aber auf der Hand, SELFHTML ist ein Einsteigerwerk, das u.a. auch deswegen beliebt ist, weil man die Beispiele direkt nehmen und modifizieren kann. Ein theorielastigerer Ansatz ist zwar sauberer, ästhetischer und kann motivierteren Leutchen auf längere Sicht mehr helfen, hat aber auch eine abschreckende Wirkung auf Einsteiger und absolute Anfänger.

        Tim

    2. Hallo!

      Ja ich hab sie gefunden... ;)
      Ok, das erste Problem wäre gelöst.
      Mit dem zweiten ist gemeint, dass ich beim ersten Mal auf Login klicken in der Datei "userips.txt" habe:
      Datum: 17.12.2005, Zeit: 19:26:51, Zeitzone des Clients: Westeuropäische Normalzeit, IP: 127.0.0.1, Username: Test, Chatroom: Test

      Und beim zweiten Mal, nachdem die Datei nicht mehr leer ist:
      Datum: 17.12.2005, Zeit: 19:26:51, Zeitzone des Clients: Westeuropäische Normalzeit, IP: 127.0.0.1, Username: Test, Chatroom: TestDatum: 17.12.2005, Zeit: 19:26:51, Zeitzone des Clients: Westeuropäische Normalzeit, IP: 127.0.0.1, Username: Test, Chatroom: Test;Datum: 17.12.2005, Zeit: 19:27:38, Zeitzone des Clients: Westeuropäische Normalzeit, IP: 127.0.0.1, Username: Test, Chatroom: Test

      Jetzt steht es insgesamt 3x drin und wenn ich das jetzt trenne dann habe ich wieder nur 2 Strings im Array stehen, da beim ersten Mal ein ";" fehlt:
      Datum: 17.12.2005, Zeit: 19:26:51, Zeitzone des Clients: Westeuropäische Normalzeit, IP: 127.0.0.1, Username: Test, Chatroom: Test[HIER FEHLT DAS ";"]Datum: 17.12.2005, Zeit: 19:26:51, Zeitzone des Clients: Westeuropäische Normalzeit, IP: 127.0.0.1, Username: Test, Chatroom: Test;Datum: 17.12.2005, Zeit: 19:27:38, Zeitzone des Clients: Westeuropäische Normalzeit, IP: 127.0.0.1, Username: Test, Chatroom: Test

      Mit freundlichen Grüßen,
      Adrian

      1. Hallo!

        lol, wo liegt das problem? hab ich was nicht gut erklärt? bitte antwortet, ich brauche das nämlich bald... ;)

        Mit freundlichen Grüßen,
        Adrian

        1. Hallo Adrian,

          lol, wo liegt das problem?

          ich hatte Dein zweites Problem vollständig überlesen.

          hab ich was nicht gut erklärt?

          Dein Quellcode ist nicht gerade sehr strukturiert dargestellt :-(
          Meine Fragen sind eher konzeptioneller Natur:

          Warum verwendest Du nicht für jeden Eintrag eine eigene Zeile?
          Wenn Du schon alles in eine einzelne Zeile schreibst, warum schließt Du dann nicht _jeden_ Eintrag mit einem Semikolon ab. Das erspart Dir irgendwelche Verrenkungen.

          Ansonsten würde ich Dir die einfachste Debug-Methode empfehlen: Gib die Zeichenkette aus, bevor Du sie in die Datei schreibst.

          bitte antwortet, ich brauche das nämlich bald... ;)

          das war hier noch nie ein relevantes Kriterium :-)
          Keiner ist hier zur Hilfe verpflichtet, keiner muss hier im Forum Supportfristen einhalten.

          Freundliche Grüße

          Vinzenz

          1. Hallo!

            Hallo Adrian,

            lol, wo liegt das problem?

            ich hatte Dein zweites Problem vollständig überlesen.

            Na denn... :)

            hab ich was nicht gut erklärt?

            Dein Quellcode ist nicht gerade sehr strukturiert dargestellt :-(

            Kein Wunder, bin ja auch PHP-Anfänger... ;)

            Warum verwendest Du nicht für jeden Eintrag eine eigene Zeile?

            Wie? Tue ich das nicht? Oder habe ich dich jetzt falsch verstanden? Gib mal bitte ein Beispiel.

            Wenn Du schon alles in eine einzelne Zeile schreibst, warum schließt Du dann nicht _jeden_ Eintrag mit einem Semikolon ab. Das erspart Dir irgendwelche Verrenkungen.

            Noch mehr Fragezeichen... :D Wie meinst du das?

            Ansonsten würde ich Dir die einfachste Debug-Methode empfehlen: Gib die Zeichenkette aus, bevor Du sie in die Datei schreibst.

            Hab ich schon probiert und daran kann ich leider keinen Fehler finden. :(

            bitte antwortet, ich brauche das nämlich bald... ;)

            das war hier noch nie ein relevantes Kriterium :-)
            Keiner ist hier zur Hilfe verpflichtet, keiner muss hier im Forum Supportfristen einhalten.

            Entschuldigung, war nicht so gemeint. Es war nur, dass ich das Projekt für unseren Clan zum Ausprobieren mache und damit eigentlich bis Weihnachten fertig sein wollte/sollte. -.-

            Mit freundlichen Grüßen,
            Adrian

            1. Hallo Adrian,

              Dein Quellcode ist nicht gerade sehr strukturiert dargestellt :-(
              Kein Wunder, bin ja auch PHP-Anfänger... ;)

              ich habe mir Deinen Code in Ruhe angeschaut und festgestellt, dass Du folgendes vorhast, die Notation ist in VMs eigenem Pseudo-Pseudocode gehalten :-)

              Überprüfe Benutzername und Chatroom auf nicht erlaubte Zeichen
                Wenn nicht erlaubte Zeichen verwendet wurden
                    Gebe eine Fehlermeldung aus
                Sonst
                    Hänge einen Eintrag an eine bestimmte Datei an
                    Informiere den Benutzer über diese Aktion
                Ende Wenn

              Warum verwendest Du nicht für jeden Eintrag eine eigene Zeile?
              Wie? Tue ich das nicht?

              Nein, Du fügst nirgendwo in Deine Textdatei Zeilenenden, siehe PHP-Handbuch ein.

              Über Konventionen zum Strukturieren von Quellcode kann man die schönsten Glaubenskriege führen, aber Du kannst Dir z.B. die PEAR Coding Standards anschauen.

              Bei meiner Codeformatierung im folgenden Abschnitt spielt auch die Darstellung im Forum eine kleine Rolle, daher z.B. nur zwei Leerzeichen Einrückung :-)

                
              // Ausgaben vorbereiten  
                
              // Fehlermeldung bei Verwendung unerlaubter Zeichen für  
              // den Benutzernamen und den Chatroom  
              $errormessage = 'Fehler: Sie dürfen nur die Zeichen '  
                      . 'a, b, c, d, e, f, g, h, i, j, k, l, m, '  
                      . 'n, o, p, q, r, s, t, u, v, w, x, y, z, '  
                      . 'A, B, C, D, E, F, G, H, I, J, K, L, M, '  
                      . 'N, O, P, Q, R, S, T, U, V, W, X, Y, Z, '  
                      . '0, 1, 2, 3, 4, 5, 6, 7, 8, 9 '  
                      . 'verwenden für Ihren Username und den Chatroom!'  
                
              // Benutzerdaten, die an die Logdatei angehängt werden  
              $userdata      = 'Datum: ' . date("d.m.Y")  
                      . ', Zeit: '                 . date("H:i:s")  
                      . ', Zeitzone des Clients: ' . date("T")  
                      . ', IP: '                   . getenv("REMOTE_ADDR")  
                      . ', Username: '             . $_POST["username"]  
                      . ', Chatroom: '             . $_POST["chatroom"]  
                      . "\n";                      // Zeilenende!  
                
              // Meldung, die der Benutzer über das Loggen seiner Daten erhält  
              $userinfo      = "      Deine Daten sind erfolgreich aufgezeichnet worden:<br />\n      "  
                      . $userdata;  
                
              // Logdatei  
              $filename      = "userips.txt";  
                
              // Prüfung auf unerlaubte Zeichen  
              // Verwendung von [link:http://www.php.net/manual/de/function.preg-match.php@title=preg_match()] statt [link:http://www.php.net/manual/de/function.ereg.php@title=ereg()],  
              // wie von Christoph und dem PHP-Handbuch empfohlen.  
              if(preg_match("/[^a-zA-Z0-9]*/", $_POST["username"].$_POST["chatroom"])) {  
                // mindestens ein unerlaubtes Zeichen wurde gefunden  
                // informiere den Benutzer darüber  
                echo $errormessage;  
              }  
              else {  
                // Öffne die Logdatei zum Anhängen  
                $fh = fopen($filename, 'a+');   # ja, Du kannst auch 'a+b' verwenden :-)  
                if(!$fh) {  
                  // Diesen Fehler müsstest Du geeignet behandeln :-)  
                  die("Diesen Fehler müsstest Du geeignet behandeln :-)\n");  
                }  
                
                // In einer Mehrbenutzerumgebung solltest Du an dieser Stelle  
                // versuchen, mit flock() einen exklusiven Schreibzugriff auf  
                // Deine Datei zu bekommen.  
                
                $write_ok = fwrite($fh, $userdata);  
                if ($write_ok) {  
                  // Anhängen hat geklappt, informiere den Benutzer  
                  echo $userinfo;  
                }  
                else {  
                  // Fehler beim Schreiben in die Datei passiert  
                  // müsste geeignet behandelt werden  
                }  
                
                [link:http://www.php.net/manual/de/function.fclose.php@title=fclose]($fh);  // Schliesse die Logdatei,  
                // wobei Du hier auch überprüfen solltest, ob die Aktion  
                // erfolgreich war, siehe Benutzerkommentare im PHP-Handbuch  
              }  
              
              

              Der Code ist noch lange nicht vorbildlich und insbesondere die Fehlerbehandlung noch sträflich vernachlässigt. Er sollte Dir einen Einblick geben, auf was Du beim Umgang mit Dateien achten musst. Jede Dateioperation kann prinzipiell fehlschlagen und Du solltest Dir überlegen, wie Du mit einem solchen Fehler am geschicktesten umgehst.

              Entschuldigung, war nicht so gemeint. Es war nur, dass ich das Projekt für unseren Clan zum Ausprobieren mache und damit eigentlich bis Weihnachten fertig sein wollte/sollte. -.-

              Na dann viel Erfolg dabei.

              Freundliche Grüße

              Vinzenz

              1. Hallo!

                Überprüfe Benutzername und Chatroom auf nicht erlaubte Zeichen
                  Wenn nicht erlaubte Zeichen verwendet wurden
                      Gebe eine Fehlermeldung aus
                  Sonst
                      Hänge einen Eintrag an eine bestimmte Datei an
                      Informiere den Benutzer über diese Aktion
                  Ende Wenn

                Voll erfasst, genauso wollte ich es haben. Danke. :)

                Warum verwendest Du nicht für jeden Eintrag eine eigene Zeile?
                Wie? Tue ich das nicht?
                Nein, Du fügst nirgendwo in Deine Textdatei Zeilenenden, siehe PHP-Handbuch ein.

                Oh, dann habe ich dich falsch verstanden, ich dachte du meinst die Umbrüche in der PHP-Datei...
                Stimmt, du hast recht, ist ziemlich unübersichtlich, jetzt wo ich mir deinen Code angeguckt habe. -.-

                [...]

                  
                Vielen Dank für die Mühe, das ist genau das was ich brauche. Mal gucken ob es funktioniert, wenn nich schreibe ich nochmal. :)  
                  
                
                > Der Code ist noch lange nicht vorbildlich und insbesondere die Fehlerbehandlung noch sträflich vernachlässigt. Er sollte Dir einen Einblick geben, auf was Du beim Umgang mit Dateien achten musst. Jede Dateioperation kann prinzipiell fehlschlagen und Du solltest Dir überlegen, wie Du mit einem solchen Fehler am geschicktesten umgehst.  
                  
                Jupp, mach ich und versuch ich mir zu merken für zukünftige Projekte. Was nicht ist das wird ja noch (hoffentlich)! ;)  
                  
                Mit freundlichen Grüßen,  
                Adrian
                
                1. Hallo!

                  Mal gucken ob es funktioniert, wenn nich schreibe ich nochmal. :)

                  Genau der Fall ist nu eingetreten.... :?

                  Hier nochmal der aktuelle Quellcode, ich habe für 'username' "Adrian" eingesetzt und für 'chatroom' "Entry"...

                    
                  <?php  
                    // Fehlermeldung bei Verwendung unerlaubter Zeichen für  
                    // den Benutzernamen und den Chatroom  
                    $errormessage_char = 'Fehler: Sie dürfen nur die Zeichen '  
                                    . 'a, b, c, d, e, f, g, h, i, j, k, l, m, '  
                                    . 'n, o, p, q, r, s, t, u, v, w, x, y, z, '  
                                    . 'A, B, C, D, E, F, G, H, I, J, K, L, M, '  
                                    . 'N, O, P, Q, R, S, T, U, V, W, X, Y, Z, '  
                                    . '0, 1, 2, 3, 4, 5, 6, 7, 8, 9 '  
                                    . 'für Ihren Usernamen und den Chatroom verwenden!<br /> '  
                                    . 'Außerdem müssen Sie mindestens drei Buchstaben '  
                                    . 'für den Usernamen und den Chatroom verwenden!<br />'  
                                    . "\n      ";  
                    // Fehlermeldung bei fehlgeschlagener Verbindung zu $filename  
                    $errormessage_open = 'Fehler: Es konnte keine Verbindung zur'  
                                    . "Logdatei hergestellt werden! \n      ";  
                    // Fehlermeldung bei fehlgeschlagenem Schreiben in $filename  
                    $errormessage_write = 'Fehler: Ihre Benutzerdaten konnten nicht in'  
                                    . "die Logdatei geschrieben werden! \n      ";  
                    // Fehlermeldung bei fehlgeschlagenem Schließen von $filename  
                    $errormessage_close = "Fehler: Die Logdatei konnte nicht geschlossen werden! \n      ";  
                    // Ausgabe eines Links nach Fehlermeldung, um zurückzukehren  
                    $errormessage_return = 'Klicke '  
                                    . '<a href="index.php" target="_top">hier</a> '  
                                    . "um zu \"Home\" zurückzukehren!\n";  
                    // Benutzerdaten, die an die Logdatei angehängt werden  
                    $userdata       = 'Datum: ' . date("d.m.Y")  
                                    . ', Zeit: '                 . date("H:i:s")  
                                    . ', Zeitzone des Clients: ' . date("T")  
                                    . ', IP: '                   . getenv("REMOTE_ADDR")  
                                    . ', Username: '             . $_POST["username"]  
                                    . ', Chatroom: '             . $_POST["chatroom"]  
                                    . " \n      ";  
                    // Meldung, die der Benutzer über das Loggen seiner Daten erhält  
                    $userinfo       = "      Deine Daten sind erfolgreich aufgezeichnet worden:<br />\n      "  
                                    . $userdata;  
                    // Logdatei  
                    $filename       = 'userips.txt';  
                    // Variable zum Überprüfen, ob weiter ausgeführt werden soll  
                    $continuation   = true;  
                    
                    // Prüfung auf unerlaubte Zeichen  
                    if(  
                    preg_match("/[^a-zA-Z0-9]*/", $_POST['username'].$_POST['chatroom'])==true or  
                    count($_POST['username'])<3 or  
                    count($_POST['chatroom'])<3  
                    ) {  
                      // Fehlerausgabe aufgrund von einer falschen Usereingabe  
                      echo $errormessage_char;  
                      $continuation = false;  
                    }  
                    else {  
                      $fh           = fopen($filename,'a+b');  
                      if(!$fh) {  
                        // Fehlerausgabe aufgrund von fehlgeschlagenem Verbindungsversuch  
                        echo $errormessage_open;  
                        $continuation = false;  
                      }  
                      else {  
                        // Schreibe Userdaten in die Logdatei  
                        $write_ok = fwrite($fh, $userdata);  
                        if(!$write_ok) {  
                          // Fehlerausgabe aufgrund von fehlgeschlagenem Schreibeversuch  
                          echo $errormessage_write;  
                          $continuation = false;  
                        }  
                        // Schließe Logdatei  
                        $close_ok = fclose($fh);  
                        if(!$close_ok) {  
                          // Fehlerausgabe aufgrund von fehlgeschlagenem Schließversuch  
                          echo $errormessage_close;  
                          $continuation = false;  
                        }  
                      }  
                    }  
                    
                    // Aktionen nach Überprüfung auf unerlaubte Zeichen und Festhalten der Userdaten  
                    if(!$continuation) {  
                      // Keine weiteren Aktionen, oben ist ein Fehler aufgetreten!  
                      // Ausgabe von Rückkehr Link  
                      echo $errormessage_return;  
                    }  
                    else {  
                      // Weitere Aktionen werden ausgeführt, oben ist kein Fehler aufgetreten!  
                    
                    
                    
                    }  
                    
                   ?>  
                  
                  

                  Ich finde den Fehler nicht...
                  Ausgegeben wird der Fehler $errormessage_char .

                  Mit freundlichen Grüßen,
                  Adrian

                  1. Hallo Adrian,

                    Hier nochmal der aktuelle Quellcode, ich habe für 'username' "Adrian" eingesetzt und für 'chatroom' "Entry"...

                    // Prüfung auf unerlaubte Zeichen
                      if(
                      preg_match("/[^a-zA-Z0-9]*/", $_POST['username'].$_POST['chatroom'])==true or
                      count($_POST['username'])<3 or
                      count($_POST['chatroom'])<3

                      
                    Du suchst [strlen()](http://www.php.net/manual/de/function.strlen.php) und nicht [count()](http://www.php.net/manual/de/function.count.php).  
                      
                    
                    > Ausgegeben wird der Fehler $errormessage\_char .  
                      
                    Das ist nicht verwunderlich :-)  
                      
                      
                    Freundliche Grüße  
                      
                    Vinzenz
                    
                    1. Hallo!

                      // Prüfung auf unerlaubte Zeichen
                        if(
                        preg_match("/[^a-zA-Z0-9]*/", $_POST['username'].$_POST['chatroom'])==true or
                        count($_POST['username'])<3 or
                        count($_POST['chatroom'])<3

                      
                      >   
                      > Du suchst [strlen()](http://www.php.net/manual/de/function.strlen.php) und nicht [count()](http://www.php.net/manual/de/function.count.php).  
                        
                      Okay, habe ich verändert, aber das gleiche Problem besteht immer noch... :?  
                        
                      Mit freundlichen Grüßen,  
                      Adrian
                      
                      1. Hallo Adrian,

                        preg_match("/[^a-zA-Z0-9]*/",

                        Hier ist der Übeltäter drin, diesen Fehler hab ich wunderbar kopiert :-(
                        Dabei hatte Dich (und alle anderen) Cheatah bereits im ersten Antwortposting hingewiesen.

                        Okay, habe ich verändert, aber das gleiche Problem besteht immer noch... :?

                        Entferne den "*". Und schau Dir nochmals den Abschnitt Reguläre Ausdrücke für einzelne Zeichen an, allererstes Beispiel.

                        Freundliche Grüße

                        Vinzenz

                        1. Hallo!

                          preg_match("/[^a-zA-Z0-9]*/",

                          wusste ich doch das daran irgendwas falsch ist... ^^
                          aber den abschnitt habe ich sowieso nicht ganz verstanden, den müsste ich mir vielleicht nochmal so richtig eingehend verinnerlichen, wenn ich das nochmal brauche, aber fürs erste reicht das erstmal... :)
                          und ich dachte schon [...]
                          ne ich lass es besser ;)

                          also nochmal vielen dank, falls wieder weitere Probleme auftreten, meld ich mich nochmal... -.-

                          Mit freundlichen Grüßen,
                          Adrian

                          1. Hallo!

                            also nochmal vielen dank, falls wieder weitere Probleme auftreten, meld ich mich nochmal... -.-

                            und es FUNKTIONIERT!!! Juhu :D

                            Vielen vielen Dank für die Hilfestellungen und die Geduld mit mir. -.-

                            Mit freundlichen Grüßen,
                            Adrian