PHP header () неправильно перенаправляет - PullRequest
0 голосов
/ 19 апреля 2019

header () не будет перенаправлять на страницу, которую я хотел. Нет сообщений об ошибках, и функция заголовка отлично работает в Xampp, но не на рабочем веб-сервере.

Что я пытаюсь сделать, так это то, что в таблице ссылок, когда я нажимаю на кнопку APR, столбец STATUS немедленно изменяется на «Одобрено». Это работает в локальной среде, но не на рабочем сервере.

Я уже попробовал ob_start и ob_end_flush, я также проверил, есть ли пробелы или строки.

Я также удалил "./" предшествующий index.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");
}

// 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 и оттуда, если сессия будет запущена, он перенаправит страницу обратно на booking.php

1 Ответ

1 голос
/ 19 апреля 2019

PHP-скрипт не остановится даже после перенаправления заголовка. Вы должны остановить загрузку PHP-скрипта, вызвав die(); function

// 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();
}

Вы также можете добавить эти строки ниже каждого заголовка перенаправления вВаш сценарий, Спасибо ....

update

Я думаю, у меня возникла ваша проблема, и до сих пор я получаю сообщение о том, что вы перенаправляете страницу после приветственного сообщения в разделе заголовкаваш веб-сайт отображается,

Так что на самом деле вы не можете вызвать функцию заголовка после любого типа вывода (через PHP) отправки в браузер (в вашем случае приветственное сообщение в разделе заголовка), потому что PHP изначально отправляет Content-type заголовок браузера перед первым отображением чего-либо в браузере из PHP

Теперь у вас есть два способа сделать это

1) Включить JavaScript для перенаправление

замените строку заголовка в booking.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 вверху

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...