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 07/07/2011, 00h12   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 56
Points : 13
Points : 13
Par défaut problème avec des cookies qui ne se créent pas :/

Bonsoir tout le monde,

J'ai un petit problème de cookies

sur ma page index.php, je test si mon COOKIE existe

Code :
1
2
3
4
5
6
7
8
<?php 
if(isset($_COOKIE['login']))
	{
		echo $_COOKIE['login'];
		echo'<input name="user_login" type="hidden" value="'.$_COOKIE['login'].'">';
		echo'<input name="user_password" type="hidden" value="'.$_COOKIE['password'].'">';
		echo '<script type="text/javascript">identification_auto();</script>';
	}
?>

ce dernier ce crée dans une autre page nomé requete 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
<?php 
if(!empty($_REQUEST['login']) && !empty($_REQUEST['password']))
		{
			$result = $connect->connexion($_REQUEST['login'],$_REQUEST['password']);
 
			if(is_array($result))
			{
 
			    $temps = 365*24*3600;
			    setcookie('password',$_REQUEST['password'],(time() + $temps));
				setcookie('login',$_REQUEST['login'],(time() + $temps));
 
				$_SESSION['id'] = $result["id"];
				$_SESSION['login'] = $result["login"];
				$_SESSION['mail'] = $result["mail"];
				echo 1;
			}else if($result == 'BLOQUER'){
				if(isset($_COOKIE['user'])) setcookie('user');
				echo 2;
			}else if($result == 'INEXISTANT'){
				if(isset($_COOKIE['user'])) setcookie('user');
				$essais = $connect->test_essais($_REQUEST['login']);
				echo 0;
			}
		}
?>
la session se met bien a jours, mais pas les cookies. (j'ai rafraichi la page)

Si par contre je le crée dans ma page index.php, ca passe sans problème

Quelqu'un aurait il une idée du problème?
Merci d'avance
healou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 15h24   #2
Nouveau Membre du Club
 
Inscription : juillet 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 36
Points : 27
Points : 27
Je comprend pas ton architecture,

cela n'a pas grande importance, mais requete.php se lance avant ou après le code qu'on voit d'index.php ?

Passer par java pour faire l'identification auto, c'est pas un peu lourd ? (ou alors c'est un devoir d'école ?)

Fais attention à la variable globale $_REQUEST, elle se forme dans un ordre particulier, et de toute façon il vaut mieux l'éviter dans un code propre ($_POST, $_GET, $_COOKIE = origine contrôlée).
Doonge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 13h21   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 56
Points : 13
Points : 13
Merci pour ta réponse

Il se lance apres.

Je me connecte à ajax (d’où le $_REQUEST mais je peux le mettre en $_GET, c'etait juste conseillé dans le livre de mettre l'autre ^^), ce système est plus approprié pour ce que je veux faire.

donc je resume

index.php -> fonction ajax(en fichier externe)-> requete.php->Login.php
quand l'user est détecté et n'est pas erroné, c'est à ce moment la que je defini ma session et mon cookies

le fichier requete.php s’exécute après l'index.php ceci pose-t-til un problème?
healou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 20h13   #4
Nouveau Membre du Club
 
Inscription : juillet 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 36
Points : 27
Points : 27
Normalement si c'est dans des champs de formulaire, c'est via $_POST que tu les reçois, mais je suis pas un fin connaisseur d'ajax.

Oui l'ordre a de l'importance, tu ne peux pas créer de cookie dès que du code HTML est envoyé.

En gros, y'a un échange d'information vite fait (l'en-tête HTTP ?), qui comprend notamment la déclaration et l'échange de cookies, et ENSUITE il envoie le code HTML petit à petit (compilé ou non par php).

Donc, si tu as décidé d'envoyer du code HTML via echo dans ton code, tu ne peux plus utiliser la fonction setcookie().
De plus, si une erreur arrive, et qu'il envoie un peu de code pour t'en informer, c'est également foutu pour setcookie().

Dès qu'il y a une sortie, tu ne peux pas utiliser setcookie(), ni aucune fonction header().

Quel est le niveau d'erreur dans ton script ?

Je soupçonne que si tu utilises Ajax pour faire un login "en live", tu vas devoir modifier les cookies aussi via Ajax.
Doonge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2011, 18h14   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 56
Points : 13
Points : 13
Ben je n'ai aucun erreur visible, c'est juste qu'il ne crée pas le cookie ^^
Mais c est bizare qu'il fait tout de même les variable de session non?

Je vai regarder du cote d'ajax pour les cookie =)

Merci bcp pour ton aide
healou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2011, 18h44   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par healou Voir le message
Ben je n'ai aucun erreur visible, c'est juste qu'il ne
ton niveau d'erreur est bien au maximum ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 21h17   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 56
Points : 13
Points : 13
Je pense (c'est la configuration de base de wamp), on peut voir ca ou?
healou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 23h06   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par healou Voir le message
Je pense (c'est la configuration de base de wamp), on peut voir ca ou?
dans ton phpinfo, verfie
- display_errors
- error_reportings
- output_buffering
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 11h23   #9
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 56
Points : 13
Points : 13
voici les info de mon php info

- display_errors: local value(on) master value(on)
- error_reportings: local value(30719) master value(30719)
- output_buffering: local value(1) master value(1)
healou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 13h39   #10
Nouveau Membre du Club
 
Inscription : juillet 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 36
Points : 27
Points : 27
essaye d'inclure requete.php avant la ligne 1 de ce que tu as mis de ton index.php
Code :
if(isset($_COOKIE['login']))


je ne crois pas que la fonction setcookie() tolère un seul paramètre (lignes 18 et 21 de requete.php).

(edit : je vois que tu as corrigé une erreur bizarre où tu cherchais $_REQUEST['user_login'] et $_REQUEST['user_password'] alors que tu crées des $_COOKIE['password'] et $_COOKIE['login'])
Doonge est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h40.


 
 
 
 
Partenaires

Hébergement Web