【发布时间】:2020-08-04 18:35:54
【问题描述】:
我创建了以下函数来从提交的表单字段中删除网址。我这样做是为了防止垃圾邮件。
<?PHP
function scrubURL($field)
{
return preg_replace('@((https?://)?([-\\w]+\\.[-\\w\\.]+)+\\w(:\\d+)?(/([-\\w/_\\.]* (\\?\\S+)?)?)*)(?:[?&]\S+=\S*)*@i', '', $_POST[$field]);
}
?>
我尝试在表单处理中引用该函数: $_POST['first'] = scrubURL($_POST['first']);
我收到错误:未定义索引:http://somewebsite.com
不知何故,它是从表单而不是字段本身传递值。我尝试将字段用引号括起来,scrubURL("$_POST['first']") 并得到错误:语法错误,意外'first'(T_STRING),期望','或')'
我看不到原因,因为我在另一个表格上成功瘦了。我做错了什么?
【问题讨论】:
-
函数定义说它需要字段名称,但您尝试将字段值传递给它。这是错误的:
$_POST['first'] = scrubURL($_POST['first']);这是正确的:$_POST['first'] = scrubURL('first'); -
哎呀。我从函数中删除了 $_POST,因为该字段可能是 $_GET 并且它可以工作。谢谢。
标签: php spam-prevention