我已经检查并重新检查了我的代码,以了解我正在执行的教程,但我仍然无法弄清楚它有什么问题。一些帮助将不胜感激。php和mysql代码
我正在构建一个处理来自另一页面的表单数据的页面。下面是我遇到麻烦的部分标记。
<pre>
if (isset($_POST['submit'])) {
// Process the form
$subject_id = $_GET["subject"];
$pageName = $_POST["pageName"];
$pagePosition = $_POST["pagePosition"];
$pageVisible = $_POST["pageVisible"];
$pageContent = $_POST["pageContent"];
if (!empty($errors)) {
$_SESSION["errors"] = $errors;
redirect_to("new_page.php");
}
$query = "INSERT INTO pages (subject_id, menu_name, position, visible, content) VALUES ('{$subject_id}' , {$pageName}, {$pagePosition} ,{$pageVisible} ,{$pageContent})";
$result = mysqli_query($connection, $query);
if ($result) {
// Success
$_SESSION["message"] = "Page created.";
redirect_to("manage_content.php");
} else {
// Failure
$_SESSION["message"] = "Page creation failed.";
redirect_to("new_page.php?subject={$subject_id}");
}
</pre>
我已经签出了提交到表单处理页面并提交表单正确提交的页面。我也检查了我引用的所有外部函数,并且它们都工作。另外,使用$ _GET超全局的第一个变量工作得很好。问题是查询以某种方式无法拉入4 $ _POST变量。如果我用硬代码值替换所有变量值,查询就会正常进行,并在我的表中创建一个新行。 任何与此有关的帮助将不胜感激,因为我已经多次检查并重新检查了这一点,我确信我错过了一些非常小的东西,但这让我发疯。 谢谢。
如果您已经在使用MySQLi,那么您在SQL的变量周围缺少引号,并且应该使用准备好的语句。您的代码容易受到SQL注入和XSS – ILikeTacos 2014-09-23 15:19:21
使用缩进! – Edward 2014-09-23 15:22:53