为了账号安全,请及时绑定邮箱和手机立即绑定

PHP标头()无法正确重定向

PHP标头()无法正确重定向

PHP
UYOU 2021-04-27 09:14:20
header()不会重定向到我想要的页面。没有错误消息,并且标头功能在Xampp中可以正常工作,但在生产Web服务器中则不能。我要完成的工作是,在链接表中,当我单击APR按钮时,“状态”列立即变为“已批准”。这可以在localhost环境中工作,但不能在生产服务器中工作。我已经尝试过ob_start和ob_end_flush,还检查了是否有空格或线条。我还删除了index.php之前的“ ./”。// this is the reservation.phpif (isset($_GET['apr'])) {  $rsID = $_GET['apr'];  $query = $conn->query("UPDATE reservations SET reservStatus = True WHERE   reservID = $rsID");  header("location: ./index.php");}// this is the index.php<?php   require 'header.php';   if (isset($_SESSION['user_info'])) {     include 'reservation.php';   } else {     include 'login.form.php';   }   include 'footer.php';我希望它将重定向到index.php,从那里开始,如果会话已经开始,它将把页面引导回Reservation.php。
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

即使重定向标头之后,PHP脚本也不会停止,您必须通过调用die();函数来停止继续加载PHP脚本


// this is the reservation.php

if (isset($_GET['apr'])) {

  $rsID = $_GET['apr'];

  $query = $conn->query("UPDATE reservations SET reservStatus = True WHERE 

  reservID = $rsID");

  header("location: ./index.php")


  // Add these two lines

  die();

  exit();

}

您也可以在脚本中每个重定向标头下方添加这些行,谢谢...。


更新

我想我遇到了您的问题,到目前为止,您所看到的是在显示网站标题部分的欢迎消息后,您正在重定向页面,


因此,实际上,在任何类型的输出(通过PHP)发送到浏览器后(在您的情况下,标题部分中的欢迎消息),您都无法调用标头函数,因为PHP最初Content-type是在您首先从浏览器上显示任何内容之前向浏览器发送标头的PHP


现在,您有两种方法


1)包括用于重定向的JavaScript


以此替换您在reservation.php中的标题行


echo ("<script> window.location = 'http://cdnj-nas.synology.me/cdnj/index.php'; </script>");

或者,如果这不起作用


echo ("<script> location.replace('http://cdnj-nas.synology.me/cdnj/index.php');  </script>");

2)您可以在顶部的header.php文件中检查此重定向条件


查看完整回答
反对 回复 2021-05-07
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信