• 12-07-2021, 01:11:48
    #1
    Üyeliği durduruldu
    Merhaba, aşağıda ki gibi input um var. Buna 3 tane yasaklı kelime koymak istiyorum. O text yerine yasaklı kelime eklenmez diye hata versin. Nasıl yapabilirim?

      <div class="form-group">
        <div class="col-sm-12">
          <input name="alan" type="text" class="form-control" placeholder="yazi" required>
        </div>
      </div>
  • 12-07-2021, 01:26:32
    #4
    Üyeliği durduruldu
    FidanAtug adlı üyeden alıntı: mesajı görüntüle
    bunu nasıl entegre edebilirim yardımcı olabilir misiniz?
  • 12-07-2021, 01:33:20
    #5
    Bunu kod betiğinde belirttiğiniz kod ile tamamen değiştirin :
     <div id="container">
            <form name="form1">
                <input name="text" placeholder="Enter one of the bad words above and then try submitting the form." onClick="select_area()">
    
                <input type="button" value="Submit" onClick="validate_text();">
            </form>
        </div>
    bunuda </body> tagının hemen üstüne yapıştırın. alt tarafta 3. satırda yasaklayacağınız kelimeleri virgülle ve tırnakla ayırarak yazın. Şuankiler "bloody", "war", "terror"

    <script type="text/javascript">
            // Enter the words to be filtered in the line below:
            var swear_words_arr = new Array("bloody", "war", "terror");
    
            var swear_alert_arr = new Array;
            var swear_alert_count = 0;
    
            function reset_alert_count() {
                swear_alert_count = 0;
            }
    
            function validate_text() {
                reset_alert_count();
                var compare_text = document.form1.text.value;
                for (var i = 0; i < swear_words_arr.length; i++) {
                    for (var j = 0; j < (compare_text.length); j++) {
                        if (swear_words_arr[i] == compare_text.substring(j, (j + swear_words_arr[i].length)).toLowerCase()) {
                            swear_alert_arr[swear_alert_count] = compare_text.substring(j, (j + swear_words_arr[i].length));
                            swear_alert_count++;
                        }
                    }
                }
                var alert_text = "";
                for (var k = 1; k <= swear_alert_count; k++) {
                    alert_text += "\n" + "(" + k + ")  " + swear_alert_arr[k - 1];
                }
                if (swear_alert_count > 0) {
                    alert("The message will not be sent!!!\nThe following illegal words were found:\n_______________________________\n" + alert_text + "\n_______________________________");
                    document.form1.text.select();
                } else {
                    document.form1.submit();
                }
            }
    
            function select_area() {
                document.form1.text.select();
            }
            window.onload = reset_alert_count;
        </script>
  • 12-07-2021, 01:46:42
    #6
    Developer
    php tarafında js alert ile beraber şu şekilde:

    <?php
    if(isset($_POST['submit'])){
        $alan = explode(" ", $_POST['alan']);
        $filtre = ['lorem','ipsum','dolor'];
        $diff = array_diff($alan,$filtre);
        if (empty($diff)) {
            $out = '<script>alert("'.implode(', ',$filtre).' kelimeleri kullanılamaz.'.'");</script>';
        }else{
            //çalıştır
        }
    }
    ?>
    
    <form action="" method="post">
    <div class="form-group">
      <div class="col-sm-12">
        <input name="alan" type="text" class="form-control" placeholder="yazi" required>
        <?php if(isset($out)){echo $out;} ?>
        <input type="submit" name="submit">
      </div>
    </div>
    </form>
  • 12-07-2021, 02:01:55
    #7
    Üyeliği durduruldu
    brown adlı üyeden alıntı: mesajı görüntüle
    php tarafında js alert ile beraber şu şekilde:

    <?php
    if(isset($_POST['submit'])){
        $alan = explode(" ", $_POST['alan']);
        $filtre = ['lorem','ipsum','dolor'];
        $diff = array_diff($alan,$filtre);
        if (empty($diff)) {
            $out = '<script>alert("'.implode(', ',$filtre).' kelimeleri kullanılamaz.'.'");</script>';
        }else{
            //çalıştır
        }
    }
    ?>
    
    <form action="" method="post">
    <div class="form-group">
      <div class="col-sm-12">
        <input name="alan" type="text" class="form-control" placeholder="yazi" required>
        <?php if(isset($out)){echo $out;} ?>
        <input type="submit" name="submit">
      </div>
    </div>
    </form>
    Hocam nerede eksik yapıyorum yasaklı kelimeyi girdiğim halde işleme devam ediyor.

     <?php
    if(isset($_POST['submit'])){
        $alan = explode(" ", $_POST['alan']);
        $filtre = ['lorem','ipsum','dolor'];
        $diff = array_diff($alan,$filtre);
        if (empty($diff)) {
            $out = '<script>alert("'.implode(', ',$filtre).' kelimeleri kullanılamaz.'.'");</script>';
        }else{
            //çalıştır
        }
    }
    ?>
     
    <form action="" method="post">
    <div class="form-group">
      <div class="col-sm-12">
        <input name="alan" type="text" class="form-control" placeholder="yazi" required>
        <?php if(isset($out)){echo $out;} ?>
        <input type="submit" name="submit" value="Test" class="btn btn-success btn-block">
      </div>
    </div>
    </form>
  • 12-07-2021, 02:13:34
    #8
    Developer
    @Lorkem; verdiğim kod post ettikten sonra çalışır. DOM üzerinden ilerlemek istiyorsanız @FidanAtug; paylaşmış. Bunun haricinde reactphp ile de yapabilirsiniz.

    edit: ek olarak verileri sayfa yenilendikten sonra session ile de yakalayabilirsiniz.

    şu şekilde:

    <?php
    session_start();
    if(isset($_POST['submit'])){
        $_SESSION['alan'] = $_POST['alan'];
        $alan = explode(" ", $_POST['alan']);
        $filtre = ['lorem','ipsum','dolor'];
        $diff = array_diff($alan,$filtre);
        if (empty($diff)) {
            $out = '<script>alert("'.implode(', ',$filtre).' kelimeleri kullanılamaz.'.'");</script>';
        }else{
            //çalıştır
        }
    }
    ?>
    
    <form action="" method="post">
    <div class="form-group">
      <div class="col-sm-12">
        <input name="alan" type="text" class="form-control" value="<?php if(isset($_SESSION['alan'])){echo $_SESSION['alan'];} ?>" placeholder="yazi" required>
        <?php if(isset($out)){echo $out;} ?>
        <input type="submit" name="submit">
      </div>
    </div>
    </form>