我正在编写一个执行以下操作的PHP脚本:
问题是,当我点击上一页的表单提交按钮时,我一直看到白屏。它在地址栏中显示savearticle.php,但没有其他内容。它甚至不会打印出错误消息。我现在必须重写这个大约三次,所以请原谅代码中的任何逻辑错误,但它应该尽我所能。我只是想确保它在目前的形式下工作,然后再继续。
我觉得整个代码中的echo语句对于过去的调试很有用,但它不会显示一个。
在functions.php中,我只使用数据库连接信息,因为我在多个页面中使用它而没有问题。
任何帮助都会受到赞赏,因为这非常令人沮丧。
<?php
echo "start of file";
include_once 'functions.php';
echo "after include";
$title = $_POST[ 'title' ];
$body = $_POST[ 'body' ];
$folderselect = $_POST[ 'folderselect' ];
$foldercreate = $_POST[ 'foldercreate' ];
$newfolderflag = 99;
echo "after variables";
if ($folderselect === "Create New Folder") {
$folder = $foldercreate;
$newfolderflag = 0;
} else if ($foldercreate == NULL && $folderselect === "Create New Folder"){
$folder = "misc";
echo "Nothing selected. Putting in Miscellaneous folder.\n\n";
$newfolderflag = 0;
} else {
$folder = $folderselect;
}
if ($newfolderflag === 0) {
$query = "INSERT INTO folder ('name') VALUES ('$folder');";
if (mysqli_query($db, $query) == TRUE) { echo "New folder created successfully!\n\n"};
}
echo "after if statements";
$query = "SELECT 'folderID' FROM folder WHERE name = $folder;";
$result = mysqli_query($db, $query);
$row = array();
$row = mysqli_fetch_array($result);
$folder = $row['0'];
$query = "INSERT INTO article ( title, body, folderID, userID ) VALUES ('$title', '$body', '$folder', '$user');";
if (mysqli_query($db, $query) === TRUE) {
echo "Article Saved!\r";
echo "<a href="write.php">Back</a>";
}
echo "after database stuff";
?>
答案 0 :(得分:1)
您需要更改您的选择,以便用引号括起$folder
:
$query = "SELECT 'folderID' FROM folder WHERE name = '$folder';";
答案 1 :(得分:0)
while屏幕表示解析时发生致命错误(这几乎总是意味着语法错误,例如缺少分号)。将以下行添加到脚本的顶部,看看错误是什么。
ini_set('display_errors', 1);
此外,使用颜色代码的IDE(如NetBeans)可以通过突出显示语法问题来极大地帮助您。
答案 2 :(得分:0)
首先,错误报告和显示应该在您的开发环境中一直提升。在你的php.ini中,你应该有以下内容:
error_reporting = -1
display_errors = 1
display_startup_errors = 1
您可以在脚本中重新创建这些设置,仅用于调试,方法是在当前脚本的顶部添加以下内容(必须在调试后删除):
error_reporting(-1);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
现在再试一次。如果仍然没有得到任何结果,请将第一个调试echo
替换为die()
语句。我通常使用die('wtf?');
。如果页面上显示wtf?
,则将其剪切并粘贴到页面的下方。继续,直到白屏重新出现,你发现了问题。