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

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 42
    Points
    42
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Points : 30
    Points
    30
    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 du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 42
    Points
    42
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Points : 30
    Points
    30
    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 du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 42
    Points
    42
    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 éminent sénior

    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
    Points : 10 727
    Points
    10 727
    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 ?

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Je pense (c'est la configuration de base de wamp), on peut voir ca ou?

  8. #8
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    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

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

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

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    essaye d'inclure requete.php avant la ligne 1 de ce que tu as mis de ton index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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'])

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/04/2015, 12h57
  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, 23h14
  3. Réponses: 4
    Dernier message: 01/08/2011, 12h24
  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, 10h38
  5. Réponses: 15
    Dernier message: 31/01/2007, 23h03

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