Question

<?
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? -->
Était-ce utile?

La solution

L'exécution du script continue après la définition d'un en-tête Emplacement: (ou de tout autre appel à en-tête () , d'ailleurs). Si vous souhaitez que la redirection se produise immédiatement, sans l'exécution du script, return; ou die; immédiatement après l'appel de header () . .

Autres conseils

Les cookies sont envoyés dans l’en-tête. L'en-tête complet est évalué (y compris la configuration du cookie), puis le navigateur est redirigé.

Essayez ceci:

header('Location: ../');
exit();

La page (y compris vos en-têtes) est envoyée uniquement après l'exécution de "tous" vos php (sauf si vous lui dites d'arrêter avec die () ou exit ());

le rapport d'erreurs est désactivé, cela vous aiderait avec l'erreur de syntaxe et vaut toujours la peine d'être fait dans un environnement de développement.

ini_set('display_errors',1);
error_reporting(E_ALL & ~E_NOTICE);

EDIT: il y avait une erreur de syntaxe avec un double point-virgule mais cela semble avoir été corrigé

vous devez également appeler exit () après que votre en-tête ou l'exécution du script ne s'arrête pas et que le cookie est défini

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top