Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2008, 00h16   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 14
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : octobre 2007
Messages : 14
Points : 2
Points : 2
Envoyer un message via MSN à Jimmy Monkey
Par défaut [Cookies] Cannot modify header information sur setcookie

Bonjour tout le monde,

J'ai un petit prob avec mon script de connection sur mon site web. Lorsqu'on se connecte (avec un bon nom d'utilisateur et mot de passe), le message d'erreur suivant s'affiche:
Citation:
Warning: Cannot modify header information - headers already sent by (output started at /home/etrop4/public_html/signin.php:5) in /home/etrop4/public_html/signin.php on line 62
Voici un bout de mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
else
{
 
if($_POST["password"] != $row["password"])
{
$message = "Votre mot de passe est incorrect";
}
else
{
$message = "Vous êtes connecté";
 
$expiration = empty($_POST["auto_signin"]) ? 0 : time() + 90 * 24 * 60 * 60;
 
setcookie("id_utilisateur", $row["id"], $expiration, "/");
setcookie("nom_utilisateur", $row["user_name"], $expiration, "/");
 
mysql_close();
Le prob se situe dans les ''setcookies''...

Merci pour votre aide!
Jimmy Monkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 11h15   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
tu trouveras plus d'explications sur l'erreur là :
http://php.developpez.com/faq/?page=...s_already_sent
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 21h06   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 14
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : octobre 2007
Messages : 14
Points : 2
Points : 2
Envoyer un message via MSN à Jimmy Monkey
Merci beaucoup pour ton aide Mathieu, mais je ne réussis toujours pas à identifier ce qui ne permet pas aux 'setcookie' de s'effectuer... Je ne vois pas d'echo et de code HTML quelconque les précèdant...

Voici ce qui se trouve dans ma page:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php include('style/cookie_design.php'); ?>
<?php include('lang/cookie_lang.php'); ?>
<?php include('lang/'.$_COOKIE['lang'].'-lang.php'); ?>
 
<?php
if(isset($_COOKIE["id_utilisateur"]))
{
     header("Location: index.php");
}
else
{
$hide_form = false;    
 
if(isset($_POST["sent"]))
{
if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["user_name"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 2 et 20 caracteres";
}
elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["password"]))
{
$message = "Votre mot de passe doit comporter au moins 6 caracteres";
}
else
{
mysql_connect("localhost", "...", "...");
mysql_select_db("...");
 
$result = mysql_query("SELECT id, user_name, password, validation FROM members WHERE user_name = '" . $_POST["user_name"] . "'");
 
if(!$result)
{
$message = "Une erreur est survenue lors de la tentative de connexion";
}
else
{
if(mysql_num_rows($result) == 0)
{
$message = "Le nom d'utilisateur " . $_POST["user_name"] . " n'existe pas";
}
else
{
$row = mysql_fetch_array($result);
 
if($row["validation"] == 0)
{
$message = "Votre compte utilisateur n'a pas été activé";
}
else
{
 
if($_POST["password"] != $row["password"])
{
$message = "Votre mot de passe est incorrect";
}
else
{
$message = "Vous etes connecté";
 
$expiration = empty($_POST["auto_signin"]) ? 0 : time() + 90 * 24 * 60 * 60;
 
setcookie("id_utilisateur", $row["id"], $expiration, "/");
setcookie("nom_utilisateur", $row["user_name"], $expiration, "/");
 
mysql_close();
}
}
}
}
}
}    
}
?>
Jimmy Monkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 22h03   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
sur la 4e ligne tu as un saut de ligne entre "?>" de la ligne 3 et "<?php" de la ligne 5 d'où le problème
ton code devrait plutôt être comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
<?php
include('style/cookie_design.php');
include('lang/cookie_lang.php');
include('lang/'.$_COOKIE['lang'].'-lang.php');
 
if (isset($_COOKIE["id_utilisateur"]))
{
     header("Location: index.php");
}
// ...
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 22h44   #5
Invité de passage
 
Inscription : octobre 2007
Messages : 14
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : octobre 2007
Messages : 14
Points : 2
Points : 2
Envoyer un message via MSN à Jimmy Monkey
Ah okay... Merci.
Jimmy Monkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h45.


 
 
 
 
Partenaires

Hébergement Web