cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008
-
27 mars 2003 à 07:44
longshot41
Messages postés17Date d'inscriptionlundi 28 février 2005StatutMembreDernière intervention14 janvier 2021
-
22 déc. 2005 à 16:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
longshot41
Messages postés17Date d'inscriptionlundi 28 février 2005StatutMembreDernière intervention14 janvier 2021 22 déc. 2005 à 16:25
Pour Kirua et les autres aussi lol.
Ce que je fais c'est un truc du genre.
Parfois on ne peut pas ce permettre de recharger la page pour raison XY.
Je fais une copie d'un code d'exemple pour une variable de langue.
*****codeur: Longshot le: 22-12-2005
$expire = 10; // 10 sec avant l'expiration, c'est pratique pour tester sans avoir besoin de redemarer le nav. a chaque fois. A changer lors de l'exploitation.
if ($_COOKIE["lang_cookie"]) // si le coookie existe l'attribuer à la $lang_var
$lang_var = $_COOKIE["lang_cookie"];
elseif (isset($_GET['lang'])) { // sinon si $_GET['lang'] existe (pour mon cas le cookie = une var(lang) d'url)
$lang_var = $_GET['lang'];
setcookie("lang_cookie","$lang_var",time()+$expire);} // et créer le cookie
else
$lang_var = "default";
// pour testons en appelant la page, puis en la rappelant
echo "Mon cookie = " . $_COOKIE["lang_cookie"];
echo "
Ma var =" . $lang_var;
include("include/traduction.php");
//et dans le include un truc genre if ($lang_var "fr") $ville "en français";
// if ($lang_var "default") $ville "rien";
// else
echo "
$ville";
**** FIN
Bon un if/else aurrais suffit, mais j'aime bien savoir ce qui passe dans mes variables.
elseif (isset($_GET['lang'])) doit pouvoir ce remplacer par elseif ($_GET['lang']) question d'habitude.
Voilà en résumer, plutot que de tout miser sur le cookie que de toute façon il va falloir rap. a chaque page j'utlise une varible normale.
Au départ je voulais utilisé les sessions, mais si pour une raison XY elle tombait (fermeture du navigateur, plantage etc.. le visiteur ce retrouverai certainement avec la langue par defaut.
Pour les malins (lol) récupérer la langue du navigateur et aussi une solution, mais par ex. si le visiteur travail avec un ordi en espagnol et que sa langue natale et le français je pense qu'il serai plus à l'aise si celà s'affiche dans celle-ci.
Bon c'est une proposition, je suis ptre a coter completement, mais cette solution me convient.
ATTENTION ne jamais stocker de cookie login/pass trop dangereux le mieu c'est une session.
Si jamais pour ceux qui serai interressé, j'ai aussi un petit code pour éviter ceux qui piquerai la connection.
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 25 juin 2004 à 04:39
La valeur du cookie sera vide. Donc c'est une façon de vérifier si l'utilisateur accepte les cookies, tu met une valeur dans un cookie et ensuite si le cookie ne contient rien c'est que le cookie n'y est pas (Refuse cookies).
Mat
cs_Solo
Messages postés10Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention 6 octobre 2004 23 juin 2004 à 11:57
Oh grand maitre du cookie ! une petite question bete... Que se passe t-il si je tente de lire un cookie qui n'existe pas ? Par exemple dans le cas ou un cookie a expiré, ou si l'internaute a effacé ses cookies, ou si l'internaute est parano et qu'il refuse les cookies, ou enfin, si des cookies ne sont créés que pour certains internautes autentifiés...
geranium7
Messages postés1Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention 9 juin 2004 9 juin 2004 à 16:47
salut et merci bcp pour ce tuto. je débute totalement, et je voudrais savoir qui (quelles entreprises) vient sur mon site. Je pense que c'est grace aux cookies.
Mais je n'arrive pas , avec le script, à récupérer les cookies : ou sont -ils ? Faut il créer un fichier de récupération ?
merci @+
CaBBaLe
Messages postés5Date d'inscriptionjeudi 1 mai 2003StatutMembreDernière intervention 1 juin 2004 1 juin 2004 à 21:22
slt,
Merci tortue t'es génial ;)
Donc je passais par là pour parfaire toujours mon apprentissage de php, et j'ais vu des histoire de date dans les commentaire de ce tuto, dont la reponse peut être autre.
Donc pour ceux qui veulent un cookie qui expire à une date précise, il existe une solution avec mktime() directement dans la déclaration du cookie.
------
code:
---------------------------------------------
setcookie("$nom_du_cookie","$valeur_du_cookie",mktime(0,0,0,1,1,2005));
---------------------------------------------
Le cookie ici expire le 1ier janvier 2005.
Voila cela à surement été dis alleur depuis le temps, mais cela pourra surement servir à celui qui passe par ce tuto.
@++
daerlnaxe
Messages postés31Date d'inscriptionmercredi 18 octobre 2000StatutMembreDernière intervention 8 avril 2004 7 avril 2004 à 14:41
Un truc que je pige pas en fait et qui m'a fait bloquer un ptit moment... Ils sont créés ou ces cookies ? j'ai fouillé dans le repertoire utilisateur cookies (jesuis sous xp) je m'attendais a les voir sous la forme utilisateur@nomducookies.txt ...
thx pour ton tuto j'ai eu du mal un moment mais pour une connerie lol... j'avais foutu des "." dans le nom de mon cookies.
BoulyFamily
Messages postés4Date d'inscriptionmardi 16 septembre 2003StatutMembreDernière intervention27 mars 2004 27 mars 2004 à 16:14
Un tuto fort utile... En effet, je m'étais lancé dans les SESSSION mais il me manquait l'utilisation des COOKIES afin que lesgens n'aient pas à saisir de nouveau leur login ni mot de passe.
Le reste de la discussion était trop longue à lire bien que des bouts de réflexionssont présents un peu par-ci par-là !
En résumé... Merci !
SEE U SOON
BoulyFamily
cs_farben
Messages postés6Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention31 octobre 2003 2 oct. 2003 à 03:25
Ooops, petite erreur de copier/coller du code précédent, voilà le bon, avec la dernière ligne qui est echo "cookie=",$recu; et non pas echo "cookie=",$TestCookie;
<?php
$recu = $TestCookie;
if (!isset($recu)) {
$recu = $_COOKIE["TestCookie"];
}
if (!isset($recu)) {
$recu = $HTTP_COOKIE_VARS["TestCookie"];
}
if (!isset($recu)) {
echo "a pas cookie";
} else {
echo "cookie=",$recu;
}
?>
Je me suis aperçu de la boulette en testant sur un serveur local où $_COOKIE fonctionne et pas $HTTP_COOKIE_VARS, comme sur deux autres serveurs distants que j'ai testé. Ca vient de quoi ? De la config du serveur ou c'est le bordel dans les versions ?
cs_farben
Messages postés6Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention31 octobre 2003 2 oct. 2003 à 02:50
Sympa les tutorials quand on débute, c'est une vraie mine d'or ici. Juste une ou deux remarques pour ceux qui, comme moi, n'arrivent pas à faire marcher ces sources tel quel sur leur serveur:
1/ sous peine de parse error en pagaille, il faut virer les blancs ou les tabs de début de ligne.
Ecrire par exemple:
if (condition) {
action;
}
et non pas:
if (condition) {
action;
}
2/ sur le serveur que j'utilise pour tester (hebergementgratuit, pour ne pas le nommer), $_COOKIE ne marche pas pour lire les cookies existants, on ne peut les récupérer qu'avec le nom de la variable ou avec $HTTP_COOKIE_VARS.
Voilou un petit bout de code pour tester avec les trois méthodes si cet enfoiré de cookie existe ou pas.
<?
$recu = $TestCookie;
if (!isset($recu)) {
$recu = $_COOKIE["TestCookie"];
}
if (!isset($recu)) {
$recu = $HTTP_COOKIE_VARS["TestCookie"];
}
if (!isset($recu)) {
echo "Ben ? Où kil est le cookie à son papa ?";
} else {
echo "cookie=",$TestCookie;
}
?>
Remarques:
isset($var) vérifie, comme son nom l'indique si $var est vide ou pas. Je suppose que if (!$recu$) doit faire la même chose, mais isset existant, pourquoi ne pas s'en servir, hein ?
La variable TestCookie a été envoyé dans une précédente page avec:
<?
$value="tagada";
setcookie("TestCookie",$value,time()+3600);
?>
3/ Effacer le cookie juste en écrivant par dessus ne marche pas non plus setcookie("TestCookie"); ou plutôt ne l'efface pas tout de suite. Pour virer la chose tout de suite, faut lui donner un temps de vie négatif.
<?
setcookie ("TestCookie","", time() - 3600);
?>
Là, vue qu'il n'existe plus depuis une heure, a pu le cookie, mortibus.
Voilou, j'espère que j'ai pas trop dit de conneries, je ne m'y suis mis qu'hier au php, je suis pas encore un gourou :)
praystation
Messages postés41Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention20 mars 2003 23 août 2003 à 20:17
par respect, je te remercie de ce tuto q;)
Mumuri
Messages postés320Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention 6 avril 2008 17 août 2003 à 17:51
a si je sais quand le browser est redirigé on vérifie le contenu du cookie si il est vide c'est que les cookies sont pas activé
y'a des fois je m"tonne moi méme lol
Mumuri
Messages postés320Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention 6 avril 2008 17 août 2003 à 17:42
et y'a pas une source "tester le client"
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 4 août 2003 à 21:31
je prend pas ça comme une attaque, ça a juste rien a faire ici lol moi ça montre comment créer un cookie, pas comment tester le client
vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003 4 août 2003 à 14:51
Le prend pas comme une attaque... Ca me semble juste un points essentiel dans l'utilisation des cookies.
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 4 août 2003 à 12:05
j'ai rien oublié, mon tuto c sur les cookies pas sur les clients
vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003 3 août 2003 à 23:54
"TOUT SUR LES COOKIES "
tas tout simplement oublie de dire comment on testait si le browser du client acceptait les cookies... C'est pas négligeable :)
cs_Aspect
Messages postés47Date d'inscriptionmercredi 9 octobre 2002StatutMembreDernière intervention23 mars 20041 4 juil. 2003 à 01:21
hmm c'est pa top de garder des identififaint de connection non encrypter dans un cookie qui va durée en plus de cela 31536000 secndes :)
Tu dis qu'il y a une erreur de yntaxe, mais elle se trouve probablement autrepart dans ton code, enfin sa s'avère difficile de t'aider avec ce peu d'infos :/
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 2 juil. 2003 à 22:17
Maintenant sur un autre site j'ai un login et je me suis arrangé pour que lors de la prochaine visite le username et le password sois automatiquement inscrit dans la form. Avec un cookie évidemment.
Mais cela ne marche pas ! Pas parce que je ne sais pas comment mais bien pour une raison que j'ignore, voici mon code :
dans la page de vérification si le user est john et le mot de passe mdp ça donnerait ceci :
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 30 juin 2003 à 19:05
- On peut se tutoyer
- Si vous voulez
ça te rappelle rien? :-) (un peu de politique française ^^ je suis belge mais j'en ai entendu parler ^^)
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 30 juin 2003 à 17:13
D'accord merci beaucoup, ça en fait des secondes ça !
Et ton vous d'un des messages précédent ne me vouvoyait pas il parlais en général. Et puis qu'est-ce que ça peut bain faire qu'on se vouvoient c pas grave moi je m'en rend pas compte quand j'écris et vous c'est plus poli à moins que tu préfère absolument que je te tutoie et le monde peuvent écrire selon leur désir. Je ne dis pas ça pour être méchant je dis juste ça parce que je vouvoie presque tout le monde parce que j'y suis habitué.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 30 juin 2003 à 16:57
Salut!
t pas obligé de me vouvoyer mdr :) j'avais utilisé un "vous" dans un de mes messages mais c t par accident, :-)
en effet tu ne peux pas demander l'imputrécibilité d'un cookie, mais tu peux le configurer pr qu'il soit effacé après 10, 20, 30, 1000 ans si tu veux. Mais souvent les utilisateurs pr une raison ou pour une autre voint leurs cookies effacés donc ce n'est pas garanti. Le mieuxétant je pense de créer le cookie pour mettons un an, et le recréer à chaque visite, comme ça il est tjs valide pendant "un an depuis la dernière visite"
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 30 juin 2003 à 15:33
Désolé c'est encore moi, je veux juste savoir s'il est possible de paramétrer un cookie qui n'expire pas parce que si on met pas d'expiration il est valide seulement pour la session courante et on peut quand même pas mettre uyn chiffre infini. Peut-être 0 je ne sais pas. Si c'est trop compliqué commencez pas à calculer ça sur des bouts de papier SVP Kirua dites-moi quoi je dois faire et je le ferai moi-même mes intentions n'étant point paresseuses.
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 30 juin 2003 à 00:51
J'y suis allé et je trouvais pas ou étais la liste des fonctions j'ai trouvé un Manuel mais pas les fonctions et tout ça a fini par une recherche dans Google.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 29 juin 2003 à 19:22
tu n'as pas eu de difficultés, tu n'as pas cherché. désolé mais demander comment fonctionne une fonction c'est la dernière chose à faire puisqu'un coup de google et tu l'as en 2 nanosecondes.
ce qui confirme bien que quand les gens ont trouvé un endroit ou on les aide charitablement ils ne réfléchissent plus et à la moindre erreur ils sont eprdus. c pas la première fois que je vois ça, on va dire que c humain (d'ailleurs je pense bien que ça m'est arrivé aussi)
honnêtement y a des questions que tu aurais pu éviter aussi débutant que tu es, et puis tu dis merci après avoir posé les questions mais pas après qu'on ait répondu (t'imagines que j'ai du prendre une feuille et un crayon pr trouver comment calculer la date du lundi qui suit, mais tu aurais pu le faire aussi non? à moins que tu aies 4 ans) c pas des maths très poussés
sur ce, bonne continuation comme d'hab hein :)
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 19:18
C bo j'ai trouvé merci de votre aide tout au long de mes difficultés et c'est pas parce que ça me tentait pas de le faire c'est que je suis un beginner en PHP.
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 29 juin 2003 à 19:04
kirua> c bien plus facile de demander a quelqu'un de faire le code voyons lol, comme ça ils cherchent pas, c rapide (si les gens sont gentils), ils disent pas merci et aprés ils disent "Vous aimez ? c moi ki l'ai fé sans aucune aide" lol
Bon ok c pas tous ki le font mais y a un grand nombre de personnes ki font ça, c dailleur pour ça ke je fais que des tuto avec des morceaux de code et pas des sources entieres, j'aime pas me casser le cul pour ke des gens disent ke c eux ki l'ont fé lol
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 29 juin 2003 à 18:53
WWW.PHP.NET je comprends pas que vous n'y alliez pas, on y fait tt le temps référence pffffffff
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 18:41
Oui mais c'est quoi la syntaxe de timestamp(koi, koi ,koi, mois, jour, an) et comment je marque 7h30 du soir la dedans ?????
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 29 juin 2003 à 18:30
non pas pr le dimanche en fait. au début j'avais une switch et puis je l'ai viré.
tu n'as qu'à le mettre dans une if:
if($nd >= 1)
//ce que j'ai dit
elseif($nd < 1)
$avance = 1-$nd;
et comme ça ça marchera pour tous les jours, suffit de remplacer 1 par le code du jour quetu veux
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 29 juin 2003 à 18:27
mais si, faut pas compliquer.
Bon, tu fais comme suit:
Pour récupérer la date du lundi qui suit, (sache que c'est le jour 1 de 0 à 6), tu regarde le n° du jour actuel comme ceci:
$nd = date('w')
Tu sais qu'il va falloir avancer de ce nombre jusqu'au premier 1 qu'on trouve. donc $nd+1 +1 +1 ... = 1
à savoir que si on arrive à 6, il faut revenir à 0 (puisqu'il n'y a que 7 jours, de 0 à 6). bien ça donne du genre:
$avance = 7 - $nd + 1;
regarde bien pour toutes les valeurs on obtiendra bien le nombre de jours voulu (teste pour un dimanche (0) un samedi (6) un lundi (1) etc...
après tu crée une date:
$nvlle_date = time() + $avance * 24 * 60 * 60; // avance de $avance jours
et puis tu passes ton beau timestamp au cookie
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 18:21
Je viens de le trouver lis mon message précédent j'ai d'autres questions.
Merci
Mathieu M-G
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 29 juin 2003 à 18:20
faut faire ça avec le timestamp :
date prévu - date aujourd'hui = date qu'on veut
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 18:20
Euréka ! (Comme le dirait si bien mon ami Einstein)
Je devine les 3 "0" devant les trosi variables en ordre : seconde, minute et jour.
Si je veux rajouter pour 7h30 PM (19H30) quel "0" je remplace par la dite variable et quelle syntaxe à cette dernière : 19h30 ou 7j30 pm ou 19:30 ou 7:30 P ou 7.5 P ou 19.5 P ??? Ou un autre je sais pas trop comment le marquer.
Merci
Mathieu M-G
pyroflo
Messages postés323Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention17 mai 2005 29 juin 2003 à 18:18
Je vois pas trop ce que tu veux dire mais regarde ça :
Si tu veux soustraire la data de hier notée x à la date d'aujourd'hui notée y, tu fais simplement y - x ! Puis tu assignes le résultat à la valeur du cookie.
Si c'est ce que tu cherches je vois pas le problème mais je ne suis pas sûr que ça soit ça...
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 18:13
Oui mais il n'es pas possible de préalablement calculer l'intervale entre la date voulue et la présente date(en secondes) et affecter cette valeur à l'expiration du cookie ???
Merci
Mathieu M-G
pyroflo
Messages postés323Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention17 mai 2005 29 juin 2003 à 18:08
Si je comprends bien tu veux interdire un autre vote pendant un laps de temps. Voilà une solution qui n'est peut être pas la meilleure mais je propose :
Lors de l'envoie du cookie tu stockes la date() dans une table puis tu la compares avec la date() actuelle lorsque le visieur revient sur ton site.
MAIS la valeur du cookie ne doit pas être "oui" ou "non" mais la date() qui aura été stockée...
Je vois que ça :)
Bon courage !
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 17:57
Bon ça marche !
C'est parce que y avait <html><head> avant mon affaire de cookie mais puisque cette page était dans un frame de 0 X 0 je ne voyais pas l'erreur Header already sent de PHP.
Maintenant je ne sais pas comment faire pour soustraire la date de lundi ademttons à celle d'aujourd'hui pour le mettre dans l'expiration du cookie ???
Merci
Mathieu M-G
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 17:52
pyroflo
Messages postés323Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention17 mai 2005 29 juin 2003 à 16:58
mathieumg >>> même erreur que eax, tu n'as pas mis la durée d'expiration donc dès que tu recherches là page au revoir le cookie donc ta condition n'est pas respectée donc pas d'affichage.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 29 juin 2003 à 16:53
$_COOKIE['zpt']
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 29 juin 2003 à 16:45
pyroflo
Messages postés323Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention17 mai 2005 28 juin 2003 à 13:20
Oui oui tu as tout à fait raison !
Mais ce que je comprends pas c'est que lorsque tu reload une page, la session ne se termine pas. Mais quand tu fermes er relances le navigateur la oui bien sûr.
eax
Messages postés728Date d'inscriptionjeudi 20 juin 2002StatutMembreDernière intervention 7 novembre 20072 28 juin 2003 à 11:39
en fait, g compris mon erreur:
quand on ne met pas de limite de validité, le cookie n'est valide que pour la session courante, donc il faut obligatoirement fixer une date limite
eax
Messages postés728Date d'inscriptionjeudi 20 juin 2002StatutMembreDernière intervention 7 novembre 20072 27 juin 2003 à 23:24
ben en fait
<?=$blabla?>
c pareil que
<? echo $blabla; ?>
mais c plus court et + rapide à taper :)
pyroflo
Messages postés323Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention17 mai 2005 27 juin 2003 à 18:55
eax >>> quelques remarques : je ne comprends pas (je ne connais pas) pourquoi tu mets =$_COOKIE[test] ?
Moi j'aurai mis echo $_COOKIE['test']; (avec les simple quotes).
Voilà je t'aide pas vraiment là mais bon le = me surrpend :)
eax
Messages postés728Date d'inscriptionjeudi 20 juin 2002StatutMembreDernière intervention 7 novembre 20072 27 juin 2003 à 17:15
euh excuse moi (désolé d'être lourd), mais g du mal avec les cookies alors g crée une page toute simple:
<? setcookie("test","c_bon"); ?>
<html>
<?=$_COOKIE[test]?>
</html>
et il affiche c_bon que si je fais réactualiser et qd je relance le navigateur, il met + rien lol
pourtant g activé les cookies, c un bug de iexplore ou c moi qui ai du mal?
eax
Messages postés728Date d'inscriptionjeudi 20 juin 2002StatutMembreDernière intervention 7 novembre 20072 21 juin 2003 à 21:51
StarflaM> ben t'as pas le sens de l'humour ou quoi?
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 21 juin 2003 à 20:01
Comment je suis supposé faire ça wonesek (P.S. je suis un newbie !)
Merci
Mathieu M-G
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 21 juin 2003 à 16:52
pas content tu vas voir d'autre tutorial :-D
StarflaM
Messages postés2Date d'inscriptionsamedi 21 juin 2003StatutMembreDernière intervention21 juin 2003 21 juin 2003 à 15:35
lol C'est dommage lol de mettre des "lol" des tes lol commentaires de ton code.... lol :/
wonesek
Messages postés115Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention13 mai 2006 21 juin 2003 à 13:01
je parle pas bien francais.... escusez moi :) lol
wonesek
Messages postés115Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention13 mai 2006 21 juin 2003 à 13:00
tu prends le timestamp de la date fixe que tu le soustrait à time() et puis voila
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 21 juin 2003 à 12:35
Oui je sais mais ça c'est relatif à la date de création !
Admettons je veux que pour tous les visiteur il se détruise dimanche peu importe la date de création, je fais comment ???
Merci d'avance
Mathieu M-G
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 21 juin 2003 à 12:32
bah ouais c expliqué dans le tuto
mktime() + 3600 = 1h
mktime() + (3600*24) = 1 jours
mktime() + ((3600*24)*30) = 1 mois
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 21 juin 2003 à 12:21
Est-il possible de mettre admettons la date d'expiration d'un cookie à une date fixe (et non une date relative au moment de la création) ????
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 17 mai 2003 à 12:50
t'as plus de 40 jours de retard... (H) t'es pas aware
pyroflo
Messages postés323Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention17 mai 2005 15 mai 2003 à 23:58
gogo.prog >>> tu le crées avant la balise <html> parce que, comme il est indiqué dans ce tuto, on crée les cookies avant d'envoyer le header de la page (ça donne pleins d'infos...).
Corrigez moi si je me trompe !
Tiens, Kirua ! On est toujours au même endroit lol ;)
gogo.prog
Messages postés5Date d'inscriptionlundi 21 février 2000StatutMembreDernière intervention11 mai 2003 11 mai 2003 à 12:46
je ne comprend pas quand je dois creer mon cookie :(
wonesek
Messages postés115Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention13 mai 2006 29 mars 2003 à 11:08
Quoi qu'il en soit, y a une technique pour que des le premier chargement de la page (celui qui initialise les cookies) tu puisse avoir acces a tous tes cookies: en effet, $HTTP_COOKIE_VARS['foo'] = $val fonctionne (bah oui c'est un tableau comme un autre a priori!)
cs_Tortuegeniale
Messages postés1123Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention26 juin 2008 27 mars 2003 à 23:16
C'est le meme probleme pour les sessions
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 27 mars 2003 à 23:04
très juste, ça m'avait échappé.
merci vieux ;-)
wonesek
Messages postés115Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention13 mai 2006 27 mars 2003 à 12:15
Réponse Kirua:
Non ce n'est pas que tu peux pas lire les cookies sur la page qui l'a creer mais lorsque que tu fais un setcookie() les header informations de la page ont deja été chargé et donc les cookies que tu viens de définir ne peuvent pas etre pris en compte, c'est pour ca qu'il faut que tu recharge ta page pour que modifications soient effectives
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 27 mars 2003 à 07:44
est-ce que c'est vrai qu'on ne peut pas lire un cookie depuis la page qui l'a écrit ?
J'ai lu ça sur chai°plus°quel°site et ça s'est vérifié sur le mien, puisque j'ai dû créer une page intermédiaire :(
22 déc. 2005 à 16:25
Ce que je fais c'est un truc du genre.
Parfois on ne peut pas ce permettre de recharger la page pour raison XY.
Je fais une copie d'un code d'exemple pour une variable de langue.
*****codeur: Longshot le: 22-12-2005
$expire = 10; // 10 sec avant l'expiration, c'est pratique pour tester sans avoir besoin de redemarer le nav. a chaque fois. A changer lors de l'exploitation.
if ($_COOKIE["lang_cookie"]) // si le coookie existe l'attribuer à la $lang_var
$lang_var = $_COOKIE["lang_cookie"];
elseif (isset($_GET['lang'])) { // sinon si $_GET['lang'] existe (pour mon cas le cookie = une var(lang) d'url)
$lang_var = $_GET['lang'];
setcookie("lang_cookie","$lang_var",time()+$expire);} // et créer le cookie
else
$lang_var = "default";
// pour testons en appelant la page, puis en la rappelant
echo "Mon cookie = " . $_COOKIE["lang_cookie"];
echo "
Ma var =" . $lang_var;
include("include/traduction.php");
//et dans le include un truc genre if ($lang_var "fr") $ville "en français";
// if ($lang_var "default") $ville "rien";
// else
echo "
$ville";
**** FIN
Bon un if/else aurrais suffit, mais j'aime bien savoir ce qui passe dans mes variables.
elseif (isset($_GET['lang'])) doit pouvoir ce remplacer par elseif ($_GET['lang']) question d'habitude.
Voilà en résumer, plutot que de tout miser sur le cookie que de toute façon il va falloir rap. a chaque page j'utlise une varible normale.
Au départ je voulais utilisé les sessions, mais si pour une raison XY elle tombait (fermeture du navigateur, plantage etc.. le visiteur ce retrouverai certainement avec la langue par defaut.
Pour les malins (lol) récupérer la langue du navigateur et aussi une solution, mais par ex. si le visiteur travail avec un ordi en espagnol et que sa langue natale et le français je pense qu'il serai plus à l'aise si celà s'affiche dans celle-ci.
Bon c'est une proposition, je suis ptre a coter completement, mais cette solution me convient.
ATTENTION ne jamais stocker de cookie login/pass trop dangereux le mieu c'est une session.
Si jamais pour ceux qui serai interressé, j'ai aussi un petit code pour éviter ceux qui piquerai la connection.
25 juin 2004 à 04:39
Mat
23 juin 2004 à 11:57
9 juin 2004 à 16:47
Mais je n'arrive pas , avec le script, à récupérer les cookies : ou sont -ils ? Faut il créer un fichier de récupération ?
merci @+
1 juin 2004 à 21:22
Merci tortue t'es génial ;)
Donc je passais par là pour parfaire toujours mon apprentissage de php, et j'ais vu des histoire de date dans les commentaire de ce tuto, dont la reponse peut être autre.
Donc pour ceux qui veulent un cookie qui expire à une date précise, il existe une solution avec mktime() directement dans la déclaration du cookie.
------
code:
---------------------------------------------
setcookie("$nom_du_cookie","$valeur_du_cookie",mktime(0,0,0,1,1,2005));
---------------------------------------------
Le cookie ici expire le 1ier janvier 2005.
Voila cela à surement été dis alleur depuis le temps, mais cela pourra surement servir à celui qui passe par ce tuto.
@++
7 avril 2004 à 14:41
thx pour ton tuto j'ai eu du mal un moment mais pour une connerie lol... j'avais foutu des "." dans le nom de mon cookies.
27 mars 2004 à 16:14
Le reste de la discussion était trop longue à lire bien que des bouts de réflexionssont présents un peu par-ci par-là !
En résumé... Merci !
SEE U SOON
BoulyFamily
2 oct. 2003 à 03:25
<?php
$recu = $TestCookie;
if (!isset($recu)) {
$recu = $_COOKIE["TestCookie"];
}
if (!isset($recu)) {
$recu = $HTTP_COOKIE_VARS["TestCookie"];
}
if (!isset($recu)) {
echo "a pas cookie";
} else {
echo "cookie=",$recu;
}
?>
Je me suis aperçu de la boulette en testant sur un serveur local où $_COOKIE fonctionne et pas $HTTP_COOKIE_VARS, comme sur deux autres serveurs distants que j'ai testé. Ca vient de quoi ? De la config du serveur ou c'est le bordel dans les versions ?
2 oct. 2003 à 02:50
1/ sous peine de parse error en pagaille, il faut virer les blancs ou les tabs de début de ligne.
Ecrire par exemple:
if (condition) {
action;
}
et non pas:
if (condition) {
action;
}
2/ sur le serveur que j'utilise pour tester (hebergementgratuit, pour ne pas le nommer), $_COOKIE ne marche pas pour lire les cookies existants, on ne peut les récupérer qu'avec le nom de la variable ou avec $HTTP_COOKIE_VARS.
Voilou un petit bout de code pour tester avec les trois méthodes si cet enfoiré de cookie existe ou pas.
<?
$recu = $TestCookie;
if (!isset($recu)) {
$recu = $_COOKIE["TestCookie"];
}
if (!isset($recu)) {
$recu = $HTTP_COOKIE_VARS["TestCookie"];
}
if (!isset($recu)) {
echo "Ben ? Où kil est le cookie à son papa ?";
} else {
echo "cookie=",$TestCookie;
}
?>
Remarques:
isset($var) vérifie, comme son nom l'indique si $var est vide ou pas. Je suppose que if (!$recu$) doit faire la même chose, mais isset existant, pourquoi ne pas s'en servir, hein ?
La variable TestCookie a été envoyé dans une précédente page avec:
<?
$value="tagada";
setcookie("TestCookie",$value,time()+3600);
?>
3/ Effacer le cookie juste en écrivant par dessus ne marche pas non plus setcookie("TestCookie"); ou plutôt ne l'efface pas tout de suite. Pour virer la chose tout de suite, faut lui donner un temps de vie négatif.
<?
setcookie ("TestCookie","", time() - 3600);
?>
Là, vue qu'il n'existe plus depuis une heure, a pu le cookie, mortibus.
Voilou, j'espère que j'ai pas trop dit de conneries, je ne m'y suis mis qu'hier au php, je suis pas encore un gourou :)
23 août 2003 à 20:17
17 août 2003 à 17:51
y'a des fois je m"tonne moi méme lol
17 août 2003 à 17:42
4 août 2003 à 21:31
4 août 2003 à 14:51
4 août 2003 à 12:05
3 août 2003 à 23:54
tas tout simplement oublie de dire comment on testait si le browser du client acceptait les cookies... C'est pas négligeable :)
4 juil. 2003 à 01:21
Tu dis qu'il y a une erreur de yntaxe, mais elle se trouve probablement autrepart dans ton code, enfin sa s'avère difficile de t'aider avec ce peu d'infos :/
2 juil. 2003 à 22:17
Mais cela ne marche pas ! Pas parce que je ne sais pas comment mais bien pour une raison que j'ignore, voici mon code :
dans la page de vérification si le user est john et le mot de passe mdp ça donnerait ceci :
setcookie("usr","john",mktime()+31536000);
setcookie("pswd","mdp",mktime()+31536000);
et dans la page de connexion
" type="text" name="username">
" type="password" name="password">
si je prend $_COOKIE['usr'] i l y a une erreur de syntaxe en plus.
Ceux que ça leur tente et dont ils sont capables merci beaucoup de m'aider.
Mathieu M-G
http://www.maxicom.ca.tc
30 juin 2003 à 19:06
@+
Mathieu M-G
http://www.maxicom.ca.tc
30 juin 2003 à 19:05
- Si vous voulez
ça te rappelle rien? :-) (un peu de politique française ^^ je suis belge mais j'en ai entendu parler ^^)
30 juin 2003 à 17:13
Et ton vous d'un des messages précédent ne me vouvoyait pas il parlais en général. Et puis qu'est-ce que ça peut bain faire qu'on se vouvoient c pas grave moi je m'en rend pas compte quand j'écris et vous c'est plus poli à moins que tu préfère absolument que je te tutoie et le monde peuvent écrire selon leur désir. Je ne dis pas ça pour être méchant je dis juste ça parce que je vouvoie presque tout le monde parce que j'y suis habitué.
Merci encore
@+
Mathieu M-G
http://www.maxicom.ca.tc
30 juin 2003 à 16:57
t pas obligé de me vouvoyer mdr :) j'avais utilisé un "vous" dans un de mes messages mais c t par accident, :-)
en effet tu ne peux pas demander l'imputrécibilité d'un cookie, mais tu peux le configurer pr qu'il soit effacé après 10, 20, 30, 1000 ans si tu veux. Mais souvent les utilisateurs pr une raison ou pour une autre voint leurs cookies effacés donc ce n'est pas garanti. Le mieuxétant je pense de créer le cookie pour mettons un an, et le recréer à chaque visite, comme ça il est tjs valide pendant "un an depuis la dernière visite"
30 juin 2003 à 15:33
Merci d'avance de votre aide.
Mathieu M-G
http://www.maxicom.ca.tc
30 juin 2003 à 00:51
Encore merci et désolé
@+
Mathieu M-G
http://www.maxicom.ca.tc
29 juin 2003 à 22:41
et php.net doit être ton meilleur allié dans ta course contre l'empire du Mal ;-)
29 juin 2003 à 19:25
Merci et excuse
Mathieu M-G
http://www.maxicom.ca.tc
29 juin 2003 à 19:22
ce qui confirme bien que quand les gens ont trouvé un endroit ou on les aide charitablement ils ne réfléchissent plus et à la moindre erreur ils sont eprdus. c pas la première fois que je vois ça, on va dire que c humain (d'ailleurs je pense bien que ça m'est arrivé aussi)
honnêtement y a des questions que tu aurais pu éviter aussi débutant que tu es, et puis tu dis merci après avoir posé les questions mais pas après qu'on ait répondu (t'imagines que j'ai du prendre une feuille et un crayon pr trouver comment calculer la date du lundi qui suit, mais tu aurais pu le faire aussi non? à moins que tu aies 4 ans) c pas des maths très poussés
sur ce, bonne continuation comme d'hab hein :)
29 juin 2003 à 19:18
Merci
Mathieu M-G
http://www.maxicom.ca.tc
29 juin 2003 à 19:04
Bon ok c pas tous ki le font mais y a un grand nombre de personnes ki font ça, c dailleur pour ça ke je fais que des tuto avec des morceaux de code et pas des sources entieres, j'aime pas me casser le cul pour ke des gens disent ke c eux ki l'ont fé lol
29 juin 2003 à 18:53
29 juin 2003 à 18:41
MERCI
Mathieu M-G
http://www.maxicom.ca.tc
29 juin 2003 à 18:36
29 juin 2003 à 18:34
Merci quand même
Mathieu M-G
http://www.maxicom.ca.tc
29 juin 2003 à 18:30
tu n'as qu'à le mettre dans une if:
if($nd >= 1)
//ce que j'ai dit
elseif($nd < 1)
$avance = 1-$nd;
et comme ça ça marchera pour tous les jours, suffit de remplacer 1 par le code du jour quetu veux
29 juin 2003 à 18:27
Bon, tu fais comme suit:
Pour récupérer la date du lundi qui suit, (sache que c'est le jour 1 de 0 à 6), tu regarde le n° du jour actuel comme ceci:
$nd = date('w')
Tu sais qu'il va falloir avancer de ce nombre jusqu'au premier 1 qu'on trouve. donc $nd+1 +1 +1 ... = 1
à savoir que si on arrive à 6, il faut revenir à 0 (puisqu'il n'y a que 7 jours, de 0 à 6). bien ça donne du genre:
$avance = 7 - $nd + 1;
regarde bien pour toutes les valeurs on obtiendra bien le nombre de jours voulu (teste pour un dimanche (0) un samedi (6) un lundi (1) etc...
après tu crée une date:
$nvlle_date = time() + $avance * 24 * 60 * 60; // avance de $avance jours
et puis tu passes ton beau timestamp au cookie
29 juin 2003 à 18:21
Merci
Mathieu M-G
29 juin 2003 à 18:20
date prévu - date aujourd'hui = date qu'on veut
29 juin 2003 à 18:20
$an = "2003";
$mois = "06";
$jour = "29";
$date = mktime();
$date2 = mktime(0, 0, 0, $mois, $jour, $an);
$diff = floor($date2 - $date);
if($_COOKIE['zpt']=="oui")
{
print("Vous avez déja voté !");
}
else
{
setcookie("zpt","oui",$diff);
}
Je devine les 3 "0" devant les trosi variables en ordre : seconde, minute et jour.
Si je veux rajouter pour 7h30 PM (19H30) quel "0" je remplace par la dite variable et quelle syntaxe à cette dernière : 19h30 ou 7j30 pm ou 19:30 ou 7:30 P ou 7.5 P ou 19.5 P ??? Ou un autre je sais pas trop comment le marquer.
Merci
Mathieu M-G
29 juin 2003 à 18:18
Si tu veux soustraire la data de hier notée x à la date d'aujourd'hui notée y, tu fais simplement y - x ! Puis tu assignes le résultat à la valeur du cookie.
Si c'est ce que tu cherches je vois pas le problème mais je ne suis pas sûr que ça soit ça...
29 juin 2003 à 18:13
Merci
Mathieu M-G
29 juin 2003 à 18:08
Lors de l'envoie du cookie tu stockes la date() dans une table puis tu la compares avec la date() actuelle lorsque le visieur revient sur ton site.
MAIS la valeur du cookie ne doit pas être "oui" ou "non" mais la date() qui aura été stockée...
Je vois que ça :)
Bon courage !
29 juin 2003 à 17:57
C'est parce que y avait <html><head> avant mon affaire de cookie mais puisque cette page était dans un frame de 0 X 0 je ne voyais pas l'erreur Header already sent de PHP.
Maintenant je ne sais pas comment faire pour soustraire la date de lundi ademttons à celle d'aujourd'hui pour le mettre dans l'expiration du cookie ???
Merci
Mathieu M-G
29 juin 2003 à 17:52
if($_COOKIE['zpt']=="oui")
{
print("Vous avez déja voté !");
}
else
{
setcookie("zpt","oui" ,mktime()+3600 );
}
29 juin 2003 à 16:58
29 juin 2003 à 16:53
29 juin 2003 à 16:45
Mon code :
if($_COOKIE[zpt]=="oui")
{
print("Vous avez déja voté !");
}
else
{
setcookie("zpt","oui");
}
28 juin 2003 à 13:20
Mais ce que je comprends pas c'est que lorsque tu reload une page, la session ne se termine pas. Mais quand tu fermes er relances le navigateur la oui bien sûr.
28 juin 2003 à 11:39
quand on ne met pas de limite de validité, le cookie n'est valide que pour la session courante, donc il faut obligatoirement fixer une date limite
27 juin 2003 à 23:24
<?=$blabla?>
c pareil que
<? echo $blabla; ?>
mais c plus court et + rapide à taper :)
27 juin 2003 à 18:55
Moi j'aurai mis echo $_COOKIE['test']; (avec les simple quotes).
Voilà je t'aide pas vraiment là mais bon le = me surrpend :)
27 juin 2003 à 17:15
<? setcookie("test","c_bon"); ?>
<html>
<?=$_COOKIE[test]?>
</html>
et il affiche c_bon que si je fais réactualiser et qd je relance le navigateur, il met + rien lol
pourtant g activé les cookies, c un bug de iexplore ou c moi qui ai du mal?
21 juin 2003 à 21:51
21 juin 2003 à 20:01
Merci
Mathieu M-G
21 juin 2003 à 16:52
21 juin 2003 à 15:35
21 juin 2003 à 13:01
21 juin 2003 à 13:00
21 juin 2003 à 12:35
Admettons je veux que pour tous les visiteur il se détruise dimanche peu importe la date de création, je fais comment ???
Merci d'avance
Mathieu M-G
21 juin 2003 à 12:32
mktime() + 3600 = 1h
mktime() + (3600*24) = 1 jours
mktime() + ((3600*24)*30) = 1 mois
21 juin 2003 à 12:21
Merci d'avance
Mathieu M-G
http://www.maxicom.ca.tc
17 mai 2003 à 12:50
15 mai 2003 à 23:58
Corrigez moi si je me trompe !
Tiens, Kirua ! On est toujours au même endroit lol ;)
Pyroflo
http://www.abcpyro.fr.st
11 mai 2003 à 12:46
29 mars 2003 à 11:08
27 mars 2003 à 23:16
27 mars 2003 à 23:04
merci vieux ;-)
27 mars 2003 à 12:15
Non ce n'est pas que tu peux pas lire les cookies sur la page qui l'a creer mais lorsque que tu fais un setcookie() les header informations de la page ont deja été chargé et donc les cookies que tu viens de définir ne peuvent pas etre pris en compte, c'est pour ca qu'il faut que tu recharge ta page pour que modifications soient effectives
27 mars 2003 à 07:44
J'ai lu ça sur chai°plus°quel°site et ça s'est vérifié sur le mien, puisque j'ai dû créer une page intermédiaire :(