【发布时间】:2011-11-21 04:15:03
【问题描述】:
我遇到了 PHP redirect_to 的问题。我有一个表单,用户可以在其中选择要上传的图像。成功上传后,我希望将用户重定向到列出数据库中所有图像的页面。以下代码来自名为upload_image.php 的PHP 文件。它与我要重定向到的页面 list_images.php 位于同一目录中。我已将问题范围缩小到以下代码:
if(isset($_POST['submit'])){
$image = new Image(); //User defined class
$image->caption = $_POST['caption']; //Places caption text field in the database
$image->attach_file($_FILES['file_upload']); //Copies image to images folder
if($image->save()){
//Success
$session->message("Image uploaded successfully!");
redirect_to('list_images.php'); //PROBLEM AREA. Page never redirects.
}else{
//Failure
$message = join("<br />", $image->errors);
}}
redirect_to() 的函数如下:
function redirect_to($location = NULL){
if($location != NULL){
header("Location: {$location}");
exit;
}}
上传的图片总是被成功复制到正确的位置,并且它的信息被存储在数据库中。然而,提交后,我总是在浏览器中留下一个空白页面和 upload_image.php 的 url。通过无数回声测试,我确定问题发生在 redirect_to('list_images.php');我可以在redirect_to 之前将文本回显到空白页上,但是redirect_to 之后的任何内容都不会被执行。
有人有什么建议吗?
谢谢!
【问题讨论】:
-
redirect_tois not a stock PHP function,因此您需要提供其源代码,以便我们有机会帮助您。 -
redirect_to();不是原生 PHP 函数。请提供它的定义。 -
redirect_to 不是原生 php 函数,因此请包含您的代码。
-
“我总是留下一个空白页 [...] 通过无数次回声测试”...您知道您可以只使用 set the errorlevel,对吗?
-
在调用
exit()后,您将无法输出或执行任何操作,如果这是您的意思。无论如何,设置header("Location: ..")时应该会发生重定向,所以还有另一个问题..
标签: php