变量进入db而不通过$ _POST检索

时间:2013-07-27 22:29:33

标签: php database post

这样可行,但如果没有通过$ _POST检索它们,变量的值如何被放入db中? 这是php5中的新功能还是我之前从未见过以这种方式使用过它?

  <!doctype html>

 <html>

<head>
<title></title>
</head

<body>
<form action="insert.php" method="post">
    First Name: <input type="text" name="fname" /><br>
    Last Name: <input type="text" name="lname" /><br>
    Username:  <input type="text" name="uname" /><br>

    <input type="submit" name="submit" value="Register"/><br>
</form>

</body>
</html>

insert.php

<?php

 $con=mysqli_connect("","","","");
 // Check connection
if (mysqli_connect_errno())
 {
 echo "Failed to connect to MySQL: " . mysqli_connect_error();
 }

$sql="INSERT INTO traders (fname, lname, username)
VALUES
('$fname','$lname','$uname')";

if (!mysqli_query($con,$sql))
{
   die('Error: ' . mysqli_error($con));
} 
echo "1 record added " ;

mysqli_close($con);
?>

2 个答案:

答案 0 :(得分:7)

因为您在php中使用register globals选项,现在在新版本的PHP中已弃用/删除(主要是因为安全问题),这会将$_POST['fName']转换为$fName

您应始终使用$_POST / $_GET代替

了解详情:http://php.net/manual/en/security.globals.php

答案 1 :(得分:2)

不,这被称为Register Global并且很久以前就已经弃用了,不应该使用这个!

  

启用后,register_globals将为您的脚本注入各种变量,例如HTML表单中的请求变量。这与PHP不需要变量初始化的事实相结合意味着编写不安全的代码更容易。

了解更多信息: http://php.net/manual/en/security.globals.php

相关问题