• 14-10-2019, 17:57:32
    #1
    mrblar,
    bir doğrulama kodu arıyorum ama bulamadım.
    kullanıcıya bir soru sorulacak ve cevap olarak eklenmiş kelimelerden biri girdiğinde doğrulanacak.
    captcha değil istediğim.

    örn: "egede bir şehir adı yazın"
    sorusuna cevap olarak;
    "kütahya manisa uşak afyon izmir aydın denizli muğla"
    kelimelerinden biri yazılmalıdır.

    bunun hazır kodu yada sistemi olan varmı?
    yok ise neyle yapılabilir?
    db ye vs ihtiyaç olmadan anlık çalışacak bir kod lazım.
  • 14-10-2019, 18:01:13
    #2
    soru cevaplarını ya db de tutacaksin yada array içerisine alıp kontrol ettireceksin
  • 14-10-2019, 18:01:39
    #3
    Array oluşturarak veritabanı kullanmadan yapabilirsiniz
  • 14-10-2019, 18:04:37
    #4
    Üyeliği durduruldu
    <?php
    
    $answer = 'kütahya';  // Formdan gelen cevap $_POST['answer'] olarak alınabilir.
    $answers = array('manisa','afyon','izmir');  // Doğru cevaplar
    
    if(in_array($answer,$answers)) {
       echo 'true';
    } else {
       echo 'false';
    }
    
    ?>
  • 14-10-2019, 18:14:24
    #5
    <?php
    $liste = array("kütahya","manisa","uşak","afyon");
    $genel_yanit = mb_strtolower("Manisa");
    if(in_array($genel_yanit,$liste)){
    echo "CEVAP DOĞRU";
    }else{
    echo "CEVAP YANLIŞ";
    }
    ?>
    gelen yanıta mb_strtolower ekleyerek kullanıcının gireceği büyük küçük fark karışıklığını engelleyebilir en doğru sonuca ulaşabilirsiniz.
  • 14-10-2019, 18:46:08
    #6
    teşekkür ederim katkı sağlayan herkese,
    soru kısmı ve manuel girilecek cevap kısmını nasıl ekleriz bu koda
  • 15-10-2019, 07:21:09
    #7
    Üyeliği durduruldu
    Madjal adlı üyeden alıntı: mesajı görüntüle
    mrblar,
    bir doğrulama kodu arıyorum ama bulamadım.
    kullanıcıya bir soru sorulacak ve cevap olarak eklenmiş kelimelerden biri girdiğinde doğrulanacak.
    captcha değil istediğim.

    örn: "egede bir şehir adı yazın"
    sorusuna cevap olarak;
    "kütahya manisa uşak afyon izmir aydın denizli muğla"
    kelimelerinden biri yazılmalıdır.

    bunun hazır kodu yada sistemi olan varmı?
    yok ise neyle yapılabilir?
    db ye vs ihtiyaç olmadan anlık çalışacak bir kod lazım.

    <?php
    $sorular = array(
        'Adın nedir?',
        'Kaç yaşındasın?',
        'egede bir şehir adı yazın'
    );
    
    //cevapların küçük harflerle yazılması gerekmektedir.
    $cevaplar = array(
        array('ahmet'),
        array('99'),
        array('kütahya', 'manisa', 'uşak', 'afyon', 'izmir', 'aydın', 'denizli', 'muğla'),
    );
    
    if(isset($_POST['key'], $_POST['cevap'])) {
        if(isset($sorular[$_POST['key']])) {
            if(in_array(mb_strtolower($_POST['cevap']), $cevaplar[$_POST['key']])) {
                echo 'doğru';
            } else {
                echo 'yanlış';
            }
        } else {
            echo 'Sıkıntı var!';
        }
    } else {
        $key = array_rand($sorular);
        echo '
            <form action="" method="post">
                <input type="hidden" name="key" value="'.$key.'" />
                <p>SORU: '.$sorular[$key].'</p>
                <p>SORU: <input type="text" name="cevap" /></p>
                <p><input type="submit" /></p>
            </form>';
    }
    ?>