我是HTML和PHP的新手。我正在尝试创建一个表单,将我的新用户详细信息加载到由我的Web托管公司托管的数据库中。
我的表单代码(HTML)是:
<h1>Create Your GoSense Account</h1>
<form method:"POST" action:"newuserform.php" >
<div class="namef">
Name: <input type="text" style="width:200px" name="Name"
placeholder="First Name"><br></br> </div>
<div class="surnamef">
Surname: <input type="text" style="width:178px" name="Surname"
placeholder="Last Name"><br></br></div>
<div class="emailf">
Email: <input type="text" style="width:202px" name="Email"
placeholder="Email"><br></br> </div>
<div class="passwordf">
Password: <input type="text" style="width:170px" name="Password"
placeholder="Password"><br></br></div>
<input type="submit" style="font-size: 300px" name=""
value="Submit">
</form>
我存储在newuserform.php中的PHP代码是:
<?php
define('DB_NAME','gosensec_useraccounts');
define('DB_USER','MyUsername');
define('DB_PASSWORD','myPassword');
define('DB_HOST','***.**.**.**');
$Name = filter_input(INPUT_POST,'Name');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db_selected = mysql_select_db (DB_NAME, $link) ;
$VALUE = $_POST['Name'];
$VALUE = $_POST['Surname'];
$VALUE = $_POST['Email'];
$VALUE = $_POST['Password'];
$sql = " INSERT INTO Users (Name) VALUES ('$VALUE')";
$sql = " INSERT INTO Users (Surname) VALUES ('$VALUE')";
$sql = " INSERT INTO Users (Email) VALUES ('$VALUE')";
$sql = " INSERT INTO Users (Password) VALUES ('$VALUE')";
mysql_close()
?>
我已经加倍检查了与我的db主机公司的连接参数,他们建议它是正确的所以我的下一步是质疑我的代码?任何人都可以选择任何可能导致数据插入我的数据库的错误吗?
非常感谢
答案 0 :(得分:2)
有多个错误。
1 - 将每个变量分配到特定名称:
$Name = $_POST['Name'];
$Surname = $_POST['Surname'];
$Email = $_POST['Email'];
$Password = $_POST['Password'];
2 - 将所有值插入一行而不是多行。也可以将变量作为变量连接,而不是作为引号内的字符串!
$sql = "INSERT INTO Users (Name,Surname,Email,Password) VALUES ('" .$Name. "','". $Surname ."','". $Email ."','" .$Password. "')";
3 - 不要忘记执行sql命令:
$link->query($sql)
4 - 要关闭连接,请使用mysql_close($link)
终于:不要忘记通过过滤值来prevent SQL INJECTION。另请尝试使用mysqli而不是已停用的mysql API。