我正在建立一个小型论坛,而我的其中一个页面遇到了问题。尽管没有运行查询,但我正在从成功到达页面的表单中获取数据,因此,页面没有被重定向。填写完表单后,我单击表单上的post,我只得到一个空白页面,其中包含我的回声数据,我不知道为什么会这样。它正在接收数据,所以我不明白为什么查询没有运行。
我在下面添加了我的question-function.php代码,并且可以根据需要添加表单数据,尽管由于数据已到达问题功能页面,所以我看不到该页面上怎么有问题。
<?php
include "../functions/db.php";
$title = isset($_POST['title']) ? $_POST['title'] : "";
$content = isset($_POST['content']) ? $_POST['content'] : "";
$category = isset($_POST['category']) ? $_POST['category'] : "";
$userid = isset($_POST['userid']) ? $_POST['userid'] : "";
$datetime=date("Y-m-d h:i:sa");
$sql = "INSERT INTO tblpost(title,content,cat_id,datetime,user_Id) VALUES ('" . $title . "','" . $content . "','" . $category . "','" . $datetime . "','" . $userid . "')";
$result = $mysqli->query($sql);
echo $title;
echo $content;
echo $category;
echo $userid;
if($result==true)
{
echo '<script language="javascript">';
echo 'alert("Post Successfully")';
echo '</script>';
echo '<meta http-equiv="refresh" content="0;url=content.php" />';
}
?>
我应该定向到content.php,并且应该有新的帖子。与我当前收到的空白页相反,这就是这种情况的发生。
编辑:
db.php:
<?php
/* Database connection settings */
$host = 'xxxx';
$user = 'xxxx';
$pass = 'xxxx';
$db = 'xxxx';
$mysqli = new mysqli($host,$user,$pass,$db) or die($mysqli->error);
答案 0 :(得分:1)
首先,您需要重组代码以防止sql注入。
您可以在每个$mysqli->real_escape_string()
索引上使用$_POST
已更新
$sql = "INSERT INTO tblpost(title,content,cat_id,datetime,user_Id)
VALUES ('{$title}','{$content}','{$category}','{$datetime}','{$userid}')";
$result = $mysqli->query($sql);
if ($result) {
//Your block of code
} else {
printf("Errormessage: %s\n", $mysqli->error);
$mysqli->close();
die();
}