Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2973 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP&Div] Cookies&Gâteaux Secs - Postez vos fonctions inutiles ici :D

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[PHP&Div] Cookies&Gâteaux Secs - Postez vos fonctions inutiles ici :D

n°249729
Fred999
Rabat-joie
Posté le 20-11-2002 à 16:36:22  profilanswer
 

SOUCI (PRESQUE) RESOLU, MERCI A TOUS... LE RESTE EST PLUS BAS DANS LE POST
 
Edit 2 : on avance, on avance! :D
 
Edit 3 : les fonctions inutiles, c'est en fond de topic, et c'est multi-langage :D
 
:hello:
 
Voilà le souci : je n'arrive pas à créer un cookie permanent avec setcookie().
 
Le code :

Code :
  1. <? // Si arrivée après saisie, on crée un cookie
  2. if ((!empty($login)) && (!empty($password)) && (!empty($equipe)) && (!empty($type))) {
  3. SetCookie("LHO-ligue" );
  4. SetCookie("LHO-login" );
  5. SetCookie("LHO-password" );
  6. SetCookie("LHO-equipe" );
  7. SetCookie("LHO-type" );
  8. SetCookie("lho" );
  9. SetCookie("LHO-ligue",  "LHO" );
  10. SetCookie("LHO-login",  "$login" );
  11. SetCookie("LHO-password", "$password" );
  12. SetCookie("LHO-equipe",  "$equipe" );
  13. SetCookie("LHO-type",  "$type" );
  14. require ("include/config.php" );
  15. }
  16. else {
  17. require ("include/verifcookie.php" );
  18. }?>


 
Ce qui est carrément louche dans l'histoire :
 
J'ai une page d'identification qui linke sur la page contenant le code ci-dessus (cas où on vérifie la condition du if, l'existence des variables signifie que l'utilisateur s'est loggé en l'absence d'un cookie).  
 
Or, quand on passe sur le code, le cookie est introuvable (que ce soit dans Documents and Settings ou dans Content.IE5), alors que, quand je me balade sur le site (où l'existence du cookie est vérifiée à chaque page), il ne cause pas de problème!!!
 
Où est la faute? :??:
 
Merci d'avance :hello:


Message édité par Fred999 le 21-11-2002 à 14:05:07
mood
Publicité
Posté le 20-11-2002 à 16:36:22  profilanswer
 

n°249792
Sh@rdar
Ex-PhPéteur
Posté le 20-11-2002 à 17:17:59  profilanswer
 

salut fred999  :hello:  
 
en quoi le cookie est permanent ? y a pas de date de validité donc à la fermeture du browser il est détruit non ?
 
pourquoi écraser les cookies en en créant plusiseurs identiques ?
 
et enfin la question stupide : t'as bien un refresh après ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°249804
Fred999
Rabat-joie
Posté le 20-11-2002 à 17:25:30  profilanswer
 

Haaaaaaaaaaa un cookie sans date limite est mort à la fermeture du brouteur :ouimaitre:
 
Pourtant, je pensais avoir bien lu la doc de php.net :/
 
Alors comment fait-on,? Est-on obligé de faire une sinistre cuisine à la :

Code :
  1. setcookie("LHO-password", "$password", time() + 10000000000000000000000);


 
:??:
 
Sinon, pourquoi écraser le cookie? C'est pour éviter confusion en cas de double compte. Je ne me souviens plus pourquoi c'est là, mais je crois que sans, j'avais rencontré des problèmes. :??:
 
Quant au refresh, qu'entends-tu par là? Un refresh "forcé", ou bien le simple fait de relancer la vérification à chaque clic?
 
Merci! :)


Message édité par Fred999 le 20-11-2002 à 17:25:40
n°249810
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 20-11-2002 à 17:28:19  profilanswer
 

faut pas l'ecrire dans l'autre sens, j'avais cru lire je sais plus ou que les cookies etait sette dans l'ordre inverse d'apparition (peut me plante completement ceci dit)

n°249814
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 20-11-2002 à 17:30:33  profilanswer
 

In PHP 3, multiple calls to setcookie() in the same script will be performed in reverse order. If you are trying to delete one cookie before inserting another you should put the insert before the delete. In PHP 4, multiple calls to setcookie() are performed in the order called.  
 
 
voila, donc c valable uniquement pour php3

n°249826
Fred999
Rabat-joie
Posté le 20-11-2002 à 17:35:40  profilanswer
 

Hum ça marche comme ça donc... j'y toucherai pas (désolé pour la propreté, mais c'est trop de boulot depuis cet été d'avoir pondu ce site).
 
Sinon, joce, pour la cuisine qui fait un cookie permanent, tu vois autre chose?
 
J'ai regardé sur les scripts des autres sections de mon site, c'est le même binz (10.000 heures de validité :sweat:)

n°249827
Fred999
Rabat-joie
Posté le 20-11-2002 à 17:36:15  profilanswer
 

joce a écrit a écrit :

In PHP 3, multiple calls to setcookie() in the same script will be performed in reverse order. If you are trying to delete one cookie before inserting another you should put the insert before the delete. In PHP 4, multiple calls to setcookie() are performed in the order called.  
 
 
voila, donc c valable uniquement pour php3




 
J'ai vu ça, mais étant ignorant en la matière...

n°249831
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 20-11-2002 à 17:39:59  profilanswer
 

Fred999 a écrit a écrit :

Hum ça marche comme ça donc... j'y toucherai pas (désolé pour la propreté, mais c'est trop de boulot depuis cet été d'avoir pondu ce site).
 
Sinon, joce, pour la cuisine qui fait un cookie permanent, tu vois autre chose?
 
J'ai regardé sur les scripts des autres sections de mon site, c'est le même binz (10.000 heures de validité :sweat:)




non je fais pareil sauf que je marque 60*24*365 :D

n°249851
Fred999
Rabat-joie
Posté le 20-11-2002 à 17:46:06  profilanswer
 

C'est exactement ce que je viens de faire [:plat00n2]
 
Heu c'est pas en secondes un cookie?
 
Genre "3600*24*365" :D

n°249864
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 20-11-2002 à 17:55:50  profilanswer
 

Fred999 a écrit a écrit :

C'est exactement ce que je viens de faire [:plat00n2]
 
Heu c'est pas en secondes un cookie?
 
Genre "3600*24*365" :D




si j'ai oublie les minutes :D

mood
Publicité
Posté le 20-11-2002 à 17:55:50  profilanswer
 

n°249866
Fred999
Rabat-joie
Posté le 20-11-2002 à 17:56:24  profilanswer
 

Il reste que c'est dommage de devoir procéder à une vieille bidouille pour avoir un cookie permanent! :/

n°249869
omega2
Posté le 20-11-2002 à 17:57:01  profilanswer
 

*366 pour les années bisextiles. ;) :p

n°249872
Sh@rdar
Ex-PhPéteur
Posté le 20-11-2002 à 17:57:40  profilanswer
 

remarque c'est pas plus mal sinon, bonjour la polution...
 
eh puis un vrai cookie permanent, ça n'existe pas, à moins d'empecher le client de les effacer  :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°249873
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 20-11-2002 à 17:58:00  profilanswer
 

Fred999 a écrit a écrit :

Il reste que c'est dommage de devoir procéder à une vieille bidouille pour avoir un cookie permanent! :/



ba c'est pas une bidouille, c'est le cookie qui est fait comme ca :o

n°249879
Fred999
Rabat-joie
Posté le 20-11-2002 à 17:59:59  profilanswer
 

C'est pas faux non plus.
 
Disons que c'est une bonne manière d'empêcher les vrais mouchards de nuire...
 
Mais là, c'était, comme ça peut l'être pour le forum HFR, une manière de simplifier la vie de l'utilisateur :jap:

n°249899
Fred999
Rabat-joie
Posté le 20-11-2002 à 18:11:50  profilanswer
 

Toujours un souci [:kalisto]
 
J'appelle donc le fichier suivant par require() :  
 

Code :
  1. <? // S'il y a un cookie, on vérifie si le DG a des matches/transferts à valider.
  2. // Si c'est le cas, on lui envoie une pop-up.
  3. if ( (!empty($HTTP_COOKIE_VARS["LHO-ligue"])) &&
  4. (!empty($HTTP_COOKIE_VARS["LHO-login"])) &&
  5. (!empty($HTTP_COOKIE_VARS["LHO-password"])) &&
  6. (!empty($HTTP_COOKIE_VARS["LHO-equipe"])) &&
  7. (!empty($HTTP_COOKIE_VARS["LHO-type"]))) {
  8. // etc... traitements divers et variés
  9. <? } ?>


 
Et il ne rentre jamais dans le IF, alors que j'ai le cookie suivant :  
 

Code :
  1. LHO-ligue
  2. LHO
  3. nhl.lfjr.net/LHO/
  4. *
  5. LHO-login
  6. Fred
  7. nhl.lfjr.net/LHO/
  8. *
  9. LHO-password
  10. <mon mot de passe codé en md5>
  11. nhl.lfjr.net/LHO/
  12. *
  13. LHO-equipe
  14. COL
  15. nhl.lfjr.net/LHO/
  16. *
  17. LHO-type
  18. A
  19. nhl.lfjr.net/LHO/
  20. *


 
(j'ai viré pas mal de trucs du cookie)
 
Pourquoi que ça ne marche pas? :??:
 
Quand j'effcetuais le test en local, tout fonctionnait bien, mais là, intégré dans une grosse page (avant toute autre instruction), plus rien :/

n°249900
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 20-11-2002 à 18:19:03  profilanswer
 

remplace voir $HTTP_COOKIE_VARS par $_COOKIE

n°249968
Fred999
Rabat-joie
Posté le 20-11-2002 à 19:29:48  profilanswer
 

Ma foi... Aucun changement.
 
Quelle était la différence entre les deux? :??:

n°249992
Sh@rdar
Ex-PhPéteur
Posté le 20-11-2002 à 20:01:27  profilanswer
 

aucune ... selon la conf de PHP et la version  :D  
t'as pas répondu plus haut t'as bien un refresh à chaque fois ?
 
vérifie donc tes variables de cookies avec ça :
 

Code :
  1. Function Display($array,$sp) {
  2.   foreach ($array AS $Key => $Val) {
  3.     echo "$sp<b>$Key</b> => $Val";
  4.     if (is_array($Val)) {
  5.       echo '  (  <br>';
  6.       Display($Val,$sp.'   ');
  7.       echo "$sp)";
  8.     }
  9.     echo "<br>\n";
  10.   }
  11. }
  12. Display ($HTTP_COOKIE_VARS,'   ');


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250447
Fred999
Rabat-joie
Posté le 21-11-2002 à 10:31:36  profilanswer
 

Merci :)
 
Je teste ça de suite!

n°250453
Fred999
Rabat-joie
Posté le 21-11-2002 à 10:46:25  profilanswer
 

Ca ne marche pas, mais ça y est, j'ai compris pourquoi!
 
En fait, le site est ordonné comme suit :  
 
- un répertoire-racine, avec les pages "générales"
- un répertoire "Membres" qui contient les pages spécifiques à la partie Membres.
 
Le cookie est créé dans la partie Membres. Son nom : <mon_login_NT>@LHO[1].txt (LHO étant le nom du répertoire concerné)
 
Or la vérification doit s'effectuer lors de l'ouverture du site => dans le répertoire-racine.
 
C'est pourquoi la vérification ne marche pas, alors que, si je la fais en appelant un fichier contenu dans le répertoire Membres, ça marche.
 
Je vais chercher une solution, mais si quelqu'un a une piste, je suis preneur :)

n°250456
Fred999
Rabat-joie
Posté le 21-11-2002 à 10:52:55  profilanswer
 

Hum le paramètre $path me paraît une piste à explorer.
 
Quitte à créer un second cookie? :??:

n°250470
Fred999
Rabat-joie
Posté le 21-11-2002 à 11:22:33  profilanswer
 

Bon, il semble que je doive encore faire de la cuisine :(
 
(je posterai la solution)

n°250474
Sh@rdar
Ex-PhPéteur
Posté le 21-11-2002 à 11:26:09  profilanswer
 

Tu as vérifié que tout les cookies sont bien présents avec ma fonction ?
 
tu devrais peut être modifier ta boucle !empty() pour isoler le paramètre qui fait tout foirer non ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250482
Fred999
Rabat-joie
Posté le 21-11-2002 à 11:32:06  profilanswer
 

Oui, j'ai bien vérifié.
 
En fait, c'est une question de répertoire, comme décrit plus haut.
 
Et si je crée le cookie avec comme répertoire la racine, je ne peux pas aller fouiller dedans depuis un sous-répertoire.
 
Tant pis, je vais rajouter une valeur de cookie accessible depuis la racine ;)


Message édité par Fred999 le 21-11-2002 à 11:32:12
n°250499
speedo
Posté le 21-11-2002 à 11:49:23  profilanswer
 

j'ai aussi un pb de cookie:
 
avec setcookie sans date d'expiration (donc disparait apres fermeture explorer)
 
le fichier cookie n'est pas stoke sur le DD (meme qd la fenetre explorer est encore ouverte)
pourtant l'identifaction de mes users marche tres bien et si on ferme le fenetre il ne peuvent plus se connecter (donc la fonction cookie marche bien.
J'ai juste le index.dat qui change de date .....
 
En somme c'est pas grave (tout focntionne) mais je voudrais savoir pourquoi le fichier texte est pas creé ...
 
Merci
 

n°250505
Sh@rdar
Ex-PhPéteur
Posté le 21-11-2002 à 11:54:11  profilanswer
 

si ton cookie est bien lu c'est qu'il est bien créé  :pt1cable:  
 
 
t'es sur de regarder au bon endroit ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250509
Fred999
Rabat-joie
Posté le 21-11-2002 à 11:55:55  profilanswer
 

Sh@rdar a écrit a écrit :

si ton cookie est bien lu c'est qu'il est bien créé  :pt1cable:  
 
 
t'es sur de regarder au bon endroit ?




 
Par rapport à ça,je suis effectivement d'accord avec speedo.
 
Impossible de trouver le cookie dans Documents and Settings/User/Cookies et dans WinNT/Temporary.../Content.IE5, endroits habituels de stockage des cookies.


Message édité par Fred999 le 21-11-2002 à 13:02:08
n°250512
Sh@rdar
Ex-PhPéteur
Posté le 21-11-2002 à 11:58:55  profilanswer
 

le truc ultime pour vérifier que le cookie est bien créé c'est demander l'autorisation pour chaque cookie..
 
si la page web lit le cookie c'est qu'il est bien là, on peut pas le nier,  
 
la gestion dépend aussi de l'os, du browser etc..
 
il est peut être gardé en mémoire car valide uniquement pour la session, ça évite un accès disque après tout


Message édité par Sh@rdar le 21-11-2002 à 12:00:03

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250514
Sh@rdar
Ex-PhPéteur
Posté le 21-11-2002 à 12:01:55  profilanswer
 

en plus la meilleure solution c'est : MOZILLA !  
 
le cookie manager, et tout les outils Js etc.. permettent vraiment de bien vérifier tout, c'est vraiment LE browser pour les développeurs web. :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250545
Fred999
Rabat-joie
Posté le 21-11-2002 à 13:01:53  profilanswer
 

Mon PC tourne déjà de l'?il, je ne vais pas abuser :o
 
Et bon, je fais un site "grand public", et l'extrême majorité des gens ont IE.

n°250554
Sh@rdar
Ex-PhPéteur
Posté le 21-11-2002 à 13:13:32  profilanswer
 

ah mais je parle pas d'optimiser ton site ni même de le changer, je dis juste que pour tester ton site pendant son développement et pouvoir vérifier tes cookies par exemple, mais aussi le javascript, les liens etc.. Mozilla est une des meilleures solutions
 
en tout cas développer un site en testant sous IE faut être un peu maso quand même, il avale toutes les erreurs donc ça incite moins à la rigueur


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250570
Fred999
Rabat-joie
Posté le 21-11-2002 à 13:45:00  profilanswer
 

Les erreurs HTML? Clair :lol:
 
Notre site est bourré d'erreurs HTML. [:ddrs55]
 
Le Javascript se porte honnêtement (même si un des développeurs a pondu cette sublime fonction (si tu lis ce post, vraiment, je suis désolé, cette fonction doit être une relique d'un temps passé mais bon :D) :
 

Code :
  1. function MM_openBrWindow(theURL,winName,features)
  2. {
  3.   window.open(theURL,winName,features);
  4. }


:ouimaitre:
 
Et le PHP gagnerait sans doute à être relu par un codeur expérimenté (j'ai débuté en PHP avec ce site...).


Message édité par Fred999 le 21-11-2002 à 13:45:13
n°250574
Sh@rdar
Ex-PhPéteur
Posté le 21-11-2002 à 13:48:04  profilanswer
 

pas mal cette fonction mais j'ai eu mieux :
 

Code :
  1. <?
  2. Function Redirection ($url) {
  3.   header ("location:$url);
  4. }
  5. ?>


 
elle est pas mal celle là hein ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250576
Fred999
Rabat-joie
Posté le 21-11-2002 à 13:48:49  profilanswer
 

Joli :lol:

n°250631
Fred999
Rabat-joie
Posté le 21-11-2002 à 14:39:28  profilanswer
 

Bon, finalement, le code suivant marche :

Code :
  1. SetCookie("LHO-popup",  "$contenu", time() + 31536000, "/" );


 
le "/" permet de lire le cookie depuis la racine du site.
 
Ca fait doublon d'infos, mais tant pis.
 
Pfiou [:psychokwak]
 
Merci tout le monde!!! [:keyzer93]


Message édité par Fred999 le 21-11-2002 à 14:39:52
n°250679
Sh@rdar
Ex-PhPéteur
Posté le 21-11-2002 à 15:22:24  profilanswer
 

c'est bizzarre il me semblait que la raçine est le paramètre par défaut quand non spécifié..
 
enfin bon si ça fonctionne...


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250695
omega2
Posté le 21-11-2002 à 15:40:35  profilanswer
 

Sh@rdar a écrit a écrit :

c'est bizzarre il me semblait que la raçine est le paramètre par défaut quand non spécifié..
 
enfin bon si ça fonctionne...



Le paramêtre par défaut est le répertoire courant.

n°250706
Sh@rdar
Ex-PhPéteur
Posté le 21-11-2002 à 15:46:02  profilanswer
 

ok.. remarque à force de ne faire des cookies qu'à la raçine...  :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°250714
omega2
Posté le 21-11-2002 à 15:53:23  profilanswer
 

Moi, j'ai aucun cookie à la racine, ca me permet de tester les conportements avec plusieurs réglages sans passer mon temps à les modifier (j'ai juste à gérer plusieurs copies du site  :pt1cable: )

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP&Div] Cookies&Gâteaux Secs - Postez vos fonctions inutiles ici :D

 

Sujets relatifs
PHP et MySQL que choisir comme guide de reference? (book papier)Problème PHP/MySQL assez complexe
[PHP] Formulaires.... ???struct & fonctions
[PHP] Upload de fichier (Chez FREE)[PHP] Problème de confirmation d'inscription avec un formulaire.
pb de poinreur lors d'appel de fonctions[PHP] phpbb?
fonctions graphiques en CExecuter un script PHP à partir dun script perl ....
Plus de sujets relatifs à : [PHP&Div] Cookies&Gâteaux Secs - Postez vos fonctions inutiles ici :D


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR