来自留言簿的PHP脚本不';t添加到MySQL
当我通过php表单提交留言簿详细信息时,它以“Successful”结尾,但当我查看MySQL数据库时,它只创建了新条目,但除了自动ID和日期之外,没有其他详细信息 以下是表单:guestbook.php来自留言簿的PHP脚本不';t添加到MySQL,php,mysql,Php,Mysql,当我通过php表单提交留言簿详细信息时,它以“Successful”结尾,但当我查看MySQL数据库时,它只创建了新条目,但除了自动ID和日期之外,没有其他详细信息 以下是表单:guestbook.php <form id="form1" name="form1" method="post" action="addguestbook.php"> <td><input name="name" type="text" id="name" size="40" />
<form id="form1" name="form1" method="post" action="addguestbook.php">
<td><input name="name" type="text" id="name" size="40" /></td>
<td><input name="email" type="text" id="email" size="40" /></td>
<td><textarea name="comment" cols="40" rows="3" id="comment"></textarea></td>
<td><input type="submit" name="Submit" value="Submit" /> <input type="reset"
name="Submit2" value="Reset" /></td>
$host="address"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="guestdb"; // Database name
$tbl_name="guestbook"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");
$datetime=date("y-m-d h:i:s"); //date time
$sql="INSERT INTO $tbl_name(name, email, comment, datetime)VALUES('$name', '$email',
'$comment', '$datetime')";
$result=mysql_query($sql);
//check if query successful
if($result){
echo "Successful";
echo "<BR>";
// link to view guestbook page
echo "<a href='viewguestbook.php'>View guestbook</a>";}
else {
echo "ERROR";}
mysql_close();
下面是脚本:addguestbook.php
<form id="form1" name="form1" method="post" action="addguestbook.php">
<td><input name="name" type="text" id="name" size="40" /></td>
<td><input name="email" type="text" id="email" size="40" /></td>
<td><textarea name="comment" cols="40" rows="3" id="comment"></textarea></td>
<td><input type="submit" name="Submit" value="Submit" /> <input type="reset"
name="Submit2" value="Reset" /></td>
$host="address"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="guestdb"; // Database name
$tbl_name="guestbook"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db_name")or die("cannot select DB");
$datetime=date("y-m-d h:i:s"); //date time
$sql="INSERT INTO $tbl_name(name, email, comment, datetime)VALUES('$name', '$email',
'$comment', '$datetime')";
$result=mysql_query($sql);
//check if query successful
if($result){
echo "Successful";
echo "<BR>";
// link to view guestbook page
echo "<a href='viewguestbook.php'>View guestbook</a>";}
else {
echo "ERROR";}
mysql_close();
$host=“address”//主机名
$username=“username”;//Mysql用户名
$password=“password”;//Mysql密码
$db_name=“guestdb”;//数据库名称
$tbl_name=“留言簿”//表名
//连接到服务器并选择数据库。
mysql_connect(“$host”、“$username”、“$password”)或die(“无法连接服务器”);
mysql_select_db($db_name)或die(“无法选择db”);
$datetime=日期(“y-m-d h:i:s”)//日期时间
$sql=“插入$tbl_名称(名称、电子邮件、注释、日期时间)值(“$name”、“$email”,
“$comment',“$datetime')”;
$result=mysql\u查询($sql);
//检查查询是否成功
如果($结果){
呼应“成功”;
回声“
”;
//链接到查看留言簿页面
回声“;}
否则{
回显“错误”;}
mysql_close();
在准备sql查询($sql
)之前,必须使用$POST
数据填充$name
、$email
和$comment
变量
<?php
// ..
$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$sql = "INSERT INTO $tbl_name(name, email, comment, datetime)VALUES('$name', '$email',
'$comment', '$datetime')";
$result = mysql_query($sql);
// ..
我可以看到,您还没有定义变量。。将此添加到上面的
$datetime=da…
$name = isset($_POST['name']) ? $_POST['name'] : false;
$email = isset($_POST['email']) ? $_POST['email'] : false;
$comment = isset($_POST['comment']) ? $_POST['comment'] : false;
除此之外:
- 请使用查询或PDO
- 使用mysql*\u real\u escape\u字符串
- 这可能有多种原因
我建议将您的查询更改为:
INSERT INTO $tbl_name set name='$name', email='$email', comment='$comment', datetime='$datetime'
您在哪里定义
$name
、$email
和$comment
?您应该考虑使用PDO或mysqli,否则可能会有SQL注入漏洞。您没有填充$name
或$comment
,或$email
变量。var\u dump($SQL)
-看看您实际在做什么。调试!很可能这段代码期望启用register\u globals
,这是一个糟糕的想法。。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果选择PDO,。也请从调试开始。启用最高级别的错误报告,以便您真正注意到潜在的问题,PHP将告诉您这些问题:error\u reporting(~0);ini设置(“显示错误”,1)
或者更好地在php.ini中配置它。