是否首选将POST变量分配给实际变量?

Ziz*_*o47 10 php sql variables post

我刚刚完成了我的网站注册表单以及所有SQL发生的操作页面我刚刚跳过将POST变量分配给实际的变量,就像这样......

$ username = $ _POST ['username'];

相反,我只是在整个PHP页面中使用POST变量.练习时是否有任何风险或错误?

另外,如果我使用不正确的术语,请原谅...

And*_*rew 5

您可能正在运行的一个风险是处理原始用户数据,仍然保存在原始$_POST[]变量中.我倾向于将我使用的所有原始数据保存到其他变量中,就像您提到的那样,$username = $_POST['username']因此我可以更有效地操作和清理该输入.我没有保存对全局$_POST数组所做的任何调整,而是暂时保存了所有更改,并且更易于管理.

例如:

$username = mysql_real_escape_string($_POST['username']);
Run Code Online (Sandbox Code Playgroud)

......比以下更好:

$_POST['username'] = mysql_real_escape_string($_POST['username']);
Run Code Online (Sandbox Code Playgroud)

通常最好保留原始用户数据并对其他变量进行调整.


dec*_*eze 5

我看不出有利有弊.一旦你开始修改这些值,就应该将它们放入自己的变量中,但是如果你只是阅读它们,你可以把它们放在原来的位置.只有两点:

  • 如果它使您的源代码更易于使用短变量名称而不是$_POST[...],那么这是将值放入自己的变量的一个很好的理由.
  • 不一定要逐个取值,而只是将数组内容分配到另一个数组中:

    $values = $_POST;
    
    // not:
    
    $foo = $_POST['foo'];
    $bar = $_POST['bar'];
    ...
    
    Run Code Online (Sandbox Code Playgroud)