我的PHP页面上有一个表单,它执行一些ajax验证(这是有效的)。这是一个片段(实时表单中有更多字段)
<form name="form" onSubmit="return validate_form();" action="submitform.php" method="post">
<table border="0" cellpadding="5" bgcolor="#000000">
<tr>
<td width="175">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Requested Vendor TAG:</b> </font></div>
</td>
<td>
<input type="text" name="VendorTAG" onblur="checktag();" maxlength="8"> <div id="vendtag"></div>
</td>
</tr>
<tr>
<td width="175">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Contact Name: </b> </font></div>
</td>
<td>
<input type="text" name="ContactName" maxlength="50">
</td>
</tr>
当我点击提交按钮时,它会加载以下代码:
<php ?
if(trim($VendorTAG) == '')
{
die('Vendor TAG cannot be blank');
}
else if(trim($ContactName) == '')
{
die('Contact Name cannot be blank');
}
?>
(同样,还有更多相同的内容,但这说明了这一点)
这一切都很顺利,直到我的主持人在圣诞节期间的最后一次更新,当表格停止工作时 - 但我很难找到原因..
服务器现在正在运行PHP 5.2.11 - 我在做一些根本错误/愚蠢的事情吗?
答案 0 :(得分:5)
在PHP 5.2中,他们摆脱了register_globals
。这是一场安全噩梦,不应该使用。
使用$_POST
代替访问表单元素。
您可以在此处找到有关register_globals
的更多信息:http://us.php.net/manual/en/security.globals.php
答案 1 :(得分:2)
POST vars的访问方式如下:$_POST["varname"]
而不是这样:$varname
。或者,您也可以通过$_REQUEST
访问它们,但最终还是取决于您。