IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

problème avec des cookies qui ne se créent pas :/


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    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).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Par défaut
    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?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    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.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Par défaut
    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

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    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 ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/04/2015, 11h57
  2. Problème avec des classes qui etendent la classe View
    Par amsagitos dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 14/09/2011, 22h14
  3. Réponses: 4
    Dernier message: 01/08/2011, 11h24
  4. [GD] Problème avec des fonctions qui créent des éléments dans une image.
    Par magnus2229 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/07/2011, 09h38
  5. Réponses: 15
    Dernier message: 31/01/2007, 22h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo