scorn: ereg()

Hut sei mit euch!
1. Ich gestehe, dass ich grad erst mit PHP angefangen habe.
2. Ich gestehe, dass ich nicht effektiv schreibe.
3. Ich hab nen Problem:
Ich kann eine Fehlermeldung nicht deuten, bzw. weiß nicht, was der Fehler ist.

============ mein Script ==== btw. soll eine Emailadresse in ein Textfile schreiben oder löschen, weiß nicht, ob man das überhaupt erkennen kann ===
<?php
if(isset($_POST['email'])) {
echo "<span style="color:red;">";
$email = $_POST['email'];
$email = trim($email);
if(isset($_POST['anmelden'])) {
$muster = "[1](.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}.{0,}[a-zA-Z0-9-]{3,}(.[a-zA-Z]{2,4}){1,2}$";
if(ereg($muster, $email) AND $email!="news@lett.er") {
$addys = fopen("newsletter.txt","a+");
fputs($addys,$email.";\n");
fclose($addys);
echo "Du wirst von nun an von uns belästigt!";
}
else {
echo "Mailadresse nicht korrekt, oder nicht geändert!";
}
}
if(isset($_POST['abmelden'])) {
$addys = file("newsletter.txt");
$inhalt = "";
$fund = "nein";
foreach ($addys as $temp) {
if($temp!=$email) { $inhalt .= $temp . "\n"; }
else { $fund = "ja"; }
}
if($fund=="ja") {
echo "Wir lassen dich von nun an in Ruhe";
$addys = fopen("newsletter.txt","w");
fputs($addys,$inhalt);
fclose($addys);
}
elseif($fund=="nein") {
echo "Deine Emailadresse ist nicht hier vorhanden. <a href="newsinfo.html" target="_blank" onClick="window.open('newsinfo.html','Information','width=200,height=300';return false" title="Tips, wie du deine Emailadresse löschen kannst, obwohl es hier nicht klappt.">Info</a>"; }
}
echo "</span><br>";
}
echo "<input type="text" name="email" value="news@lett.er" size="20" class="eingabe" style="width:99%"><br>";
echo "<input type="submit" name="anmelden" value="Will!" class="button"> <input type="submit" name="abmelden" value="Nichmehr!" class="button">";
?>
====== soweit mein Script
hier die Fehlermeldung, die ich erhalte, wenn ich irgendeine vom Format her gültige Emailadresse eingebe oder einfach mit dem DefaultValue absende:
Warning: ereg() [function.ereg]: REG_EPAREN in /home/www/web22/html/sicha.php on line 22
Auf Zeile 22 steht folgendes (also in meiner Datei mit dem HTML-Zeug drumrum.):
if(ereg($muster, $email) AND $email!="news@lett.er") {
die ereg funktion sollte aber so in ordnung sein. Oder?
Online angucken, kann man sich das hier:
http://sv.stealthlogin.de/sicha.php

"any help appreciated"
    scorn


  1. _a-zA-Z0-9.| ↩︎

  1. Versuch mal, das AND durch && zu ersetzen und beobachte, was passiert.

    1. Hi!

      Versuch mal, das AND durch && zu ersetzen und beobachte, was passiert.

      Kurz & Knapp: Nix.
      D.h. nichts ändert sich. Ist AND nicht richtig, oder wieso empfiehlst du das? Ich hab das irgendwo aufgeschnappt, dass es AUCH so geht.

      1. Ich habe das bislang noch nicht aufgeschnappt und dachte, das könnte falsch sein. War es wohl aber doch nicht.

        1. Ich habe das bislang noch nicht aufgeschnappt und dachte, das könnte falsch sein. War es wohl aber doch nicht.

          Jo. Danke trotzdem fürs Hirn anwerfen.
          Auf der PHP-Homepage steht übrigens, dass meine ereg funktion syntaktisch richtig ist, kann es sein, dass ein Fehler im Muster ist? Ich bin nich so gut, im Fehlermeldungen interpretieren...

  2. Ich las:

    if(ereg($muster, $email) AND $email!="news@lett.er") {

    Die Klammern scheinen da nicht zu stimmen.

    Versuch mal:

    if ((ereg($muster, $email)) AND ($email!="news@lett.er")) {

    fastix®

    1. Hi!

      Die Klammern scheinen da nicht zu stimmen.

      Wieso, muss man klammern?
      Bringt nix, selbe Reaktion auf selbe Aktion...
      Danke..

      1. Bei mir heisst die Fehlermeldung:

        Warning: ereg() [function.ereg]: REG_EPAREN: parentheses not balanced in c:\apache\htdocs\forum_server\test.php on line 5

        Also stimmt da was nicht.

        fastix®

        1. Hallo!

          Also stimmt da was nicht

          Wo? Wie gesagt, ich bin nich gut im Fehlermeldungen interpretieren...
          Ich dachte es liegt am Muster?!

          1. Es muss eigentlich auch am Muster liegen, denn mit einem anderen Muster funktioniert es.
            Kann es sein, dass im Muster was falsch geschrieben ist?
            Dass es am Muster liegt hatte ich eigentlich schon geschrieben, is aber scheinbar nicht angekommen..
            O-Ton Ich selbst:
            Ich bin mittlerweile zu dem Schluß  gekommen, dass der Hase irgendwo im Muster liegt, ich kenn mich aber nicht damit aus, ehrlich gesagt, habe ich das Muster aus einem Buch.
            $muster = "[1](.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}.{0,}[a-zA-Z0-9-]{3,}(.[a-zA-Z]{2,4}){1,2}$";


            1. _a-zA-Z0-9.| ↩︎

            1. $muster = "[1](.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}.{0,}[a-zA-Z0-9-]{3,}(.[a-zA-Z]{2,4}){1,2}$";

              Ja, das wird am Muster liegen.

              Ich hab im PHP- Manual folgendes gefunden:

              <?php
              if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
                  echo "$regs[3].$regs[2].$regs[1]";
              } else {
                  echo "Invalid date format: $date";
              }
              ?>

              Das kannst Du umbauen...

              fastix®


              1. _a-zA-Z0-9.| ↩︎

              1. Hi,
                hab wie gesagt den Fehler gefunden (im Muster)..
                Jetzt versuch ich noch den Rest zum Laufen zu kriegen...
                Aber das mach ich erstmal selbst.

                Danke,
                scorn

                1. Pardon. Jetzt hab ich Mist kopiert und gepostet.

                  http://man.phpschool.com/manual/en/function.ereg.php

                  Schau mal da nach. Ziemlich weit unten findet sich was...

                  fastix®

                  1. Is ja auch egal, weil es ja jetzt auch so funktioniert...

  3. Hallo,
    es war das böse Muster...
    $muster = "[1](.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}.){0,}[a-zA-Z0-9-]{3,}(.[a-zA-Z]{2,4}){1,2}$";
    Muss es richtig heißen.
    So. Jetzt klappt alles wie es klappen kann.


    1. _a-zA-Z0-9- ↩︎