FreaX: Regulärer ausdruch grefit nicht?!

Hallo,

ich hab ein Problem und zwar habe ich einen regulären ausdruck, im ganzen so:
$bb = preg_replace('/\[code=([^ ]+).*\](.*)\[\/code\]/', '<span id="$1">$2</span>', $bb);

Allerdings grefit das so nicht, der code darüber der genau so aussieht schon:
$bb = preg_replace('/\[color=([^ ]+).*\](.*)\[\/color\]/', '<span style="color:$1;">$2</span>', $bb);

Ich versteh das ganze wirklich nicht... Eigentlich will ich nur Geshi miteinbauen...

Nebenbei, wenn ich via GET auf daten zugreife wo vorher z.b. stand:
echo "aaaa";
kommt bei mir da
echo \"aaaa\";

Ich könnt mir das schon zurechtschneiden, aber kann man dies vieleicht gleich verhindern? bzw warum passiert das?

Also danke schonmal
L.g.

  1. Hi!

    ich hab ein Problem und zwar habe ich einen regulären ausdruck, im ganzen so:
    $bb = preg_replace('/\[code]+).*\](.*)\[\/code\]/', '<span id="$1">$2</span>', $bb);

    Allerdings grefit das so nicht, der code darüber der genau so aussieht schon:
    $bb = preg_replace('/\[color=([^ ]+).*\](.*)\[\/color\]/', '<span style="color:$1;">$2</span>', $bb);

    Was genau soll er denn greifen?

    Nebenbei, wenn ich via GET auf daten zugreife wo vorher z.b. stand:
    echo "aaaa";
    kommt bei mir da
    echo \"aaaa\";

    Ich könnt mir das schon zurechtschneiden, aber kann man dies vieleicht gleich verhindern? bzw warum passiert das?

    Das sind die Magic Quotes. Ein PHP-Feature, um SQL-Injection zu verhindern, das aber an einer falschen Stelle im Verarbeitungsproess wirkt und damit Daten generell verunstaltet, auch wenn kein SQL erstellt werden soll. Dieses Feature ist mittlerweile abgekündigt. Schalte es am besten aus, oder mach seine Auswirkungen rückgängig und informiere dich, wie man gezielt Daten kontextgerecht behandelt.

    Lo!

    1. Hi!

      ich hab ein Problem und zwar habe ich einen regulären ausdruck, im ganzen so:
      $bb = preg_replace('/\[code]+).*\](.*)\[\/code\]/', '<span id="$1">$2</span>', $bb);

      Allerdings grefit das so nicht, der code darüber der genau so aussieht schon:
      $bb = preg_replace('/\[color=([^ ]+).*\](.*)\[\/color\]/', '<span style="color:$1;">$2</span>', $bb);

      Was genau soll er denn greifen?

      Hmm greift halt nicht, bekomme am ende immer noch die [code] blöcke angezeigt, und überall anders wird mein pseudo bb richtig ersetzt.

      Danke für die Magic Quotes info.

      l.g.

      1. Hi!

        ich hab ein Problem und zwar habe ich einen regulären ausdruck, im ganzen so:
        $bb = preg_replace('/\[code]+).*\](.*)\[\/code\]/', '<span id="$1">$2</span>', $bb);

        Allerdings grefit das so nicht, der code darüber der genau so aussieht schon:
        $bb = preg_replace('/\[color=([^ ]+).*\](.*)\[\/color\]/', '<span style="color:$1;">$2</span>', $bb);

        Was genau soll er denn greifen?

        Hmm greift halt nicht, bekomme am ende immer noch die [code] blöcke angezeigt, und überall anders wird mein pseudo bb richtig ersetzt.

        Nochmal: Worauf genau soll der Ausdruck greifen? Bitte gib ein oder mehrere Beispieldaten an. Und: Welche Aufgabe hat deiner Meinung nach das + und die schließende Klanmmer danach?

        Lo!

        1. Hi!

          ich hab ein Problem und zwar habe ich einen regulären ausdruck, im ganzen so:
          $bb = preg_replace('/\[code]+).*\](.*)\[\/code\]/', '<span id="$1">$2</span>', $bb);

          Allerdings grefit das so nicht, der code darüber der genau so aussieht schon:
          $bb = preg_replace('/\[color=([^ ]+).*\](.*)\[\/color\]/', '<span style="color:$1;">$2</span>', $bb);

          Nochmal: Worauf genau soll der Ausdruck greifen? Bitte gib ein oder mehrere Beispieldaten an. Und: Welche Aufgabe hat deiner Meinung nach das + und die schließende Klanmmer danach?

          Ok sorry, also ich habe (jetzt von einem GET Request, später aus einer DB) den Text, in dem Steht jetzt vieleicht sowas

          [code=php]  
          <?php  
           echo "asd";  
          ?>  
          
          ~~~[/code]  
            
          Nun soll aber alles zwischen den code blöcken genommen werden und weiterverarbeitet werden, jetzt einfach nur in ein span gesetzt, später mit Geshi (Syntax Higlight) über eine Funkion gesetzt werden.  
            
          Also so wie:  
          [b]Fett[/b]  
          Jetzt auch schon brav zu:  
          <b>Fett</b>  
          wird.  
            
          Jetzt funktioniert meine vorgehensweise immer! nur nicht bei den codeblöcken. Was ich mit den einzelnen ausdrücken meine weiss ich nicht ich hab das so gefunden und für mich umgeändert, aber wie gesagt es funktioniert ja auch sonst alles ausser das.  
            
          Dachte das code beispiel erklärt das schon verständlich genug aber ok, danke  
            
          l.g.
          
          1. Die codeblöcke sind verschwunden, sorry

            also so, nur mit eckigen klammern statt strichen.

            |code=php|
            <?php
            echo "asd";
            ?>
            |/code|

          2. Hi!

            $bb = preg_replace('/\[code]+).*\](.*)\[\/code\]/', '<span id="$1">$2</span>', $bb);

            Nochmal gefragt, weil du sie ignoriert hast: Welche Aufgabe hat deiner Meinung nach das + und die schließende Klammer danach? (Und das .*] danach?)

            Worauf genau soll der Ausdruck greifen?

            [ code]

            <?php
            echo "asd";
            ?>
            [ /code]

            (Leerzeichen hinzugefügt, damit das Forum die [ code]s nicht frisst.  
              
            Du möchtest also /\[code](.\*)\[\/code]/ suchen, dann schreib das doch so.  
              
              
            Lo!
            
            1. Hi!

              $bb = preg_replace('/\[code]+).*\](.*)\[\/code\]/', '<span id="$1">$2</span>', $bb);

              Nochmal gefragt, weil du sie ignoriert hast: Welche Aufgabe hat deiner Meinung nach das + und die schließende Klammer danach? (Und das .*] danach?)

              Keine ahnung, das wüsst ich wohl auch nur wenn ich des Thema reguläre ausdrücke studiert hätte.

              Worauf genau soll der Ausdruck greifen?

              [ code]

              <?php
              echo "asd";
              ?>
              [ /code]

              
              > (Leerzeichen hinzugefügt, damit das Forum die [ code]s nicht frisst.  
              >   
              > Du möchtest also /\[code](.\*)\[\/code]/ suchen, dann schreib das doch so.  
                
              Nja gut, aber  
              1\. geht das auch nicht.  
              2\. kann ich so die sprache nicht übergeben ([ code=php ] ... [ /code ])  
              3\. Hab ich das auch schon versucht.  
                
              Ich hätte mich auch sicher nicht einfach ans Forum gewannt wenn es sich so einfach lösen lassen würde. bzw ich noch nicht einiges versucht hätte.  
                
              Danke trotzdem  
              l.g.
              
              1. Hi!

                Nochmal gefragt, weil du sie ignoriert hast: Welche Aufgabe hat deiner Meinung nach das + und die schließende Klammer danach? (Und das .*] danach?)
                Keine ahnung, das wüsst ich wohl auch nur wenn ich des Thema reguläre ausdrücke studiert hätte.

                Mit der Einstellung bist du hier falsch. Das ist kein "Wir lösen dein Problem für dich"-Forum sondern eins das dir so helfen will, dass du dein Problem selbst lösen kannst. Dazu gehört der Wille, sich mit der Technik zu beschäftigen, ansonsten fehlt uns nämlich der Wille sich mit deinem Problem zu beschäftigen.

                Lo!

                1. Hey

                  Mit der Einstellung bist du hier falsch. Das ist kein "Wir lösen dein Problem für dich"-Forum sondern eins das dir so helfen will, dass du dein Problem selbst lösen kannst. Dazu gehört der Wille, sich mit der Technik zu beschäftigen, ansonsten fehlt uns nämlich der Wille sich mit deinem Problem zu beschäftigen.

                  Sorry ja, das versteh ich schon.
                  Ich bin nur gefrustet jetzt seit fast 24 Stunden an so einer kleinigkeit zu hängen... Reguläre ausdrücke sind ein Thema mit dem ich mich noch nicht wirklich tief ausernandergesetzt habe. Darum hab ich auch einfach Beispiele zu meinen Gunsten ausgeweitet.

                  Das Problem liegt aber offensichtlich nicht "nur" an dem Ausdruck, sonst sollte ja zumindest deine Variante Funktionieren. Andere Fehlerquellen kann es aber auch kaum geben.

                  function _bb($bb){  
                  	$bb = preg_replace('/\[b\](.*?)\[\/b\]/', '<b>$1</b>', $bb);  
                  	$bb = preg_replace('/\[code](.*)\[\/code]/', '<span>$1</span>', $bb);  
                  	$bb = preg_replace('/\[url=([^ ]+).*\](.*)\[\/url\]/', '<a href="$1">$2</a>', $bb);  
                  	$bb = preg_replace('/\n/', "<br/>\n", $bb);  
                  	echo $bb;  
                  }
                  

                  Mehr passiert da nicht... gehen tuts trotzdem nicht, aber alle anderen eben schon... Das ist mir einfach ein totales rätsel.

                  L.g.

                  1. Hi!

                    Ich bin nur gefrustet jetzt seit fast 24 Stunden an so einer kleinigkeit zu hängen... Reguläre ausdrücke sind ein Thema mit dem ich mich noch nicht wirklich tief ausernandergesetzt habe. Darum hab ich auch einfach Beispiele zu meinen Gunsten ausgeweitet.

                    Dann must du es aber auch richtig und mit Verstand machen. Wenn ich deine beiden Zeilen man direkt untereinander stelle und nur zur Verdeutlichung mal ein paar Leerzeichen einfüge ...

                    $bb = preg_replace('/[color=([^ ]+).*](.*)[/color]/', '<span style="color:$1;">$2</span>',  $bb);
                    $bb = preg_replace('/[code      ]+).*](.*)[/code]/', '<span id="$1">$2</span>', $bb);

                    ... solltest du sehen, dass du zu viel entfernt hast, auch wenn dir die Bedeutung der Regexp-Zeichen noch nicht klar ist.

                    Lo!

                    1. $bb = preg_replace('/[color=([^ ]+).*](.*)[/color]/', '<span style="color:$1;">$2</span>',  $bb);
                      $bb = preg_replace('/[code      ]+).*](.*)[/code]/', '<span id="$1">$2</span>', $bb);

                      ... solltest du sehen, dass du zu viel entfernt hast, auch wenn dir die Bedeutung der Regexp-Zeichen noch nicht klar ist.

                      Ich bin mir nicht ganz sicher wo du das Beispiel jetzt her hast, aber wie mir scheint frisst dieses Forum code stücke ^^

                      $bb = preg_replace('/\[color=([^ ]+).*\](.*)\[\/color\]/', '<span style="color:$1;">$2</span>', $bb);  
                      $bb = preg_replace('/\[ code=([^ ]+).*\](.*)\[\/code \]/', '<span>$1</span>', $bb);
                      

                      Und nochmal ohne code markierung von selfhtml
                      $bb = preg_replace('/[color=([^ ]+).*](.*)[/color]/', '<span style="color:$1;">$2</span>', $bb);
                      $bb = preg_replace('/[ code=([^ ]+).*](.*)[/code ]/', '<span>$1</span>', $bb);

                      Auch mit leerzeichen zur verdeutlichung, und man erkennt eben schön die absolute gleichheit...

                      l.g.

                      1. Hi!

                        $bb = preg_replace('/[color=([^ ]+).*](.*)[/color]/', '<span style="color:$1;">$2</span>',  $bb);
                        $bb = preg_replace('/[code      ]+).*](.*)[/code]/', '<span id="$1">$2</span>', $bb);

                        ... solltest du sehen, dass du zu viel entfernt hast, auch wenn dir die Bedeutung der Regexp-Zeichen noch nicht klar ist.
                        Ich bin mir nicht ganz sicher wo du das Beispiel jetzt her hast, aber wie mir scheint frisst dieses Forum code stücke ^^

                        Das war aus deinem Originalposting. Es ist richtig, dass dieses Forum hier [ code] selbst verwendet und deshalb ein Problem damit hat, wenn das jemand als Inhalt verwenden will und nicht nur zur Code-Auszeichnung. Außerdem gibt es keine Möglichkeit der Maskierung, so dass keine Interpretation stattfindet (hat mir grad eben der Entwickler bestätigt). Man kann lediglich ein Leerzeichen oder ähnliches zwischen [ und code scheiben. Aber wenn du in die Antwort-Textarea in den zitierten Text schaust, da steht das vom Poster geschriebene Original unverändert (geht natürlich nicht mehr, wenn das später Posting im Archiv gelandet ist). Wie dem auch sei ...

                        $bb = preg_replace('/[color=([^ ]+).](.)[/color]/', '<span style="color:$1;">$2</span>', $bb);

                        $bb = preg_replace('/[ code=([^ ]+).](.)[/code ]/', '<span>$1</span>', $bb);

                          
                        ... so sieht das schon eher aus, wie es sinnvoll ist. Die Frage ist jetzt nur, warum du nun im Ersatztext das id=... nicht mehr haben willst? Im Ausgangsposting war es noch drin. Und wenn es weg soll, ändert das aber nichts an der Nummerierung der Gruppierungen im Regulären Ausdruck (Gruppierungen werden mit runden Klammern eingeschlossen). Die erste Gruppe beginnt gleich nach dem ersten code= und enthält die Sprache. Die zweite Gruppe (.\*) enthält den Teil zwischen den beiden code-Tags, also den Programmcode, den du haben willst. Also musst du immer noch $2 nehmen, auch wenn du $1 (Sprachname) nicht mehr brauchst.  
                          
                        Wenn dich das jetzt noch nicht ans Ziel führt, beschreibe bitte mal genau den aktuellen Stand.  
                          
                          
                        Lo!
                        
                        1. Das war aus deinem Originalposting. Es ist richtig, dass dieses Forum hier [ code] selbst verwendet und deshalb ein Problem damit hat, wenn das jemand als Inhalt verwenden will und nicht nur zur Code-Auszeichnung. Außerdem gibt es keine Möglichkeit der Maskierung, so dass keine Interpretation stattfindet (hat mir grad eben der Entwickler bestätigt). Man kann lediglich ein Leerzeichen oder ähnliches zwischen [ und code scheiben. Aber wenn du in die Antwort-Textarea in den zitierten Text schaust, da steht das vom Poster geschriebene Original unverändert (geht natürlich nicht mehr, wenn das später Posting im Archiv gelandet ist). Wie dem auch sei ...

                          Ok, hier schonmal danke für deine ganze Hilfe & Info ^^

                          $bb = preg_replace('/[color=([^ ]+).](.)[/color]/', '<span style="color:$1;">$2</span>', $bb);

                          $bb = preg_replace('/[ code=([^ ]+).](.)[/code ]/', '<span>$1</span>', $bb);

                          
                          >   
                          > ... so sieht das schon eher aus, wie es sinnvoll ist. Die Frage ist jetzt nur, warum du nun im Ersatztext das id=... nicht mehr haben willst?  
                            
                          Ups ja ist nur dem Testen zum Opfer gefallen, wollte einfach alle möglichen fehlerquellen auschliesen und habe die ausgabe nur mehr aufs nötigste reduziert, am ende landet das ja auch in keiner span sondern in einer php funktion die das weiterverarbeitet, ich glaub mit preg\_replace\_callback, aber das ist momentan noch egal.  
                            
                          
                          > Im Ausgangsposting war es noch drin. Und wenn es weg soll, ändert das aber nichts an der Nummerierung der Gruppierungen im Regulären Ausdruck (Gruppierungen werden mit runden Klammern eingeschlossen). Die erste Gruppe beginnt gleich nach dem ersten code= und enthält die Sprache. Die zweite Gruppe (.\*) enthält den Teil zwischen den beiden code-Tags, also den Programmcode, den du haben willst. Also musst du immer noch $2 nehmen, auch wenn du $1 (Sprachname) nicht mehr brauchst.  
                          >   
                          
                          Jap, das ist mir eh auch klar. Trotzdem danke  
                            
                          
                          > Wenn dich das jetzt noch nicht ans Ziel führt, beschreibe bitte mal genau den aktuellen Stand.  
                            
                          Mein aktueller Stand ist eigentlich immer noch das selbe, nur tausende von versuchen später.  
                            
                          Um es mal Bildlich darzustellen:  
                          [paste/?do=post](http://seta.r00t.la/paste/?do=post)  
                          (Ist testbereit, und gibt die daten NUR weiter... ^^)  
                            
                          Die Form leitet dan auf die Selbe seite mit dem do präfix \_post weiter, dort steht nur das:  
                          `_bb($_GET['source']);`{:.language-php}  
                            
                          Die BB Funktion (diesmal mal im ganzen) sieht dan so aus:  
                          ~~~php
                          function _bb($source){  
                          	$bb = $source;  
                          	$bb = preg_replace('/\[b\](.*?)\[\/b\]/', '<b>$1</b>', $bb);  
                          	$bb = preg_replace('/\[i\](.*?)\[\/i\]/', '<i>$1</i>', $bb);  
                          	$bb = preg_replace('/\[u\](.*?)\[\/u\]/', '<u>$1</u>', $bb);  
                          	$bb = preg_replace('/\[s\](.*?)\[\/s\]/', '<s>$1</s>', $bb);  
                          	$bb = preg_replace('/\[small\](.*?)\[\/small\]/', '<small>$1</small>', $bb);  
                          	$bb = preg_replace('/\[big\](.*?)\[\/big\]/', '<big>$1</big>', $bb);  
                          	$bb = preg_replace('/\[center\](.*?)\[\/center\]/', '<center>$1</center>', $bb);  
                          	$bb = preg_replace('/\[color=([^ ]+).*\](.*)\[\/color\]/', '<span style="color:$1;">$2</span>', $bb);  
                          	$bb = preg_replace('/\[ code=([^ ]+).*\](.*)\[\/code \]/', '<span id="$1">$2</span>', $bb);  
                          	$bb = preg_replace('/\[bcolor=([^ ]+).*\](.*)\[\/bcolor\]/', '<span style="background-color:$1;">$2</span>', $bb);  
                          	$bb = preg_replace('/\[img\](.*?)\[\/img\]/', '<img src="$1" />', $bb);  
                          	$bb = preg_replace('/\[url=([^ ]+).*\](.*)\[\/url\]/', '<a href="$1">$2</a>', $bb);  
                          	$bb = preg_replace('/\[url\](.*)\[\/url\]/', '<a href="$1">$1</a>', $bb);  
                          	$bb = preg_replace('/\n/', "<br/>\n", $bb);  
                          	echo $bb;  
                          }
                          

                          Mal sehen wie viel davon richtig ankommt ^^ nja das war eigentlich das ganze... darum ist es mir auch so ein rätsel warum es nicht geht wo es doch eigentlich eh noch soooo simple ist...

                          Also danke nochmal,
                          l.g.

                          1. Hi!

                            Ups ja ist nur dem Testen zum Opfer gefallen, wollte einfach alle möglichen fehlerquellen auschliesen und habe die ausgabe nur mehr aufs nötigste reduziert, am ende landet das ja auch in keiner span sondern in einer php funktion die das weiterverarbeitet, ich glaub mit preg_replace_callback, aber das ist momentan noch egal.

                            Behandelst du da das Ergebnis vor dem Einfügen mit htmlspecialchars()?

                            Um es mal Bildlich darzustellen:
                            paste/?do=post

                            Da ist außer dem Magic-Quotes-Effekt nichts weiter zu sehen.

                            Die BB Funktion (diesmal mal im ganzen) sieht dan so aus:

                            Da sehe ich erst einmal nichts weiter, was das nicht bearbeitete Ergebnis anbelangt. Bei mir funktioniert sie jedenfalls, auch die MQs stören die Funktion nicht.

                            Zwei kleine Anmerkungen, die aber keinen Einfluss auf das Ergebnis haben:

                            $bb = $source;
                            $bb = preg_replace('/[b](.*?)[/b]/', '<b>$1</b>', $bb);

                            Das Umkopieren ist nicht nötig. Du kannst entweder direkt durchgängig mit $source statt $bb arbeiten oder in die erste weglassen und in der zweiten Zeile das zweite $bb durch $source austauschen.

                            $bb = preg_replace('/\n/', "<br/>\n", $bb);

                            Das bekommt man mit nl2br() und selbst mit einem str_replace() billiger hin.

                            Mal sehen wie viel davon richtig ankommt ^^ nja das war eigentlich das ganze... darum ist es mir auch so ein rätsel warum es nicht geht wo es doch eigentlich eh noch soooo simple ist...

                            Vielleicht steckt dein Fehler ja auch woanders. Bau mal ein paar Testausgaben ein, um zu sehen, was wann aufgerufen wird. Also
                            echo "bin jetzt hier/da/in _bb/sonstwo";

                            Lo!

                            1. Hey

                              Behandelst du da das Ergebnis vor dem Einfügen mit htmlspecialchars()?

                              Nein, täusche ich mich oder würde mir das nicht geposteten HTML Code zerstören?

                              Um es mal Bildlich darzustellen:
                              paste/?do=post

                              Da ist außer dem Magic-Quotes-Effekt nichts weiter zu sehen.

                              Wie meinst du das? Hast du Source durchbekommen?
                              oder bleibt bei dir eh auch das [ code ] drumherum stehen? (was es ja eben nicht sollte)

                              Die BB Funktion (diesmal mal im ganzen) sieht dan so aus:

                              Da sehe ich erst einmal nichts weiter, was das nicht bearbeitete Ergebnis anbelangt. Bei mir funktioniert sie jedenfalls, auch die MQs stören die Funktion nicht.

                              Zwei kleine Anmerkungen, die aber keinen Einfluss auf das Ergebnis haben:

                              $bb = $source;  
                              $bb = preg\_replace('/\[b\](.\*?)\[\/b\]/', '<b>$1</b>', $bb);  
                              

                              Das Umkopieren ist nicht nötig. Du kannst entweder direkt durchgängig mit $source statt $bb arbeiten oder in die erste weglassen und in der zweiten Zeile das zweite $bb durch $source austauschen.

                              Korrigierst mir da schon Fehler an die ich noch nicht mal gedacht hab xD
                              ja das hab ich nur für dawei so gmacht... ^^

                              $bb = preg\_replace('/\n/', "<br/>\n", $bb);  
                              

                              Das bekommt man mit nl2br() und selbst mit einem str_replace() billiger hin.

                              Und das hab ich dawei einfach so lassen, das es bessere möglichkeiten gibt is mir schon klar ^^

                              Mal sehen wie viel davon richtig ankommt ^^ nja das war eigentlich das ganze... darum ist es mir auch so ein rätsel warum es nicht geht wo es doch eigentlich eh noch soooo simple ist...

                              Vielleicht steckt dein Fehler ja auch woanders. Bau mal ein paar Testausgaben ein, um zu sehen, was wann aufgerufen wird. Also
                              echo "bin jetzt hier/da/in _bb/sonstwo";

                              Hab ich auch schon durch, bekomme überall den gewünschten Output nur eben wieder beim code element nicht...

                              l.g.

                              1. Hi!

                                Behandelst du da das Ergebnis vor dem Einfügen mit htmlspecialchars()?
                                Nein, täusche ich mich oder würde mir das nicht geposteten HTML Code zerstören?

                                Im Gegenteil. Das würde dafür sorgen, dass er auf der Webseite ordentlich angezeigt und nicht vom Browser aufgrund von <tag>-ähnlichen Sequenzen und anderen HTML-Sonderzeichen weginterpretiert wird.

                                paste/?do=post
                                Da ist außer dem Magic-Quotes-Effekt nichts weiter zu sehen.
                                Wie meinst du das? Hast du Source durchbekommen?
                                oder bleibt bei dir eh auch das [ code ] drumherum stehen? (was es ja eben nicht sollte)

                                Letzteres. Es sieht so aus, als ob deine Funktion gar nicht aufgerufen wird oder anderweitig nichts macht.

                                Hab ich auch schon durch, bekomme überall den gewünschten Output nur eben wieder beim code element nicht...

                                Hast du auch die üblichen verdächtigen Debug-Mittel richtig eingestellt: error_reporting auf E_ALL, display_errors auf on? Tippfehler bei Variablennamen? Irgendwas muss bei dir anders sein, denn wenn ich deinen geposteten Code nehme und die forumsbedingten Leerzeichen entferne, kann ich kein Problem sehen.

                                Lo!