为什么这个PHP代码中没有表单变量?

时间:2010-01-06 04:44:34

标签: php html forms

我的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 - 我在做一些根本错误/愚蠢的事情吗?

2 个答案:

答案 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访问它们,但最终还是取决于您。