Bedingung in IF Funktion einbauen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bedingung in IF Funktion einbauen?

    Ich habe folgenden Code:

    PHP-Code:
    $sql mysql_query("SELECT * FROM {$prefix}pages WHERE url = '$url'");
        if (
    mysql_num_rows($sql) > 0){
         
            
    $error_duplication true;
        }else{
            if (
    strlen($title) < || strlen($title) > 100) { $error_variables true$errors["title"] = true; };
            if (
    strlen($description) < 40 || strlen($description) > 500) { $error_variables true$errors["description"] = true; };
            if (
    strlen($keywords) < 20 || strlen($keywords) > 200) { $error_variables true$errors["keywords"] = true; };
            if (
    strlen($email) < || strlen($email) > 200) { $error_variables true$errors["email"] = true; };
            if (
    strlen($adresse) < || strlen($adresse) > 200) { $error_variables true$errors["adresse"] = true; };
            if (
    strlen($telefon) < || strlen($telefon) > 30) { $error_variables true$errors["telefon"] = true; };
            if (
    strlen($telefax) < || strlen($telefax) > 30) { $error_variables true$errors["telefax"] = true; };
            if (
    strlen($bild) < || strlen($bild) > 200) { $error_variables true$errors["bild"] = true; };
            if (
    strlen($url) < 0) { $error_variables true$errors["url"] = true; };
            if (!
    $error_variables){
                
    mysql_query("INSERT INTO {$prefix}pages (url,title,description,keywords,email, adresse, telefon, telefax, bild, accepted,ip,category) VALUES ('$url','$title','$description','$keywords','$email','$adresse','$telefon','$telefax','$bild','n','".getenv("REMOTE_ADDR")."',$c)");
            }; 
    ich möchte nun hier irgendwie hinzufügen, dass wenn der Tabellenwert bei 'url' "http://" ist kein Duplication-Error entsteht:

    PHP-Code:
        $sql mysql_query("SELECT * FROM {$prefix}pages WHERE url = '$url'");
        if (
    mysql_num_rows($sql) > 0){
         
            
    $error_duplication true
    Onlinespiele - Forensuchmaschine - A1GP - Städte-Portal

  • #2
    http://www.scripts-online.net/?scriptid=222

    Beschreibung:
    Mit strpos() kann man in einem String einen String suchen.
    Hier suchen wir "bs" in "tri tra tralala".
    bs nicht vorhanden ist , ist $pos = false
    if ($pos === false) <-- hier vergleicht man mit ===
    Quelltext:
    PHP-Code:
    <?
    $mystring = "tri tra tralala";

    $pos = strpos ($mystring, "bs");
    if ($pos === false) { echo "nicht gefunden";}
    else { echo "gefunden"; }


    ?>
    Mafia Browsergame - Scripts

    Wer glaubt, ein Christ zu sein, weil er die Kirche besucht, irrt sich. Man wird ja auch kein Auto, wenn man in eine Garage geht.
    Albert Schweitzer (14.01.1875 - 04.08.1965)

    Kommentar


    • #3
      geht sowas auch:

      if not ($pos === false) { echo "nicht gefunden";}
      Onlinespiele - Forensuchmaschine - A1GP - Städte-Portal

      Kommentar


      • #4
        ne wenn dann
        if ($pos !== false) { echo "nicht gefunden";}
        Mafia Browsergame - Scripts

        Wer glaubt, ein Christ zu sein, weil er die Kirche besucht, irrt sich. Man wird ja auch kein Auto, wenn man in eine Garage geht.
        Albert Schweitzer (14.01.1875 - 04.08.1965)

        Kommentar


        • #5
          Ich habe es so geändert aber es geht nicht.
          PHP-Code:
              $sql mysql_query("SELECT * FROM {$prefix}pages WHERE url = '$url'");
              if (
          mysql_num_rows($sql) > 0){
               
                  
          $error_duplication true;
              }else{
                  if (
          strlen($title) < || strlen($title) > 100) { $error_variables true$errors["title"] = true; };
                  if (
          strlen($description) < 40 || strlen($description) > 500) { $error_variables true$errors["description"] = true; };
                  if (
          strlen($keywords) < 20 || strlen($keywords) > 200) { $error_variables true$errors["keywords"] = true; };
                  if (
          strlen($email) < || strlen($email) > 200) { $error_variables true$errors["email"] = true; };
                  if (
          strlen($adresse) < || strlen($adresse) > 200) { $error_variables true$errors["adresse"] = true; };
                  if (
          strlen($telefon) < || strlen($telefon) > 30) { $error_variables true$errors["telefon"] = true; };
                  if (
          strlen($telefax) < || strlen($telefax) > 30) { $error_variables true$errors["telefax"] = true; };
                  if (
          strlen($bild) < || strlen($bild) > 200) { $error_variables true$errors["bild"] = true; };
                  if (
          strlen($url) < 0) { $error_variables true$errors["url"] = true; };
                  if (!
          $error_variables){
                      
          mysql_query("INSERT INTO {$prefix}pages (url,title,description,keywords,email, adresse, telefon, telefax, bild, accepted,ip,category) VALUES ('$url','$title','$description','$keywords','$email','$adresse','$telefon','$telefax','$bild','n','".getenv("REMOTE_ADDR")."',$c)");
                  };

          Das habe ich eingefügt:

              
          $mystring "http://";
              
          $pos strpos ($mystring"$url");
              if (
          $pos !== false) { 
                  
          $error_duplication false;}
              }; 
          Onlinespiele - Forensuchmaschine - A1GP - Städte-Portal

          Kommentar


          • #6
            strpos ist ungeeignet - findet ja alles, wo http:// vorkommt.
            besser:
            Code:
            $error_duplication=(bool)preg_match('|^[url]http://[/url]$|i', $url);
            und brich deinen code um!

            Kommentar


            • #7
              erstens heisst es IF Bedingung und nicht IF Funktion.
              Zweitens solltest Du die sql-Abfrage überhaupt nicht machen, wenn url=http:// ist
              Die Logik bis zum else-Zweig wird dadurch etwas komplizierter aber das bringst Du sicher hin.
              Hier ist ein Versuch.
              PHP-Code:
              if($url=='http://'$error_duplication=false;
              else {
                
              $sql mysql_query("SELECT * FROM {$prefix}pages WHERE url = '$url'");
                  if (
              mysql_num_rows($sql) > 0){    
                      
              $error_duplication true;
                  }else{
                      
              $error_duplication false;
                 }
              }

              if(
              $error_duplication ==false)  [editanstatt !=true ]
              {
                 ...
              all deine weiteren tests
                 
              ...dein INSERT

              Zuletzt geändert von jhaase; 13.08.2006, 21:18.

              Kommentar


              • #8
                strpos -- Find position of first occurrence of a string
                Mafia Browsergame - Scripts

                Wer glaubt, ein Christ zu sein, weil er die Kirche besucht, irrt sich. Man wird ja auch kein Auto, wenn man in eine Garage geht.
                Albert Schweitzer (14.01.1875 - 04.08.1965)

                Kommentar


                • #9
                  Original geschrieben von garyx7de
                  strpos -- Find position of first occurrence of a string
                  und genau darum ist diese funktion ungeeignet, wenn man herausfinden möchte, ob der string nur (ausschließlich) 'http://' ist.

                  @jhaase - die programmlogik habe ich mal so stehen gelassen, hätte zu lange gedauert, alles absurde aufzuzählen.
                  lustig fand ich aber auch: strlen($string) < 0 - frage mich, ob diese bedingung jemals greift

                  Kommentar


                  • #10
                    Original geschrieben von 3DMax
                    und genau darum ist diese funktion ungeeignet, wenn man herausfinden möchte, ob der string nur (ausschließlich) 'http://' ist.

                    @jhaase - die programmlogik habe ich mal so stehen gelassen, hätte zu lange gedauert, alles absurde aufzuzählen.
                    lustig fand ich aber auch: strlen($string) < 0 - frage mich, ob diese bedingung jemals greift
                    ich versteht deine aussage so das man es auch so machen könnten

                    if($url == 'http://'){
                    //
                    }
                    Mafia Browsergame - Scripts

                    Wer glaubt, ein Christ zu sein, weil er die Kirche besucht, irrt sich. Man wird ja auch kein Auto, wenn man in eine Garage geht.
                    Albert Schweitzer (14.01.1875 - 04.08.1965)

                    Kommentar


                    • #11
                      Original geschrieben von 3DMax
                      @jhaase - die programmlogik habe ich mal so stehen gelassen, hätte
                      zu lange gedauert, alles absurde aufzuzählen.
                      WAS hast du stehen gelassen - wessen Programmlogik??

                      Problem war ja bloss, dass seine if-Schleife einen sql-duplication error gibt, wenn
                      es keine url hat. Der Rest ist im, für den deutschsprachigen Raum, üblichen Niveau.

                      Vermutlich sind alle bisherigen Lösungen, inklusive meine, falsch. Er müsste, falls es
                      keine url hat, eine sql-NULL in die Datenbank eintragen. Weiss jemand, ob sich das
                      mit UNIQUE verträgt?
                      Zuletzt geändert von jhaase; 13.08.2006, 07:51.

                      Kommentar


                      • #12
                        Original geschrieben von jhaase
                        WAS hast du stehen gelassen - wessen Programmlogik??

                        Problem war ja bloss, dass seine if-Schleife einen sql-duplication error gibt, wenn
                        es keine url hat. Der Rest ist im, für den deutschsprachigen Raum, üblichen Niveau.

                        Vermutlich sind alle bisherigen Lösungen, inklusive meine, falsch. Er müsste, falls es
                        keine url hat, eine sql-NULL in die Datenbank eintragen. Weiss jemand, ob sich das
                        mit UNIQUE verträgt?
                        Teste es doch
                        Mafia Browsergame - Scripts

                        Wer glaubt, ein Christ zu sein, weil er die Kirche besucht, irrt sich. Man wird ja auch kein Auto, wenn man in eine Garage geht.
                        Albert Schweitzer (14.01.1875 - 04.08.1965)

                        Kommentar


                        • #13
                          PHP-Code:
                          if (strlen($adresse) < 
                          Kann mir mal jemand einen String zeigen, der dabei einen negativen Wert liefert?

                          Gruß
                          Uwe

                          Kommentar


                          • #14
                            Original geschrieben von uwe59
                            PHP-Code:
                            if (strlen($adresse) < 
                            Kann mir mal jemand einen String zeigen, der dabei einen negativen Wert liefert?
                            Man muss das im Zusammenhang sehen, es hat auch Abfragen der Art:
                            if (strlen($keywords) < 20 || strlen($keywords) > 200)

                            Insofern ist es entschuldbar oder sogar als Platzhalter erklärbar.

                            Kommentar


                            • #15
                              Original geschrieben von garyx7de
                              Teste es doch
                              Die Frage, ob es schon jemand weiss, braucht weniger Buchstaben und ist deswegen naheliegender. Im Durchschnitt über alle Fragen ist es effizienter, zuerst zu fragen und dann mit einer gewissen Wahrscheinlichkeit zu warten und mit einer
                              noch kleineren Wahrscheinlichkeit nochmals fragen oder auszuprobieren oder nie die Antwort zu bekommen.
                              (Markoff Wahrscheinlichkeiten und Erwartungswert etwa so:
                              Summe p^k * frage + (1-p)^n * probieren)

                              Kommentar

                              Lädt...
                              X