用于提交到表中的信息的代码中的未定义变量


Undefined Variable in code for information to be submitted into the table

一直在努力在我的网站上建立一个论坛,并遇到了一些问题,我的变量的信息,我提交到我的表。请不要投票给我或关闭这个,因为我这个问题已经回答了,因为我看了其他帖子,没有什么帮助我。下面是我的代码:'

<?php include 'header.php';
$host="XXXXX"; // Host name 
$username="XXXXX"; // Mysql username 
$password="XXXXX"; // Mysql password 
$db_name="XXXXX"; // Database name 
$tbl_name="XXXXXX"; // Table name 
error_reporting(E_ALL); ini_set('display_errors', 1);

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
if(isset($_GET["submit"])){
$topic=$_POST['topic'];
$detail=$_POST['detail'];
$datetime=date("d/m/y h:i:s"); 
}
$sql="INSERT INTO $tbl_name(topic, detail, datetime)VALUES('$topic','$detail','$datetime')";
$result=mysql_query($sql);
if($result){
echo "Successful<BR>";
echo "<a href=gen.phpView your topic</a>";
}
mysql_close()
?>

错误:注意:未定义变量:在/home/xxxx/xxxx/gen.php第21行

您确定存在$_GET['submit']变量吗?错误是没有设置变量$topic。如果您尝试这样做会发生什么:

$topic = "test";
$detail = "test";
$datetime = date("d/m/y h:i:s", time()); 
if(isset($_GET["submit"])){
$topic=$_POST['topic'];
$detail=$_POST['detail'];
$datetime=date("d/m/y h:i:s"); 
}

是否插入test?

你确定你是通过POST发送数据吗,我告诉你,因为你在这里也评估了一个GET:

if(isset($_GET["submit"])){
    $topic=$_POST['topic'];
    $detail=$_POST['detail'];
    $datetime=date("d/m/y h:i:s"); 
}

此外,您应该评估是否通过post没有获得任何空值,或者在if语句之前简单地将变量声明为空字符串。

您是否回显了$_POST数组的var_dump ?