steffen: variablenzuweisung funktioniert nicht

Hi,

im folgenden Code geht es um die Variable $emailcheck. Dieser Code funktioniert auch!

$emailcheck=preg_match("!^\w[\w|.|-]+@\w[\w|.|-]+.[a-zA-Z]{2,4}$!",$email);
        login_db();
        $abfrage=mysql_query("SELECT Email FROM user WHERE Email = "". strtolower($email) ."" ");
        if($result=mysql_num_rows($abfrage) or !$vorname or !$nachname or !$emailcheck){
         if($result){
   echo "Diese eMail wird bereits genutzt!";
  }elseif(!$emailcheck){
   echo "<p>".$emailcheck."Geben Sie eine korrekte eMail ein!</p>";
  }
  if(!$vorname or !$nachname){
   echo "<p>Geben Sie bitte alle Daten ein!</p>";
  }
  echo "<br><br><a href="index.php">zurück</a>";
 }

Leider funktioniert es nicht wenn ich den emailcheck in die if()-Anweisung schreibe, also so:

if($result=mysql_num_rows($abfrage) or !$vorname or !$nachname or !$emailcheck=preg_match("!^\w[\w|.|-]+@\w[\w|.|-]+.[a-zA-Z]{2,4}$!",$email)){

Demnach gibt er die Abfrage immer aus

if(!$emailcheck){

Wieso funktioniert das nicht?

  1. Hi steffen,

    if($result=mysql_num_rows($abfrage) or !$vorname or !$nachname or !$emailcheck=preg_match("!^\w[\w|.|-]+@\w[\w|.|-]+.[a-zA-Z]{2,4}$!",$email)){

    Abgesehen davon, dass ich das total unleserlich finde, machs doch so:

    if($result=mysql_num_rows($abfrage) or !$vorname or !$nachname or !preg_match("!^\w[\w|\.|\-]+@\w[\w|\.|\-]+\.[a-zA-Z]{2,4}$!",$email))  
    {
    

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Die FlatBox 0.3 mit Dokumentation ist da!
    Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)
    1. Hi Dennis,

      sorry weiß nich wie das so farbig geht.

      Da ich aber nochmal den emailcheck weiter unten brauche dachte ich mach ich es gleich in eine Variable, damit ich nicht wieder alles schreiben muss (ob das auch rechenleistung spart weiß ich nich)

      mfg steffen

      1. hi,

        sorry weiß nich wie das so farbig geht.

        Dazu hättest du nur in der textarea mal das voreingefügte Zitat von Dennis' Beitrag anschauen müssen.

        Da ich aber nochmal den emailcheck weiter unten brauche dachte ich mach ich es gleich in eine Variable, damit ich nicht wieder alles schreiben muss (ob das auch rechenleistung spart weiß ich nich)

        Warum machst du ihn dann nicht gleich vorher, und speicherst dir die Rückgabe in einer Variablen - die du dann sowohl in deiner IF-Abfrage, als auch "weiter unten" benutzt?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi wahsaga,

          so hab ich es ja jetzt, aber frage mich nur wieso es nich klappt, wenn ich es in der if-anweisung schreibe

          mfg

          1. Hi steffen,

            so hab ich es ja jetzt, aber frage mich nur wieso es nich klappt, wenn ich es in der if-anweisung schreibe

            Es würde klappen, wenn du es so schreiben würdest:

            if(($variable = preg_match(...)) !== false)

            vermutlich würde auch das hier funktionieren:

            if(!($variable = preg_match(...)))

            Du musst du Zuweisung halt nochmal klammern.

            MfG, Dennis.

            --
            Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
            Die FlatBox 0.3 mit Dokumentation ist da!
            Ich finde, der IE ist eine super Software. Nur eben nicht als Browser. (Manuel B.)
            1. echo $begrüßung;

              vermutlich würde auch das hier funktionieren:
              if(!($variable = preg_match(...)))
              Du musst du Zuweisung halt nochmal klammern.

              "Obwohl ! einen höheren Rang gegenüber = hat, erlaubt es Ihnen PHP immer noch ähnliche Ausdrücke wie den folgenden zu schreiben: if (!$a =foo()).In diesem Ausdruck wird die Ausgabe von foo() der Variablen $a  zugewiesen."

              Nicht dass ich das begrüßen würde, aber so ist es nun mal.

              echo "$verabschiedung $name";

              1. echo $begrüßung;

                ich will ja nicht kleinlich sein aber das geht so nicht.
                Kein ö, ä, ü und ß in variabeln.

                Aber ich gehe mal sicher davon aus das du das weisst.

                Wenn ich schon dabei bin unnütze kommentare zu schreiben, muss
                ich noch sagen du müsstest die variabeln noch initialisieren.

                grüße torben

                1. echo $begrüßung;

                  ich will ja nicht kleinlich sein aber das geht so nicht.
                  Kein ö, ä, ü und ß in variabeln.

                  Aber ich gehe mal sicher davon aus das du das weisst.

                  Nein, das wäre mir neu.

                  echo "$verabschiedung $name";