我们使用stristr来测试是否有人在表单上的问题文本区域中包含链接. 它可以很好地阻止垃圾邮件. 但是,不法分子的新try 已经开始将垃圾邮件链接放在其他输入中,如名称,地址,城市等.

我们当前的代码:

// check if question box has links and die if so 
$has_link = stristr($_POST['question'], 'http://') ?: stristr($_POST['question'], 'https://');
if($has_link){
  die('Your submission was blocked. Do not submit links to websites.');
}

有没有一种方法来写这个,使它测试任何和所有的POST变量,而不必写出每一个单独的,即$_POST['question']$_POST['name']$_POST['address']

推荐答案

是的,您可以遍历所有$_POST个变量并判断每个变量的链接.在下面的代码中,foreach循环遍历$_POST数组中的每一项.函数判断当前项是否包含‘http://’‘或’https://‘.如果找到链接,脚本将以一条消息终止.

foreach ($_POST as $key => $value) {
    $has_link = stristr($value, 'http://') ?: stristr($value, 'https://');
    if ($has_link) {
        die('Your submission was blocked. Do not submit links to websites.');
    }
}

Php相关问答推荐

当我们使用PHPUnit时,控制台中的--uses param到底起了什么作用以及如何使用?

如何在数据库中添加注册表单中的动态新行?

如何优化-PHP 7.3.14+Laravel 6

WooCommerce基于元数据的自定义范围目录排序

如何更改数据表行背景 colored颜色

PHP -多维数组到一维数组

PHP-带POST验证的for循环

在WooCommerce中的本地收件发货方式下添加一个 Select 字段

在WP工具中页面加载时可短暂看到的JavaScript生成的字段

Laravel 10中的Validator类

Rappasoft Datatables V2(我想在另一个表具有相同值列时显示数据)

防止 WooCommerce 在前端加载全尺寸图像

使用简码在 WooCommerce 我的帐户中显示一些用户数据

如何在 Laravel 中修改嵌套数组的键?

如何通过额外的属性和本地化来使用 laravel 枚举

在 WordPress 中使用 $wpdb 运行 MySQL 事务是否安全?

PHP 自动函数参数和变量

WooCommerce 按 ID 限制产品

如何从 PHP 中的字符串位置排除图像扩展名

PHP 中的 curl 验证失败(openssh 连接正常)