Help!!!! <test cookies>

Fermé
Sabrina - 17 sept. 2001 à 09:34
 Codeur php - 23 août 2008 à 19:41
Bonjour à tous!

J'aurais besoin de savoir comment je dois faire pour tester si un navigateur accepte les cookies ou pas...

Je vous remercie de vos reponse futures...
Bisous a tous!

4 réponses

Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 503
17 sept. 2001 à 11:23
Tu deposes un cookie et si tu n'arrive pas a le lire... il n'accepte pas de cookies.

PS: En quel langage veux-tu ça ? JavaScript, PHP, ASP ?

-= Bobinours =-
0
En java, c'est dans une jsp...
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 503 > Sabrina
17 sept. 2001 à 15:56
Ca devrait marcher en JSP.
Par contre, je ne connais pas les fonctione pour ecrire et lire un cookie... Mais ce n'est pas ta question.

-= Bobinours =-
0
jibé > Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013
18 sept. 2001 à 17:47
Bobinours --> écrire un cookie :

response.setHeader("Set-Cookie","login="+str_login+"["+str_passwd+"]; path=/;expires="+aday.getTime().toString());

lire dans un cookie :

Cookie[] cookies = request.getCookies();
String value = "";
if (cookies != null)
{
checked=true;
for (int i=0 ; i<cookies.length ; i++)
{
if (cookies[i].getName().equals("login"))
{
try{
str_login = cookies[i].getValue().substring(0,cookies[i].getValue().indexOf("["));
str_passwd = cookies[i].getValue().substring(cookies[i].getValue().indexOf("[")+1,cookies[i].getValue().indexOf("]"));
}catch(Exception e){
str_login="";
str_passwd="";
}
}



}
}


Excuses moi, je n'ai pas le courage de mettre en ordre le code ;-))
Pour lire dans un cookie, on utilise l'objet Cookie... on pourrais l'utiliser pour écrire mais je te conseil de faire comme décrit ci dessus, en particulier pour fixer la durée de vie...

Le problème est que l'objet Cookie n'est pas compatible avec tous les navigateurs (même Sun l'avoue)... ça ne fonctionne donc pas forcémment avec Netscape... étonnant non ?
0
Sabrina > jibé
19 sept. 2001 à 16:08
Merci!
Désolé que tu te sois pris la tête, mais j'ai trouvé la solution sur un autre forum: j'etais assez préssée... :-)
Mais merci quand meme! t'es adorable!
0
castor Messages postés 17747 Date d'inscription mardi 3 juillet 2001 Statut Modérateur Dernière intervention 11 mars 2015 136 > Sabrina
19 sept. 2001 à 16:47
pourrais tu nous filer ta solutiuon stp???

Castor
0
Je sais que tu as trouvé une réponse mais voici comment faire pour tous ceux et celles qui préférent Php.

Ecrire un cookie en Php :
____________________

Syntaxe complète :

setcookie(string name, string value, string expire, string path, string domain, string secure);


name : nom du cookie
ex : "ccm"

value : valeur du cookie
ex : "comment ca marche"

expire : date d'expiration du cookie (si non spécifié le cookie expire à la fin de la session)
ex : time()+3600 -> le cookie expire danas une heure
(cette syntaxe est propre à Php)


path : chemin d'accès jusqu'au répertoire à partir duquel le cookie est valide.
ex : "/public/"


domaine : domaine pour lequel le cookie est valide
ex : "commentcamarche.net"

secure : indique si le cookie doit être transmis par connexion sécurisée de type HTTPS
(Là j 'sais pas trop ce qu'il faut mettre j'avoue ...)




Ex :


<?php
$ccm="comment ca marche ?";
setcookie("ccm", $ccm, time()+3600, "/public/", "commentcamarche.net");
?>


Mais le + souvent on se limite à :

<?php
$ccm="comment ca marche ?";
setcookie("ccm", $ccm, time()+3600, "/");
?>


ATTENTION : l'instruction setcookie() doit apparaître au tout début de la page html avant la balise <HTML> elle-même !!!!

Même un espace peut engendrer une erreur donc bien écrire :

<?php
...
setcookie(...);
...
?>
<html>
...
</html>




Lire un cookie en Php :
__________________


<?php
// Si le cookie ccm existe sur le poste du client alors la variable
// $ccm prend directement la valeur du cookie

// Ainsi le code suivant affiche "comment ca marche ?"
echo $ccm
?>

Si on veut être sûr qu'il s'agit bien d'un cookie on peut utiliser la syntaxe suivante :

<?php
$cookie_ccm=$HTTP_COOKIE_VARS["ccm"] ;

echo $cookie_ccm;
?>


Effacer un cookie :
_______________

Il suffit de le déclarer sans valeur .

Ex:
<?php
setcookie("ccm");
?>

Supprime le cookie ccm.

Simple non ?
On peut même utiliser des tableaux : le délire !

Ecriture avec tableau :

<?php
$ccm[prenom]="Super";
$ccm[nom]="Site";
setcookie("ccm[prenom]",$ccm[prenom],time()+9999999,"/");
setcookie("ccm[nom]",$ccm[nom],time()+9999999,"/");
?>


Lecture :

<?php
echo $ccm[prenom]."-".$ccm[nom];
?>

Affichera "Super-Site" Yeaahh !!!



En espèrant vous avoir éclairé sur the cookie factory en Php

@+
Philippe
0
Sur le forum, j'ai vu ton explication sur les cookies, et donc je me permet de t'écrire pour t'en demandé d'avantage(puiqu'il semble que tu maitrise bien le sujet).

Mon voeu est de faire une vérification de cookies permettant une redirection.
J'explique: Il me faudrait en script qui puisse tester un cookie (qui a été mis par un autre site) et si celui-ci existe faire une redirection vers une page de mon site. Je sais que cela existe en php mais j'ai pas pu avoir accés au script pour voir comment cela fonctionne !!!
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 607 > flo
23 févr. 2002 à 20:42
Bjr Flo

Merci mais je ne suis pas aussi expert dans la redirection que tu sembles le croire ...


Je n'ai pas bien compris : tu dis que tu veux tester un cookie qui a été envoyé par un site mettons SITE_A

Ce cookie tu veux le tester depuis quelle page ?
Depuis une page qui du SITE_A ou bien depuis une page d'un autre site par ex SITE_B ?

Le second cas de figure n'est pas possible directement : depuis le SITE_B tu dois obligatoirement appeler une page présente sur le SITE_A car seule les pages d'un même domaine ont le droit d'accèder aux cookies de ce domaines, sécurité oblige (du moins si g bien compris ce qui était écrit dans la doc ... )

Et pour faire ce test tu veux cliquer sur un lien, ou faire en sorte que le test s'effectue automatiquement au chargement d'une page donnée ?

Pourrais-tu envoyer les extraits de ton code, ou à défaut les URL de chaque page qui sont mises en jeu STP ?


@+
Philippe


[[  The Truth is Out There   ]]
0
Tu ne peux pas récupérer un cookie d'un autre site, imagine que c'est des infos confidentielles.

Pour tester si le client accepte les cookies, fait ça :
<?php
setcookie('test_cookie', 'essai', time() + 3600);
if(isset($_COOKIE['test_cookie']))
{
header("Location: ton_url.php",1);
}
else
{
echo 'Vous n'acceptez pas les cookies, dommages pour vous :p';
}
0
sans oubliez ?> a la fin ^^
0