【问题标题】:using if empty()使用 if empty()
【发布时间】:2012-03-10 09:22:23
【问题描述】:

我有网站,但由于未知原因,我每分钟收到超过 200 条垃圾邮件 但我仍然不需要使用验证码

我有一个想法,因为我的攻击机器人渴望任何输入形式是通过创建以下内容

1- 浏览器隐藏文本输入

<style>
    .comment {visibility: hidden;}
</style>
<input name="comment" id="comment" type="text" class="comment" />

2- 使用 php 如果它为空则没有垃圾邮件机器人,如果不为空则它必须是垃圾邮件机器人 但是 php 代码给了我错误,因为它看起来不起作用

$comment = $_POST[comment];
    
if( !empty($comment) ) {
    echo "you are bot right then die go to hell";
} else {
    echo "fine";
} 

不知为何,php 代码无法正常工作!我不确定empty()如何使用它。

【问题讨论】:

  • 如果没有设置$_POST['comment'],你应该直接使用if(empty($_POST['comment']))(不要忘记')。
  • 您是否正在使用验证码?如果不是为什么?
  • 用户不能发帖吗?还是机器人来了?可能您的表单已经被缓存,请尝试更改输入名称。
  • @Dagon 我的网站是为年幼的孩子准备的,他们可以绘画并保存他们的绘画分享它替换它......等等所以验证码很烦人。
  • @Vyktor 机器人正在发布广告,它们来自一个世界知名的垃圾邮件支持网站,我不知道我是否可以发布 URL,但这是它 UU UU UU formspring dot me ,我已经举报过很多次了,他们没办法。

标签: php


【解决方案1】:

我认为您缺少“评论”周围的引号

$comment = $_POST['comment'];
if( $comment !== null && strlen($comment) > 0 )
{ 
  //dangerrrrrrrrr, be very afraid.
} else {
  //business as usual
}

【讨论】:

  • 它们不见了,但它实际上仍然可以工作。 PHP 将解释为常量 comment,但由于该常量未知,它会假定您的意思是字符串 'comment' 并添加引号本身,同时抛出警告。
  • 完美运行,看来我最近对机器人有很大的惊喜 :) nihaaaaa nihaaaaa 非常感谢。
【解决方案2】:

你可以试试这个

$comment=isset($_POST['comment']) ? (!empty($_POST['comment']) ? $_POST['comment'] : null) : null ;
if($comment)
{ 
    //comment available
}
else
{
    //comment not available
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-26
    • 1970-01-01
    相关资源
    最近更新 更多