Ankündigung

Einklappen
Keine Ankündigung bisher.

Nicks Sperren

Einklappen

Neue Werbung 2019

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

  • Nicks Sperren

    Hi allezusammen...

    Kleines Problem:

    PHP-Code:
    <?
    $sperre = array ("bla", "bli", "blo", "blu");
    if (in_array ($_POST['Nick'], $sperre)) {echo"blabla";}
    ?>
    Hiermit unterbinde ich dass sich jemand "bla" nennt. Ich will aber auch unterbinden dass sich jemand blali nennt. Also alles was mit bla beginnt soll unterbunden werden. Wie geht das?

    Des Weiteren soll auch BlA oder bLa unterbunden werden (also gross und kleinschreibung)

    Wisst ihr weiter? Thx schon im vorraus für Antworten.

    MfG


  • #2
    a) preg_match

    b) "#(bla)+#siU"

    mfg

    Kommentar


    • #3
      schau dir mal die funktion stristr() an.

      Ansonsten preg_match()

      Kommentar


      • #4
        Nimm strpos() (schneller als preg_match()):

        PHP-Code:
        <?php
        foreach($sperre as $value)
          if (
        strpos($_POST['Nick'], $value) === 0) echo 'gesperrt!';
        ?>
        gruß,
        karl-150

        Kommentar


        • #5
          @ karl-150

          PHP-Code:
          <?php
          foreach($sperre as $value
            if (
          strpos($_POST['Nick'], $value) == 0) echo 'gesperrt!'
          ?>
          Damit wird mir dann x mal der Fehler angezeigt. Also ich will 5 Namen gesperrt haben und wenn man einen falschen eingibt kommt 5 mal die meldung {echo"blablabla";}

          Kommentar


          • #6
            Sry, mein Fehler, es muss natürlich strpos($_POST['Nick'], $value) === 0 heissen.

            edit: Das steht da übrigens auch.

            Kommentar


            • #7
              @ J33d3X

              Frage:
              Des Weiteren soll auch BlA oder bLa unterbunden werden (also gross und kleinschreibung)

              Antwort:
              b) "#(bla)+#siU"

              Lösung:
              PHP-Code:
              <?php
              $sperre 
              = array ("#(bla)+#siU""#(bli)+#siU",...");
              ?>
              Muss das so aussehen?

              Kommentar


              • #8
                PHP-Code:
                <?php
                $error 
                0;
                foreach(
                $sperre as $value) { 
                  if (
                strpos($_POST['Nick'], $value) == 0){
                    
                $error 1;
                    break();
                  }
                }
                if(
                $error)
                  echo 
                "gesperrt";
                ?>

                Kommentar


                • #9
                  Äh... Moment...

                  === oder ==?? blick grad nicht durch

                  @ karl-150
                  das mit dem === hatte ich drin, dachte nur das wäre ein schreibfehler von dir und habs dann rausgemacht... weil sowohl === alsauch == brachte fehler... == hat 5 mal aufgelistet === sagte garnix

                  Kommentar


                  • #10
                    Also bei mir funzt es (jedenfalls wenn ich dich richtig verstanden habe), für die Groß-/Kleinschreibung müsste es dann so aussehen:

                    PHP-Code:
                    <?php
                    foreach ($sperre as $value)
                      if (
                    preg_match("#^$value.*?#i"$_POST['Nick'])) echo 'gesperrt!';
                    ?>

                    Kommentar


                    • #11
                      Danke dir karl-150 und allen anderen...

                      PHP-Code:
                      <?php 
                      foreach ($sperre as $value
                        if (
                      preg_match("#^$value.*?#i"$_POST['Nick'])) echo 'gesperrt!'
                      ?>
                      Das isses was ich gesucht habe...

                      Thx

                      Edit:

                      Eine Frage noch... bla ist nun in allen varianten gesperrt, auch blali oder blalo...

                      Wie kann ich nun noch libla sperren lassen?

                      Kommentar


                      • #12
                        Einfach das Hütchen entfernen: preg_match("#$value#i",$_POST['Nick'])

                        /edit:
                        Bei php5 natürlich besser:
                        PHP-Code:
                        <?php
                        foreach ($sperre as $value
                          if (
                        stripos($_POST['Nick'], $value) !== FALSE) echo 'gesperrt!';
                        ?>

                        Kommentar


                        • #13
                          gibst du auch privatunterricht @ karl??

                          danke dir!! bis zum nächsten mal...

                          Kommentar

                          Lädt...
                          X