<?
session_start();
$id = $_SESSION['id'];
$email = $_COOKIE['email'];
$password = $_COOKIE['password'];
header('Location: ../');
// I tell it to redirect...
$cookie_expires = time() + 60*60*24;
$cookie_path = '/';
$cookie_name = 'temporary';
$cookie_value = 'Your account was deleted.';
setcookie($cookie_name, $cookie_value, $cookie_expires, $cookie_path);
// ...but the cookie is set!
?>
<!-- Why? -->
答案 0 :(得分:10)
在设置Location:
标题(或对此header()
的任何其他调用)之后,脚本继续执行。如果您希望在调用return;
后立即执行重定向,而不会执行其余脚本,die;
或header()
。
答案 1 :(得分:2)
Cookie作为标题的一部分发送。评估整个标头(包括设置cookie),然后浏览器重定向。
答案 2 :(得分:2)
试试这个:
header('Location: ../');
exit();
页面(包括你的标题)仅在执行完所有php后发送(除非你告诉它用die()或exit()停止);
答案 3 :(得分:0)
您是否已关闭错误报告,这可以帮助您解决语法错误,并且总是值得在开发环境中进行。
ini_set('display_errors',1);
error_reporting(E_ALL & ~E_NOTICE);
编辑:双分号出现语法错误但似乎已经纠正
在您的标题或脚本执行不会停止并且cookie将被选中后,您还需要调用exit()