gpt4 book ai didi

php - 如何将表单信息提交到我的MySQL服务器?

转载 作者:行者123 更新时间:2023-11-29 06:16:10 24 4
gpt4 key购买 nike

编辑 4:主要问题已解决 - 结果问题是我的几个拼写错误。 (发帖,<)谢谢!数据现在可以正常输入我的数据库了。我仍然会考虑您给我的其他建议。 stackoverflow 的初次体验非常好。

编辑1:好吧,我忘了把$_POST大写。现在我收到错误“列计数与第 1 行的值计数不匹配”
编辑2:我删除了ID并添加了exit();。现在,我收到错误消息“列‘名称’不能为空”。我不确定如何/在哪里添加转义字符串。
编辑 3:我按照 Damien 的指示操作,并将其作为我的输出:“连接到 MySQL字符串(8)“TestName”字符串(16)“测试描述”字符串(3)“567”字符串(6)“234567”字符串(13)“Test@test.com”字符串(8)“TestPass”列'名称'不能为空” - 所以仍然是同样的错误。

原始问题:
我对使用 MySQL 和 PHP 相当陌生。我正在为我的服务器使用 MAMP,并根据给我的说明设置了一些 PHP 文件。现在,主要目标是能够建立一个用户数据库,并且相关表单应该创建一个新用户,包含用户名、密码等。

当我填写表单并按提交时,它会给出表单不完整的错误消息,而不是像我想要的那样发送数据。 (我也不太确定如何将数据发送到我的数据库。)

这是表单(我认为是 HTML 格式):

<form action="create.php" method="post">
Name: <input type="text" name="inputName" value="" /><br>
Description: <input type="text" name="inputDesc" value=""/>
<br/>
Phone Number : (<input type="text" name="inputPArea" value="" />)
- <input type="text" name ="inputPBody" value="" /><br>
Email: <input type="text" name="inputEmail" value=""/><br>
Password: <input type="password" name="inputPass" value=""/>

<input type="submit" name="submit" />

以下是错误消息的 if/else 语句:

if(!$_Post['submit']){
echo "please fill out the form";
header('Location:demo.php');

}

else {
mysql_query( "INSERT INTO people (`ID`,`Name`,`Description`,`Area Code`,`Phone Body`,`Email`,`Password`)
VALUES(NULL<'$name','$desc','$area','$pbody','$email','$pass') ") or die(mysql_error()) ;

echo "User has been added!";
header('Location: demo.php');

}

请帮忙!谢谢。如果您能帮助我了解向数据库提交内容的工作原理,那就太好了。

(当然,还有很多其他 PHP 内容。如果您需要任何内容​​,请告诉我。)

最佳答案

$name = mysql_real_escape_string($_POST['inputName']);
$desc = mysql_real_escape_string($_POST['inputDesc']);
$area = mysql_real_escape_string($_POST['inputPArea']);
$pbody= mysql_real_escape_string($_POST['inputPBody']);
$email = mysql_real_escape_string($_POST['inputEmail']);
$pass = mysql_real_escape_string($_POST['inputPass']);

您可以通过超全局 $_POST 数组访问它们(因为您使用了“post”作为表单方法),并进行了适当的清理(您应该使用 PDO 和准备好的语句,它们将使您的代码甚至更安全)。如果设置为自动增量,则查询中不需要 ID。

mysql_query( "INSERT INTO people (`Name`,`Description`,`Area Code`,`Phone Body`,`Email`,`Password`) VALUES('$name','$desc','$area','$pbody','$email','$pass') ") or die (mysql_error());

建议:另外,请考虑在 header 重定向后添加 exit();,以避免意外显示代码。
如果您不希望(或不能接受)空值(甚至是如果您正在为此进行客户端验证。始终依赖服务器端验证,因为可以轻松避免客户端验证)

关于 mysql_real_escape_string 的警告:

A MySQL connection is required before using mysql_real_escape_string() otherwise an error of level E_WARNING is generated, and FALSE is returned. If link_identifier isn't defined, the last MySQL connection is used.

关于php - 如何将表单信息提交到我的MySQL服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6363190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com