我正在建立一个小型论坛,但我的一个页面遇到了问题。我正在从一个成功到达页面的表单中获取数据,尽管查询没有运行,因此页面没有被重定向。填写完表格后,我在我的表格上单击“发布”,但我只得到一个包含回显数据的空白页面,我不明白为什么会这样。它正在接收数据,所以我不明白为什么查询没有运行。
我已经在下面添加了我的 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);
最佳答案
首先,你需要重构你的代码来防止sql注入(inject)。
您可以在每个 $_POST
索引上使用 $mysqli->real_escape_string()
已更新
$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();
}
关于php - 页面不会重定向,因为没有插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55433916/