Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交POST数据时显示PHP白色屏幕_Php_Mysql - Fatal编程技术网

提交POST数据时显示PHP白色屏幕

提交POST数据时显示PHP白色屏幕,php,mysql,Php,Mysql,我正在编写一个php脚本,它执行以下操作: error_reporting = -1 display_errors = 1 display_startup_errors = 1 接受来自文章编辑页面的传入文章数据 检查上一页上的下拉列表是否设置为“新建文件夹” 如果是,它会检查名为foldercreate的文本框中是否有内容 如果是,则将其插入数据库 如果没有,它将在数据库中创建一个杂项文件夹,并在插入中使用该文件夹 问题是,当我点击上一页上的表单提交按钮时,屏幕一直是白色的。它在地址栏中

我正在编写一个php脚本,它执行以下操作:

error_reporting = -1
display_errors = 1
display_startup_errors = 1
  • 接受来自文章编辑页面的传入文章数据
  • 检查上一页上的下拉列表是否设置为“新建文件夹”
  • 如果是,它会检查名为foldercreate的文本框中是否有内容
  • 如果是,则将其插入数据库
  • 如果没有,它将在数据库中创建一个杂项文件夹,并在插入中使用该文件夹
问题是,当我点击上一页上的表单提交按钮时,屏幕一直是白色的。它在地址栏中显示savearticle.php,但不显示其他内容。它甚至不会打印错误消息。我现在一定已经重写了大约三次了,所以请原谅代码中的任何逻辑错误,但我认为它应该可以正常工作。我只是想在进一步研究之前确定它是以现在的形式工作的

在过去,我发现代码中的echo语句对调试很有用,但它没有显示一条

在functions.php include中,我只是使用数据库连接信息,因为我跨多个页面使用它,没有任何问题

任何帮助都将不胜感激,因为这让人非常沮丧

<?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";

?>

while屏幕表示解析过程中发生了致命错误(几乎总是表示语法错误,如缺少分号)。将以下行添加到脚本顶部,查看错误是什么

ini_set('display_errors', 1);

另外,使用像这样的带有颜色代码的IDE,可以通过突出显示语法问题来极大地帮助您。

首先,错误报告和显示应该在您的开发环境中一直启动。在php.ini中,您应该具有以下内容:

error_reporting = -1
display_errors = 1
display_startup_errors = 1
只有在当前脚本顶部添加以下内容(调试后必须删除),才能在脚本中重新创建这些设置以进行调试:

现在再试一次。如果仍然一无所获,则用
die()
语句替换第一次调试
echo
。我通常使用
die('wtf')。如果
wtf?
显示在页面上,则将其剪切并粘贴到页面下方。继续,直到白色屏幕再次出现,您发现了问题


祝你好运

您需要更改您的选择,以便在
$folder
周围加上引号:

$query = "SELECT 'folderID' FROM folder WHERE name = '$folder';";

第一步:。对脚本文件和所有包含的文件执行命令行
php-l
,以查找有语法错误的文件。我以前尝试过,但没有显示任何错误消息。我使用的是Sublime Text 2(非常棒),但我似乎没有发现任何语法错误。捕捉得很好。OP,你应该考虑准备好的声明既安全又避免这样的错误。请看这里的例子:非常感谢!压力最大的总是那些小事。