再次是我。我试图对我的网站发表评论,显然它正在工作:/,就像在数据库中它显示插入的值,但每次刷新页面或转到页面时,我都会收到此错误:
注意:未定义索引:第38行/home/kall0467/public_html/svale_rejser/comments.php中的user_comment_name 注意:未定义索引:第39行/home/kall0467/public_html/svale_rejser/comments.php中的user_comment_message已添加1条记录
我一直想弄清楚它2天。这是代码:
<?php
$con = mysql_connect("URL","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$result = mysql_query("SELECT * FROM comments");
echo "<table border='1'>
<tr>
<th>Username</th>
<th>Comment</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['username'] . "</td>";
echo "<td>" . $row['comment'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
$con1=mysqli_connect("url","username","password","db-name");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$user_comment_name = $_POST['user_comment_name'];
$user_comment_message = $_POST['user_comment_message'];
$sql1="INSERT INTO user_comment (user_comment_name, user_comment_message)
VALUES
('$user_comment_name','$user_comment_message')";
if (!mysqli_query($con1,$sql1))
{
die('Error: ' . mysqli_error($con1));
}
echo "1 record added";
mysqli_close($con1);
?>
<form action="" method="post">
Name <input type="text" name="user_comment_name">
Message <input type="text" name="user_comment_message">
<input type="submit">
</form>
奇怪的是,当我将第二个mysqli连接放入另一个名为insert.php的文件(例如)并放入其中时,它可以工作,但它会将我引导到一个我不想要的白页。所有帮助赞赏的家伙!干杯:)
答案 0 :(得分:2)
通知错误源于您正在重定向/查看页面:
$user_comment_name = $_POST['user_comment_name'];
此行期望在通过POST提交值时加载您的页面。
为了验证此信息是否实际发布,您应该检查:
例如 if( isset($_POST))
此外(添加@ h2ooooooo的评论)请注意,您正在将用户提交的POST值中的数据直接插入数据库而不需要卫生设施。这就是说,任何人都可以使用您当前的设置破解您的数据库。还尝试转移到mysqli_ functions和PDO中提供的预处理语句,避免编写基于mysql_ *函数的新代码。它们被认为是不好的做法,将在不久的将来从PHP中删除。
答案 1 :(得分:0)
您可以使用@(错误控制运算符在php中)解决此错误,如下所示
$user_comment_name = @$_POST['user_comment_name'];
$user_comment_message = @$_POST['user_comment_message'];
但这不是正确控制错误的正确方法。
在值提取和插入之前的代码中,您必须设置if(isset)
条件
示例强>
if(isset($_POST['submit']))
{
$user_comment_name = $_POST['user_comment_name'];
$user_comment_message = $_POST['user_comment_message'];
$sql1="INSERT INTO user_comment (user_comment_name, user_comment_message)
VALUES
('$user_comment_name','$user_comment_message')";
if (!mysqli_query($con1,$sql1))
{
die('Error: ' . mysqli_error($con1));
}
echo "1 record added";
mysqli_close($con1);
}