Voici la structure web de ma page:php - Comment résoudre ce setcookie délivre
01.<?php // rnlogout.php
02.include_once 'rnheader.php';
03.echo "<h3>Log out</h3>";
04.
05.if (isset($_SESSION['user']))
06.{
07. destroySession(); // report error here!!!!!!
08. echo "You have been logged out. Please
09. <a href='index.php'>click here</a> to refresh the screen.";
10.}
11.else echo "You are not logged in";
12.?>
function destroySession()
{
$_SESSION=array();
if (session_id() != "" || isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time()-2592000, '/');
session_destroy();
}
01.<?php // rnheader.php
02.include 'rnfunctions.php';
03.session_start();
04.
05.if (isset($_SESSION['user']))
06.{
07. $user = $_SESSION['user'];
08. $loggedin = TRUE;
09.}
10.else $loggedin = FALSE;
11.
12.echo "<html><head><title>$appname";
13.if ($loggedin) echo " ($user)";
14.
15.echo "</title></head><body><font face='verdana' size='2'>"; // called first!!!!!
16.echo "<h2>$appname</h2>";
17.
18.if ($loggedin)
19.{
20. echo "<b>$user</b>:
21. <a href='rnmembers.php?view=$user'>Home</a> |
22. <a href='rnmembers.php'>Members</a> |
23. <a href='rnfriends.php'>Friends</a> |
24. <a href='rnmessages.php'>Messages</a> |
25. <a href='rnprofile.php'>Profile</a> |
26. <a href='rnlogout.php'>Log out</a>";
27.}
28.else
29.{
30. echo "<a href='index.php'>Home</a> |
31. <a href='rnsignup.php'>Sign up</a> |
32. <a href='rnlogin.php'>Log in</a>";
33.}
34.?>
S'il vous plaît un coup d'oeil la ligne 07
destroySession(); // report error here
Basé sur le manuel php, http://us2.php.net/setcookie
les cookies doit être envoyé avant toute sortie de votre script. Ici, le rnheader.php
appelle l'écho avant même l'appel de setcookie dans la fonction destroySession.
Alors, comment puis-je changer la structure de la page pour résoudre ce problème?
The error message is as follows:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\LPMJ_examples\robinsnest\rnheader.php:12) in C:\xampp\htdocs\LPMJ_examples\robinsnest\rnfunctions.php on line 41
Merci
Qu'est-ce que l'erreur dit? – Centurion
Nous ne pouvons pas vous dire comment changer la structure, parce que nous ne savons pas que 'rnheader.php' le fait. En règle générale, mettez toutes les commandes d'émission en-tête/cookie avant que quoi que ce soit ne soit sorti. –
@Vadim je peux dire avec un coup d'oeil rapide à la ligne 3 (sans regarder dans rnheader.php) que l'erreur est 'Impossible de modifier les informations d'en-tête - en-têtes déjà envoyés par' (et ainsi de suite;)) – teemitzitrone