Перенаправление страницы после установки заголовков с помощью php - PullRequest
0 голосов
/ 30 декабря 2011

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

<?php
 $id = $_GET['id'];
// Define MySQL Information.
$mysqlhost="************************"; // Host name of MySQL server.
$mysqlusername="**************"; // Username of MySQL database. 
$mysqlpassword="**************"; // Password of the above MySQL username.
$mysqldatabase="**************"; // Name of database where the table resides.
// Connect to MySQL.
mysql_connect("$mysqlhost", "$mysqlusername", "$mysqlpassword")or die("Could not     connect to MySQL.");
mysql_select_db("$mysqldatabase")or die("Could not connect to selected MySQL     database.");

$infosql = "SELECT * FROM premiersounds_users WHERE customer_id = $id";
$inforesult = mysql_query($infosql) or die(mysql_error());
$info = mysql_fetch_array($inforesult);


$l_date=$info['lockout_date'];

//Get current date from server
$format="%m/%d/%y";
$c_date=strftime($format);
//set sessions
$_SESSION['current_date'] = $c_date;
$_SESSION['lockout_date'] = $l_date;

//Check is Current date = lockout date
if ($c_date >= $l_date) 
{ header("location:/planner_scripts/documnet_editors/edit_weddingplanner.php?id=$id");     } else {echo 'Whoops! Were sorry your account has been locked to edits because your event     is less than 48 hours from now or your event has passed. To make changes to your event     please contact your DJ.'; echo'<br/>'; echo ' Todays Date: ';echo $c_date; echo ','; echo '     Last Date for edits: '; echo $l_date;}
?>

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Вы можете использовать буферизацию вывода , чтобы остановить что-либо отображаемое.В качестве альтернативы просто убедитесь, что перенаправление выполняется в логике, прежде чем что-либо передавать пользователю.

Правильный синтаксис: Location: http://....

Примечание:

  • Капитал L
  • Пробел между : и URL
  • Абсолютный URL (относительные URL не соответствуют RFC, хотя могут работать в большинстве браузеров)
2 голосов
/ 30 декабря 2011

Я хотел бы убедиться, что это первый запуск кода, чтобы заголовки еще не были отправлены, но если вы не можете поместить его туда, у вас есть 2 варианта:

  1. Использовать JavaScript: window.location.url = ...
  2. Поместите метатег обновления в раздел <head> вашей страницы: <meta http-equiv="refresh" content="0;url=...">

2 варианта, если вы не можете изменить код до запуска вашего раздела ...

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