gpt4 book ai didi

php - 将表单连接到数据库错误

转载 作者:行者123 更新时间:2023-11-30 01:31:38 26 4
gpt4 key购买 nike

您好,我正在尝试将页面连接到 MySQL 数据库以进行新闻通讯注册。我的数据库有 3 个字段:id、name、email。该数据库名为 newsletter,该表名为 newsletter。一切似乎都很好,但我收到此错误

Notice: Undefined index: Name in C:\wamp\www\insert.php on line 12 Notice: Undefined index: Name in C:\wamp\www\insert.php on line 13

这是我的表单代码。

<form action="insert.php" method="post">
<input type="text" value="Name" name="Name" id="Name" class="txtfield" onblur="javascript:if(this.value==''){this.value=this.defaultValue;}" onfocus="javascript:if(this.value==this.defaultValue){this.value='';}" />
<input type="text" value="Enter Email Address" name="Email" id="Email" class="txtfield" onblur="javascript:if(this.value==''){this.value=this.defaultValue;}" onfocus="javascript:if(this.value==this.defaultValue){this.value='';}" />
<input type="submit" value="" class="button" />
</form>

这是我的 insert.php 文件。

<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="newsletter"; // Database name
$tbl_name="newsletter"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Get values from form
$name=$_POST['Name'];
$email=$_POST['Email'];

// Insert data into mysql
$sql="INSERT INTO $tbl_name(name, email)VALUES('$name', '$email')";
$result=mysql_query($sql);

// if successfully insert data into database, displays message "Successful".
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='index.html'>Back to main page</a>";
}

else {
echo "ERROR";
}
?>

<?php
// close connection
mysql_close();
?>

最佳答案

该错误表示在 $_POST[] 数组中找不到索引 Name。这是一个 PHP 通知,而不是一个显示停止错误,而是旨在传达您正在引用一个不存在的值。如果正常/预期该值可能为空/null,则可以安全地忽略该通知。

除了这个问题之外,您应该在 SQL 语句中引用之前清理公共(public)值,即:

$name = mysql_real_escape_string($_POST['Name']);
$email = mysql_real_escape_string($_POST['Email']);

其他一些注意事项:

  • 在调用 mysql_connect() 时,不需要包装变量 $host$username $password 放在引号中。调用 mysql_select_db() 时的 $db_name 也是如此。它们已经是上面几行中定义的字符串,因此这是多余的。

  • 也许在 SQL 查询之前对 $_POST[] 中的值进行一些验证是个好主意?例如,如果 Name 值为空,您可以通过这种方式输出错误。

关于php - 将表单连接到数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17385119/

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