Ankündigung

Einklappen
Keine Ankündigung bisher.

Ist String1 in String2?

Einklappen

Neue Werbung 2019

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

  • Ist String1 in String2?

    Hey.. ich möchte auf meiner Seite einen bestimmten Referrer Blocken, und dafür möchte ich überprüfen, ob "domain.de" in $_SERVER["HTTP_REFERER"]
    ist, aber es gibt scheinbar keine instr(str1, str2) Funktion..
    Gibt es sowas doch, oder muss ich es selber bauen?

  • #2
    int strpos ( string haystack, string needle [, int offset] )

    Kommentar


    • #3
      Supi, klappt
      Musste bissl rumwerken, aber es läuft..
      Falls jemand den code braucht:

      PHP-Code:
      <?
          $block = "blockurl"
          $pos = strpos($_SERVER["HTTP_REFERER"], $block);
          if (substr($_SERVER["HTTP_REFERER"], $pos, strlen($block)) == $block) {
              echo "<h2>Referrer geblockt!</h2>";
              die;
          }
      ?>

      Kommentar


      • #4
        Der Code ist zu umständlich den sollte niemand so verwenden!
        PHP-Code:
        <?php
        $block 
        'blockurl';
        if (
        strpos($_SERVER['HTTP_REFERER'], $block) === FALSE)
        {
            die(
        '<h2>Referer geblockt!</h2>');
        }
        ?>

        Kommentar


        • #5
          Hm.. es funktioniert nicht..

          Okay, die sache ist folgende: Ich habe ein kleines diebspiel gebaut, und jemand hat sich die freiheit genommen, den Link in einen Besuchertauscher zu stecken, und nun bekomme ich pro tag 1000 Besucher auf seinen Link, er kassiert tausend Punkte, und ich den Traffic...

          Wie kann ich ebesucher.de blocken?
          Das regt mich so auf...

          EDIT: Fehler gefunden, in Razors code war ein "===" wo aber ein "==" hinmuss :/

          Kommentar


          • #6
            nein das 3 Fach === hatte einen gewissen Sinn, wie es auch bei der Anleitung für strpos steht. Die Funktion gibt 0 zurück, wenn der String an der ersten Position steht, und false, wenn er gar nicht vorkommt. Mit == ist 0 und False für php das selbe. Du merkst also vielleicht das Problem.

            Wenn ich aber kurz nachdenke, dann blockt das Script von Razor genau dann wenn der Link nicht von da kommt

            Versuchs mal so:
            PHP-Code:
            <?php
            $block 
            'blockurl';
            if (!(
            strpos($_SERVER['HTTP_REFERER'], $block) === FALSE))
            {
                die(
            '<h2>Referer geblockt!</h2>');
            }
            ?>

            Kommentar


            • #7
              PHP-Code:
              <?php
              $_SERVER
              ["HTTP_REFERER"] = "http://www.ebesucher.de/index.php?ja";
              // Geblockte referer hier eintragen
              $aBlocked = array("ebesucher.de","phpfriend.de","wurst.de");

              if(isset(
              $_SERVER["HTTP_REFERER"]))
                  if(
              preg_match("/".implode("|",$aBlocked)."/iU", (string)$_SERVER["HTTP_REFERER"]))
                      die(
              "Referer geblockt");
              ?>
              Beachte:
              www.klebesucher.de oder www.fleischwurst.de würden auch geblockt. Je genauer die angabe des Referers bekannt ist, desto genauer würde ich sie auch eintragen. http://www.ebesucher.de wäre also besser

              Kommentar


              • #8
                Normalerweise sind die anderen mit dem posten dieses Links schneller :

                Warum ist es schlecht, mit dem Referer zu arbeiten?

                Kommentar


                • #9
                  Also meine Version ist wirklich falsch. Sie blockt die richtigen User und die falschen werden durchgelassen :/ naja is ja kein Problem das zu beheben.

                  Mit dem "===" ist es schon richtig, es überprüft nicht nur obs FALSE ist sondern auch ob der Typ der rückgabe ein boolean Wert ist !!! (sehr wichtig hier)

                  Zitat von XLB
                  Normalerweise sind die anderen mit dem posten dieses Links schneller :
                  Das ist schon richtig, aber du kannst die User anders nicht blocken! Daher kannst du so immerhin die meisten fremden User abhalten! Wer trozdem auf die Seite will kann auch die Page per Hand eingeben aber es werden generell mal alle die direkt durch den Link kommen abgeglockt und die meisten lassens dann eh bevor sie groß rumsuchen ...

                  Kommentar

                  Lädt...
                  X