看不见的验证码不起作用,很可能是错误的PHP?

看不见的验证码不起作用,很可能是错误的PHP?,php,forms,captcha,Php,Forms,Captcha,我正在尝试将一个无形的验证码合并到我的联系表单中,但是我不确定它是否有效 我的代码如下 HTML PHP …到 f($_POST["test"]="") 我的PHP不是很好,但我猜如果字段为空,那么它不应该发送表单,但它确实可以发送。我的PHP有什么问题吗 提前谢谢。试试换衣服 if($_POST["test"]!=""){ 到 试着改变 if($_POST["test"]!=""){ 到 就你的具体问题而言,这没有任何意义。如果用户验证码是隐藏的,那么它是绝对无用的 术语CAPTCHA代

我正在尝试将一个无形的验证码合并到我的联系表单中,但是我不确定它是否有效

我的代码如下

HTML

PHP

…到

f($_POST["test"]="")
我的PHP不是很好,但我猜如果字段为空,那么它不应该发送表单,但它确实可以发送。我的PHP有什么问题吗

提前谢谢。

试试换衣服

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

试着改变

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


就你的具体问题而言,这没有任何意义。如果用户验证码是隐藏的,那么它是绝对无用的

术语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) ?> 

#演示{
宽度:250px;
高度:250px;
}
.试验场{
显示:无;
宽度:200px;
高度:200px;
}
#表格标签{
宽度:50px;
浮动:左;
}
#表单输入{
宽度:150px;
浮动:对;
}

就你的具体问题而言,这没有任何意义。如果用户验证码是隐藏的,那么它是绝对无用的

术语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) ?> 

#演示{
宽度:250px;
高度:250px;
}
.试验场{
显示:无;
宽度:200px;
高度:200px;
}
#表格标签{
宽度:50px;
浮动:左;
}
#表单输入{
宽度:150px;
浮动:对;
}

你能解释一下“不工作”是什么意思吗?我真的不明白你所说的“不可见”是什么意思,如果它不可见,你为什么首先需要它,如果说它不工作,你的意思是你得到了一些错误或其他东西吗?对不起,我重新编辑了我的帖子,使它更为清晰clear@Adam请幽默我,你为什么想要“隐形”验证码?你是说“隐藏”验证码会在用户操作中重新出现吗?是的,隐藏验证码。我只是在检查我的代码是否正确。如果该字段不为空,则上面的表单不起作用。我想我可以通过临时更改代码来测试它,这样如果字段为空,表单就会失败,事实就是这样。但是表单仍然发送,这就是为什么我认为代码不正确的原因。希望这是有意义的。你能解释什么是“不工作”吗?我真的不明白你所说的“不可见的”
是什么意思。如果它是不可见的,那么你为什么首先需要它,如果说它不工作,你是指你得到了一些错误或其他东西吗?对不起,我重新编辑了我的帖子,使它更具吸引力clear@Adam请幽默我,你为什么想要“隐形”验证码?你是说“隐藏”验证码会在用户操作中重新出现吗?是的,隐藏验证码。我只是在检查我的代码是否正确。如果该字段不为空,则上面的表单不起作用。我想我可以通过临时更改代码来测试它,这样如果字段为空,表单就会失败,事实就是这样。但是表单仍然发送,这就是为什么我认为代码不正确的原因。希望这是明智的,你也可以在那里扔一些
error\u reporting
。你也可以在那里扔一些
error\u reporting
。谢谢。我已经弄明白了。我的原始代码确实有效(这也是),是一些javascript导致了这个问题。谢谢。我已经弄明白了。我的原始代码确实有效(这也是如此),是一些javascript导致了这个问题。
if($_POST["test"]!=""){
if(isset($_POST["test"]) && $_POST["test"]){
<?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) ?>