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 :

Setcookie ne marche pas à cause d'une variable


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut Setcookie ne marche pas à cause d'une variable
    Bonjour chers camarades
    comme le code suivant vous le dit , j'ai programmé une methode de login
    il y'aurait un nom secret pour le login et un autre qui s'affichera sur les posts et les topics etc ... nom de profile quoi !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql = mysql_query("SELECT * FROM ".prefix."MEMBERS WHERE M_LOGIN_NAME = '".mysql_real_escape_string($load_user_name)."' AND M_PASSWORD = '".mysql_real_escape_string($load_md5_user_pass)."' AND M_STATUS = '1' ") or die (mysql_error());
    	if(mysql_num_rows($sql) > 0){
    		$rs = mysql_fetch_array($sql);
    		$user_info = $rs;
    		$DBMemberID = $rs['MEMBER_ID'];
    		$DBUserlName = $rs['M_LOGIN_NAME'];
    		$DBUserName = $rs['M_NAME'];
    Mon probleme est au niveau de la setcookie
    quand je mets ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setcookie("omaelname" ,$DBUserName, time()+60*60*24*100); 
    setcookie("omaepss" ,$DBPassword, time()+60*60*24*100);
    le cookie se crée mais quand je mets a la place de $DBUserName
    je mets $DBUserlName,

    le cookie ne se crée pas le nouvea code est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setcookie("omaelname" ,$DBUserlName, time()+60*60*24*100); 
    setcookie("omaepss" ,$DBPassword, time()+60*60*24*100);
    En avez vous une idée ?

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Est ce que tu n'écrase pas tout simplement ta variable $DBUserlName par autre chose dans la suite de ton code ?? Est ce que tu as une erreur qui t'es générée ?? est ce que tu as le bon nom de variable ??

    Sinon, évites de mettre le mot de passe, même s'il semble crypté dans un cookie.

    Enfin, pour faire cela, il est préférable d'utiliser les sessions. Sinon, n'importe qui peut poster avec n'importe quel pseudo.


    Cordialement,
    Patouche

  3. #3
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    Non la variable n'est pas écrasée ,
    Pourtant je prefere la méthode COokie , ça ne veut pas dire que je n'utilise pas des sessions , mais j'ai un probleme de session que j'ai posté ici mais je n'ai pas reçu de bonnes reponses

    n'yaurait 'il pas d'autre problemes ?

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Si $DBUserlName est vide, je connais pas trop le comportement.

    Dans tous les cas, il est préférable d'utiliser les sessions pour faire ce genre de chose. C'est beaucoup plus sécurisé que de mettre les identifiants dans un cookie. En fait, c'est même fait pour réaliser ce genre de chose. En clair, c'est mieux, plus facile et plus adapté...

    N'importe qui qui passe après l'utilisateur peut récupérer les identifiants de connexion de la personne le précédent ce qui n'est pas vraiment top.

    Sinon, quelle est le contenu de $_COOKIE une fois que tu les as envoyé tes coookies. Regarde aussi tes headers pour voir si ton cookie est bien envoyé.


    Patouche

  5. #5
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    non la variable n'est pas vide
    on retien le $DBUSERLNAME
    de la base de donnée comm le montre le code ci dessus
    et si je garde la variabale DBUSERNAME dans le setcookie
    le cookie se crée bel et bien

    donc je me demande si une variable peut affecter son travail ,
    pour le probleme de la session ,

    une fois le navigateur fermé , la session ferme et quand j'ouvre mon site , il faut reentrer le nom d'utilisatuer et le mot de passe ce qui n'est pas top
    pour le coté securité ne t'inquiete pas c'est bien assuré

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Non, le nom d'une variable n'affecte pas le comportement de php. Si tu as un problème, c'est qu'il doit se situé autre part mais je sais pas où.

    As tu regardé à la dans tes headers si ton cookie était bien envoyé ?


    Patouche

  7. #7
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    les codes que j'ai donnés sont extraits du header
    d'ailleurs j'ai essayé de remplacer la variable dans le setcookie avec d'autres variable mais rien ne se passe
    le setcookie ne marche qu'avec $DBUSERNAME
    et j'ignore pourquoi !!!

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Non, en théorie, ça passe avec tout...

    Vide tes cookies, fait le ménage et essaie de faire un

    setcookie("omaelname" ,"toto", time()+60*60*24*100);

    Si ça passe, regarde le contenu de ta variable avec un var_dump. Tu verras tout de suite si tu as un problème et où il se situe.


    Patouche

  9. #9
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    heu j'ai essayé tot mais à veine
    je pense que tout le code de la session t'aidera alors voila
    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
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    $user_name = trim($_POST['user_name']);
    	$user_pass = trim($_POST['user_pass']);
                      $save_password  = $_POST['SavePassword'];
    	if (method == "login"){
    		$_SESSION['DFName'] = $user_name;
    		$_SESSION['DFPass'] = $user_pass;
    		$_SESSION['DFSavePass'] = $save_password;
    	}
    	if (method == "logout"){
    		$_SESSION['DFName'] = '';
    		$_SESSION['DFPass'] = '';
    		$_SESSION['DFSavePass'] = "";
    		setcookie("omaelname", "");
    		setcookie("omaepss", "");
    	head('index.php');
    	}
     
                      if($_COOKIE['omaepss'] AND $_COOKIE['omaelname']){
    	$load_user_name = $_COOKIE['omaelname'];
    	$load_md5_user_pass = $_COOKIE['omaepss'];
                          }else{
    	$load_user_name = $_SESSION['DFName'];
    	$load_user_pass = $_SESSION['DFPass'];
    	$load_md5_user_pass = MD5($load_user_pass);
                      }
     
    	$sql = mysql_query("SELECT * FROM ".prefix."MEMBERS WHERE M_LOGIN_NAME = '".mysql_real_escape_string($load_user_name)."' AND M_PASSWORD = '".mysql_real_escape_string($load_md5_user_pass)."' AND M_STATUS = '1' ") or die (mysql_error());
    	if(mysql_num_rows($sql) > 0){
    		$rs = mysql_fetch_array($sql);
    		$user_info = $rs;
    		$DBMemberID = $rs['MEMBER_ID'];
    		$DBUserlName = $rs['M_LOGIN_NAME'];
    		$DBUserName = $rs['M_NAME'];
    		$DBPassword = $rs['M_PASSWORD'];
    		$Mlevel = $rs['M_LEVEL'];
    		$M_Editor_Type = $rs['M_SP_EDITOR'];
    		$DBMemberPosts = $rs['M_POSTS'];
    		$DBMemberDate = $rs['M_DATE'];
    		$font = $rs['M_FONTS_T'];
    		$size = $rs['M_SIZE'];
    		$weight = $rs['M_WEIGHT'];
    		$align = $rs['M_ALIGN'];
    		$color = $rs['M_COLOR'];
    		$bank = $rs['M_BANK'];
            $open = $rs['M_OPEN'];
            $lock = $rs['M_LOCK'];
            $hide = $rs['M_HIDE'];
            $unhide = $rs['M_UNHIDE'];
            $sup = $rs['M_SUP'];
            $wasf = $rs['M_WAS'];
            $sijil = $rs['M_SIJIL'];
            $serch = $rs['M_SER'];
            $ihs = $rs['M_IHS'];
            $prof = $rs['M_PFI'];
            $milaf =$rs['M_Milafat'];
            $pois =$rs['M_POINTS'];
            $reg =$rs['P_REG'];
            $names =$rs['P_NAMES'];
            $lpost =$rs['P_LPOST'];
            $lzi =$rs['P_LZI'];
            $taw =$rs['M_TAW'];
            $ema =$rs['M_EMA'];
    		$nospy=$rs['M_NOSPY'];
     
     
    		$M_Style_Form = 'FONT-WEIGHT:'.$weight.';FONT-FAMILY:'.$font.';FONT-SIZE:'.$size.';TEXT-ALIGN:'.$align.';COLOR:'.$color.'';
    		define(M_Style_Form, $M_Style_Form);
    		define(m_id, $DBMemberID);
    		define(m_name, $DBUserName);
    		define(mlv, $Mlevel);
    define(lck, $lock);
    define(opn, $open);
    define(hid, $hide);
    define(uhid, $unhide);
    define(suup, $sup);
    define(sjl, $sijil);
    define(editor_type, $M_Editor_Type);
    		chk_update_login_members();
                                        if($_SESSION['DFSavePass'] == "true"){
    setcookie("omaelname" ,$DBMemberPosts, time()+60*60*24*100); 
    setcookie("omaepss" ,$DBPassword, time()+60*60*24*100);
    	                  }
    esperons

  10. #10
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Remplacepar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: index.php');
    pour voir

  11. #11
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Points : 60
    Points
    60
    Par défaut
    la fonction head est deja definie ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: index.php');
    donc pas de probleme ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur à cause d'une Variable
    Par laiiha dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 12/06/2014, 13h41
  2. sa marche pas d'executer une req avec validate_stmt
    Par menoran dans le forum Oracle
    Réponses: 1
    Dernier message: 05/05/2010, 00h35
  3. L'explorer ne démarre pas à cause d'une dll
    Par Aitone dans le forum Windows XP
    Réponses: 6
    Dernier message: 23/06/2008, 08h52
  4. Réponses: 20
    Dernier message: 07/02/2007, 11h10

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