PHP 函数 - 将表单字段作为参数传递时出错
PHP Function - Error Passing Form Field as Parameter
我创建了以下函数来从提交的表单字段中删除网址。我这样做是为了防止垃圾邮件。
<?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),期待 ',' 或 ' )'
我看不出原因,因为我在另一个表格上瘦身成功了。我做错了什么?
从你的代码来看,你似乎只需要传递“first”作为参数:
$result = scrubURL('first');
您的函数参数 $field
包含 $_POST['first']
的值!您在示例中想要的是一个像
这样的函数调用
$_POST['first'] = scrubURL('first');
作为建议:我不会在您的函数中访问 $_POST
。这是更清晰的代码。 ;)
function scrubURL($dirtyUrl)
{
return preg_replace('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]* (\?\S+)?)?)*)(?:[?&]\S+=\S*)*@i', '', $dirtyUrl);
}
$_POST['first'] = scrubURL($_POST['first']);
我创建了以下函数来从提交的表单字段中删除网址。我这样做是为了防止垃圾邮件。
<?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),期待 ',' 或 ' )'
我看不出原因,因为我在另一个表格上瘦身成功了。我做错了什么?
从你的代码来看,你似乎只需要传递“first”作为参数:
$result = scrubURL('first');
您的函数参数 $field
包含 $_POST['first']
的值!您在示例中想要的是一个像
$_POST['first'] = scrubURL('first');
作为建议:我不会在您的函数中访问 $_POST
。这是更清晰的代码。 ;)
function scrubURL($dirtyUrl)
{
return preg_replace('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]* (\?\S+)?)?)*)(?:[?&]\S+=\S*)*@i', '', $dirtyUrl);
}
$_POST['first'] = scrubURL($_POST['first']);