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 05/06/2008, 01h14   #1
Invité de passage
 
Inscription : mai 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 37
Points : 4
Points : 4
Par défaut [Cookies] Problème avec les cookies

Bonsoir,

J'ai un script de connexion et quand je rentre les identifiants php me retourne l'erreur cette erreur:

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\chroniques\connexion.php:5) in c:\program files\easyphp1-8\www\chroniques\connexion.php on line 57

pour mes deux cookies soit les lignes 57 et 58

les lignes en questions:
Code :
1
2
setcookie("ID", $row["id_membre"], $expiration, "/");
setcookie("NOM", $row["login"], $expiration, "/");
on fichier html:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<HTML>
<HEAD>
<TITLE>Connexion</TITLE>
<TITLE>Inscription</TITLE>
</HEAD>
<BODY>
<FORM ACTION="connexion.php" METHOD="post">
<TABLE WIDTH="150">
<TR><TD ALIGN="center"><H3>Connexion</H3></TD></TR>
<TR><TD><FONT>Nom d'utilisateur :</FONT></TD></TR>
<TR><TD><INPUT TYPE="text" NAME="nom" MAXLENGTH="30" /></TD></TR>
<TR><TD><FONT>Mot de passe :</FONT></TD></TR>
<TR><TD><INPUT TYPE="password" NAME="pass" MAXLENGTH="20" /></TD></TR>
<TR><TD><INPUT TYPE="checkbox" NAME="auto" />Connexion automatique à<BR>chaque visite
<TR><TD ALIGN="center"><INPUT TYPE="submit" NAME="connexion" VALUE="Ouvrir sa session" /></TD></TR>
</TABLE>
</BODY>
</HTML>
Mon fichier php:
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
<?php
require_once("inc/conf.inc.php");
?>
 
<?php
if(isset($_COOKIE["ID"]))
{
     header("Location: index.php");
}
else
{
	if(isset($_POST["connexion"]))
		{
			if(!eregi("^[a-z0-9_]{4,30}$", $_POST["nom"]))
				{
					echo "Votre nom d'utilisateur doit comporter entre 4 et 30 caractères<BR />";
				}
			elseif(!eregi("^[a-z0-9]{4,20}$", $_POST["pass"]))
				{
					echo "Votre mot de passe doit comporter au moins 4 caractères<BR />";
				}
			else
				{
					$db = mysql_connect($sql_server,$sql_user,$sql_pswd);
					mysql_select_db($sql_bdd, $db);
 
					$req = mysql_query("SELECT id_membre, login, md5, activation FROM tbl_membres WHERE login = '".$_POST["nom"]."'");
 
					if(!$req)
						{
							echo "Une erreur est survenue lors de la tentative de connexion";
						}
					else 
						{
							if(mysql_num_rows($req) == 0)
								{
									echo "Le nom d'utilisateur ".$_POST["nom"]." n'existe pas";
								}
							else
								{
									$row = mysql_fetch_array($req);
 
									if($row["activation"] == 0)
										{
											echo "Votre compte utilisateur n'a pas été activé";
										}
									else
										{
								            if(md5($_POST["pass"]) != $row["md5"])
												{
													echo "Votre mot de passe est incorrect";
												}
											else
												{
													$expiration = empty($_POST["auto"]) ? 0 : time() + 90 * 24 * 60 * 60;	
 
													setcookie("ID", $row["id_membre"], $expiration, "/");
													setcookie("NOM", $row["login"], $expiration, "/");
 
													mysql_close();
													echo($_COOKIE["ID"]) ;
												}								
										}
								}		
						}
				}		
		}
}
?>
Est-ce que quelqu'un pourrait m'aider à règler ce problème?

Merci.
Sakeno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 01h40   #2
Membre éclairé
 
Développeur Web
Inscription : septembre 2004
Messages : 352
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2004
Messages : 352
Points : 396
Points : 396
Pour faire un setcookie, il faut le faire avant toute affichage et entête.
Chengj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 08h47   #3
Invité de passage
 
Inscription : mai 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 37
Points : 4
Points : 4
En clair, je dois les créer des le début de mon fichier php?
Sakeno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 15h13   #4
Membre éclairé
 
Développeur Web
Inscription : septembre 2004
Messages : 352
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2004
Messages : 352
Points : 396
Points : 396
Oui, c'est comme pour session_start().
Chengj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 01h21   #5
Invité de passage
 
Inscription : mai 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 37
Points : 4
Points : 4
Merci ça fonctionne en mettant le setcookies au début de mon fichier HTML.
Sakeno 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 01h51.


 
 
 
 
Partenaires

Hébergement Web