PHP重定向不适用于包含SQL查询的脚本

时间:2014-05-19 04:07:03

标签: php mysql redirect submit refresh

好吧,所以我已经将这段代码倾倒了16个多小时,我无法找到问题所在。在你说什么之前 - 我知道我很容易注入SQL,我需要设置更多准备好的语句;一旦我得到代码工作,我的下一步就是解决这些问题。我也知道我需要在标题调用中添加TRUE和303参数 - 我只是试图让它在此时运行。

代码工作得很漂亮,直到我开始在刷新时删除表单提交并在最后添加重定向。

遇到问题的页面名为updateorder.php,这里是它的Pastie链接:http://pastie.org/9188291

我创建了一个名为Issue.php的页面,以便让所有人离开页面并消除任何html代码输出的可能性。这没有用。 我删除了?> PHP从最后关闭标签,因为所有代码都是PHP并且消除了任何空白区域的可能性。那也没有帮助。

此前的页面有几个提交按钮。此页面查看按下的按钮,并在符合IF条件时运行代码。

  • 当我使用DeleteThisOrder按钮提交表单时,它运行正常。
  • 当我使用PrintOnly按钮提交表单时,它运行正常。
  • 当我使用UpdateOnly按钮提交表单但$ ThisStatus<> 1时,它运行完美。

以下是问题:

如果我按下UpdateOnly按钮并且$ ThisStatus执行== 1,那么它将保留在此页面(updateorder.php)上并且屏幕为空白。 如果我使用UpdateCommit按钮,确实会发生这种情况。

当它运行UpdateOnly脚本的这个特定部分时发生了一些事情:抱歉,我没有10个声誉,所以它不会让我提供更多链接。以下是您可以在上面的Pastie链接中替换的Pastie编号,以查看此部分的代码:9188298

在运行UpdateCommit脚本的这个特定部分时会发生一些事情:抱歉,我没有10个声誉,所以它不会让我提供更多链接。以下是您可以在上面的Pastie链接中替换的Pastie编号,以查看此部分的代码:9188306

无论它做什么,都会导致它不重定向。 SQL代码执行并执行它应该在数据库中执行的所有操作;它更新了订单,它更新了库存 - 所有这些都执行得很好 - 它只是没有重定向,它在重定向之前在脚本的某个地方停顿并留给我一个空白的屏幕。 / p>

我已经在网站上完成了高级搜索,并使用关键字PHP,MySQL,Redirect查看了我能找到的所有内容,而不知道它为什么不起作用。我已逐行查看此代码以查找空格,尝试使用整个网站地址进行重定向,在冒号和标题中的链接之间添加了一个空格...我已尝试过很多东西。我甚至尝试过不健康的事情,比如在我的桌子上敲我的头,用手掌敲我的头,拉我的头发......没有结果。我非常感谢你的时间。

以防万一 - 这是我所需的数据库连接文件中的代码:抱歉,我没有10个声誉,所以它不会让我提供更多的链接。以下是您可以在上面的Pastie链接中替换的Pastie编号,以查看此部分的代码:9188351

顺便说一句......因为你可能会告诉我还在学习,所以它可能不是一个美丽的代码'但是我正努力去那儿。再次感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在开发中时,将错误报告添加到文件的顶部

error_reporting(E_ALL);
ini_set('display_errors', 1);

如果在您的代码中找到错误,则会发出错误信号。

根据您的评论中的错误消息:

要删除Cannot modify header information - headers already sent...消息,请放置

<?php session_start(); ?><?php // rest of your code...作为您的第一行代码,同时摆脱现在的另一个代码,然后是代码的其余部分。确保上面没有任何内容,HTML等,包括任何空格。如果仍然收到该错误消息,请确保将其保存为没有BOM的UTF-8。 (咨询脚注

对于Notice: Undefined index: UpdateOnly错误消息,请确保您的表单元素的命名没有拼写错误。即name="UpdateOnly" --- UpdateOnlyupdateonly不同,PHP区分大小写。

至于你提到的$result->free();你没有这个功能,所以只需删除它。


<强>脚注:

  • BOM(又名字节顺序标记)

有关此主题的更多信息,请访问:https://en.wikipedia.org/wiki/Byte_order_mark

有关错误报告的详细信息,请访问:http://php.net/manual/en/function.error-reporting.php