2

这可行,但是如何将变量的值放入数据库而不通过 $_POST 检索它们?这是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>

插入.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);
?>
4

2 回答 2

7

因为您在 php 中使用了 hereregister globals选项,该选项现在在新版本的 php 中已被弃用/删除(主要是因为安全问题),它转化$_POST['fName']$fName

你应该总是使用$_POST/$_GET代替

阅读更多: http: //php.net/manual/en/security.globals.php

于 2013-07-27T22:32:25.157 回答
2

不,这称为全局注册,很久以前就已弃用,永远不要使用它!

当打开时,register_globals 将向您的脚本注入各种变量,例如来自 HTML 表单的请求变量。再加上 PHP 不需要变量初始化这一事实意味着编写不安全的代码要容易得多。

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

于 2013-07-27T22:35:25.993 回答