0

目に見えないCAPTCHAを連絡フォームに取り込もうとしていますが、機能するかどうかわかりません。

私のコードは次のとおりです...

HTML

<span class="test-field"><label for="test">Please leave blank</label>
  <input type="text" name="test" id="test"/></span>

CSS

.test-field {Display: none}

PHP

    <?php
if($_POST["test"]!=""){
    header("Location: {$_SERVER[HTTP_REFERER]}");exit;
}
// Get Data 
$f_name = strip_tags($_POST['f_name']);
$f_email = strip_tags($_POST['f_email']);
$f_message = strip_tags($_POST['f_msg']);

// Send Message
mail( "me@website.com", "Website Contact",
"Name: $f_name\nEmail: $f_email\nMessage: $f_message\n",
"From: My Website" );

?>

それをテストするために、私はいくつかのテストを変更しました...

f($_POST["test"]!="") 

...に...

f($_POST["test"]="")

私のPHPはあまり良くありませんが、フィールドが空白の場合、フォームを送信するべきではないと思いますが、送信されます。私のPHPに何か問題がありますか?

前もって感謝します。

4

2 に答える 2

2

あなたの特定の質問に関しては、それは意味がありません。ユーザーCAPTCHAは、非表示になっているとまったく役に立ちません。

CAPTCHAという用語は...の略です。

コンピュータと人間を区別するための完全自動公開チューリングテスト

人間と書かれていることに注意してください...

CAPTCHAチャレンジが表示されない場合、人間の相互作用をどのようにテストできますか?できません。それにもかかわらず....ここにあなたのコードの簡単なモックアップがあります...それが意味をなさないので私が省略したCAPTCHA。ここから取って...

<?php

if ($_POST['test'] == "") {

    header("Location: {$_SERVER['HTTP_REFERER']}");


} else {

    // Get Data
    $f_name = strip_tags($_POST['f_name']);
    $f_email = strip_tags($_POST['f_email']);
    $f_message = strip_tags($_POST['f_msg']);

}

?>

<html>
<head>
    <style type="text/css">

        #demo {

            width: 250px;
            height: 250px;
        }

        .test-field {
            display: none;
            width: 200px;
            height: 200px;

        }

        #form label {
            width: 50px;
            float: left;

        }

        #form input {
            width: 150px;
            float: right;

        }


    </style>

</head>


<body>

<div id="demo">
    <form name="form" id="form" action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
        <label for="test">Empty </label><input type="text" name="test" id="test"/><br/>
        <label for="f_name">Name</label><input type="text" name="f_name" id="f_name"/><br/>
        <label for="f_email">Email</label><input type="text" name="f_email" id="f_email"/><br/>
        <label for="f_msg">Message</label><textarea rows="15" cols="30" name="f_msg" id="f_msg"></textarea>
        <input type="submit" id="submit">

        <div class="test-field"></div>
    </form>
</div>
</body>

</html>

<?php var_dump($_POST) ?> 
于 2012-11-18T01:02:36.263 に答える
1

変更してみてください

if($_POST["test"]!=""){

if(isset($_POST["test"]) && $_POST["test"]){
于 2012-11-18T00:04:08.950 に答える