PHP - Petit problème de cookies ...

PHP - Petit problème de cookies ... - PHP - Programmation

Marsh Posté le 04-07-2004 à 16:07:34    

Bonjour tout le monde !
 
Je voudrais mettre un petit cookie tout mimi qui pourrait sauvegarder les login et password de mes visiteurs (pour www.CS-ligue.com) mais j'ai un pb que je ne comprends pas ...
 
J'ai testé 2-3 trucs et ils marchaient tous sur mon serveur Apache (EasyPHP).
 
Une fois sur le serveur (j'en ai testé 2 différents), il ne me crée pas le cookie et je ne sais pas pourquoi. J'ai pris exemple sur 3 tutoriels de sites différents mais qui se ressemblaient beaucoup et c'est la meme chose.
J'ai également été voir la doc PHP de la fonction setcookie mais là non plus, ca n'a rien changé.
 
Est ce que vous avez une petite idée de ce qui peut poser problème ?
Merci
 
Voici le contenu de ma page .php de test :
<?php
$expir = 365*24*60*60;
setcookie("Cookie_Login", "TEST", $expir);
setcookie("Cookie_Password", "TEST", $expir);
 
$Login = $_COOKIE["Cookie_Login"];
$Password = $_COOKIE["Cookie_Password"];
 
echo "$Login ----- $Password";
?>
 
En local, celà m'affiche TEST ----- TEST à partir du 2eme chargement.
 
Merci beaucoup
Damien

Reply

Marsh Posté le 04-07-2004 à 16:07:34   

Reply

Marsh Posté le 04-07-2004 à 17:38:06    

Ton php.ini est OK ?
Je peux pas te dire plus, j'utilise uniquement les cookies sessions ...

Reply

Marsh Posté le 04-07-2004 à 17:46:03    

Les cookies sessions ??
 
Ce sont des variables de sessions utilisant les cookies ou c'est autre chose ?
 
Je ne sais pas comment voir le php.ini chez l'hébergeur.
J'ai matté les phpinfo et j'ai la meme chose que sur mon serveur Apache (EasyPHP)

Reply

Marsh Posté le 06-07-2004 à 18:06:04    

J'aurais fais comme ca
 

Code :
  1. if (isset($_COOKIE['auth']))
  2.           {
  3.           $auth = $_COOKIE['auth'];
  4.           $tab = explode("|", $auth);
  5.           $login = $tab[0];
  6.           $password = $tab[1];
  7.      
  8.           session_start();
  9.           session_register('login');
  10.           session_register('password');
  11.           }
  12. else
  13.           {
  14.           $auth = $_POST['login']; // Enregistrement du login passer au formulaire
  15.           $auth .= "|";
  16.           $auth .= $_POST['password']; // Enregistrement du pass passer au formulaire
  17.           // CREATION DU COOKIE
  18.           setcookie("auth", $auth, time()+3600); // expiration dns 1 heure
  19.           }


 
 
Bien entendu je n'ai pas codé la vérification du login et mot de passe.
 
Je t'ai donné une piste et j'espère qu'elle sera bonne sinon tant pi pour moi ;)
 
 
 
PS: ton $expir me paraît incorrect (je me trompe peut-être)
Teste avec cela: $expir = time() + 3600*24*365;  
Ca devrait être mieu


Message édité par AlphaZone le 06-07-2004 à 18:08:47
Reply

Marsh Posté le 07-07-2004 à 08:48:50    

Je peux pas tester parce que je suis au boulot mais j'essaierais ce soir ...
 
Mais mon problème principal est que une fois sur le serveur, le cookie n'est pas crée (je regarde dans les fichiers) alors qu'en local, il se crée correctement avec setcookie()
 
Merci, je teste ca apres  :)

Reply

Marsh Posté le 09-07-2004 à 09:55:33    

Bon, je comprends plus rien ...
Le cookie ne veut pas se créer ... pourtant ca marche en local.
 
J'ai mis le domaine maintenant mais ca ne marche pas mieux (et ca marche plus en local, logique).
 
Est ce que quelqu'un aurait une petite idée du pourquoi du comment de mon cookie qui ne se crée pas avec la fonction setcookie.
 
Mon code :

Code :
  1. // Récupération des arguments inscrits dans le cookie
  2. $Cookie_ident = 0;
  3. if(!$Login && !$Password)
  4. {
  5. if (isset($_COOKIE['Cookie_Login']))
  6.   $Login = $_COOKIE['Cookie_Login'];
  7. if (isset($_COOKIE['Cookie_Password']))
  8.   $Password = $_COOKIE['Cookie_Password'];
  9. }


 
et un peu plus loin
 

Code :
  1. setcookie("Cookie_Login", $Login, time() + (3600*24*365), "/", ".cs-ligue.com" );
  2. setcookie("Cookie_Password", $Password, time() + (3600*24*365), "/", ".cs-ligue.com" );}


 
Merci beaucoup pour votre aide


Message édité par Worldofdada le 09-07-2004 à 09:56:25
Reply

Marsh Posté le 09-07-2004 à 11:43:47    

Le "/" est très important dans tes cookies, tu as bien fait de le rajouter, le "cs-ligue.com" n'est lui pas indispensable.
Je ne comprend pas trop ton:
"if !$Login && !$Password) ", vu que tu fais un isset() juste après pour tester l'existence des variables.
 
je peux te filer le code qui est sur mon site et qui fonctionne en local comme en ligne:
    $expire = 365*24*3600; // (règle l'expiration du cookie à 1 an)
envoie du "cookie"
setcookie("Cookie_pseudo",$S_pseudo,time()+$expire,"/" );
setcookie("Cookie_droits",$S_droits,time()+$expire,"/" );
 
lecture du cookie:
session_register("S_pseudo" );
$S_pseudo=$Cookie_pseudo;
session_register("S_droits" );
$S_droits=$Cookie_droits;
 
comme les variables globales sont configurées je n'utilise pas la syntaxe $_COOKIE mais c'est plus clean comme tu fait.
Je ne fait meme pas les test avec isset() car un cookie inexistant ne génère pas d'erreur...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 09-07-2004 à 15:02:40    

Raaaa ca m'énerve, ca marche toujours pas ....
 
Le if(!$Login && !$Password) est juste là pour tester si mes variables de sessions n'existent pas déjà .... aucun rapport avec les cookies.
 
J'ai retiré le domain .cs-ligue.com et ca remarche en local ...
Mais toujours pas sur le serveur distant ...
 
Comprends pas pourquoi  :cry:

Reply

Marsh Posté le 09-07-2004 à 15:12:56    

J'ai trouvé mon pb ...
 
Pour que ca marche a distance, il faut cocher "Accepter tous les cookies".
 
Comment le faire marcher avec un niveau de sécurité plus élevé ?
Je vais chercher en attendant ;)  
 
Merci beaucoup

Reply

Marsh Posté le 09-07-2004 à 15:56:12    

Worldofdada a écrit :


 
Le if(!$Login && !$Password) est juste là pour tester si mes variables de sessions n'existent pas déjà .... aucun rapport avec les cookies.


 
avec un isset() comme pour tester tes cookies se serait mieux alors...
 
Ha ben ça c'est clair qu'utiliser les cookies sur une machine qui ne les accepte pas, tu peux te triturer le cerveaux pendant des heures, ça marchera jamais.
Le principe d'un cookie c'est d'écrire un truc sur le machine du visiteur, s'il ne te l'autorise pas c'est mort d'avance... :kaola:


Message édité par Xav_ le 09-07-2004 à 15:57:03

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 09-07-2004 à 15:56:12   

Reply

Marsh Posté le 09-07-2004 à 17:51:31    

Ouais mais on peut pas augmenter le niveau de sécurité du cookie lui meme ?
 
Tous les sites me posent des cookies quand je suis en "Moyen" et là, c'est uniquement quand c'est en "Accepte tous les cookies"

Reply

Marsh Posté le 09-07-2004 à 17:58:44    

de mémoire je dirais que nom, mais à tout hasard retourne lire la syntaxe de la fonction "setcookie"...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 10-07-2004 à 09:59:36    

Je vais aller voir ca ... merci
 
Mais ca doit quand meme etre possible puisque les autres le font ... :-S

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed