Comment fair epour créér un cookie de la durée de vie d´une visite sur mon site?
< ?
$couleurcookie = $_GET[´membre´];
$expire=0; / / 1 an
setcookie("DESIGNCOOKIE","$couleurcookie",time()+$
expire); / /enregistrement du cookie au nom de DESIGN repris dans design.php3
? >
et comment ensuite détruire ce cookie? Merci d´avance
il se detruit tout seul, il faut juste donne une bonne valeur de temps de vie ( je sais pas encore comment faire)
J´en ai aucune idee mais en Javascript c´est:
/ / Example:
/ / writeCookie("myCookie", " my name", 24);
/ / Stores the string " my name" in the cookie " myCookie" which expires after 24 hours.
function writeCookie(name, value, hours)
{
var expire = " ";
if(hours ! = null)
{
expire = new Date((new Date()).getTime() + hours * 3600000);
expire = " ; expires=" + expire.toGMTString();
}
document.cookie = name + " =" + escape(value) + expire;
}
Si sa peux t´aider...
/ /Exemple en PHP
setcookie(´clef´,´´,time()-80000);
quand il se deconnecte tu met la valeur du cookie a rien, null
sinon je sais pas....
en gros des que tu te deconnectes tu cree un cookie de duree de vie nulle. Donc si je cree un cookie de duree de vie nulle des le depart, il na de duree de vie que celle de la visite???
c´est un peu le principe des sessions ![]()
![]()
ok rigolez mais chui pas un boss en cookie
un cookie se détruit des que le navigateur se ferme
on peut lui donner une durée de vie jusqua 2038
( a cette date, le nombre de seconde écoulé dépassera la taille d´un entier 32 bits) ![]()
mais a cette date, la plupart des systhèmes seront en 64 bits, ce qui nous fait une date, completement inateignable ^^
OK Merci mais plus concretement pour que le cookie est une durée de vie nulle, il faut marquer juste time() dans durée??? Et j´ai toujours appris qu´un cookie doit etre annoncé en premier dans une page. Si mettons ma page soit composée de
<? include(´partie1´.php´) ?>
<? include(´partie2´.php´) ?>
et que l´annonce de mon cookie soit fait en premiere ligne de la partie 2 cela fonctionnera t-il???
si c´est avant le <html> oui
mais ce que tu veux faire est faisable avec les sessions...
ho, ciel, un lien^^: http://www.siteduzero.com/php/superglobales.php#sessions
tu trouveras se qu´il te faut ;)
mais avec les sessions on gènere automatiquement un id de dession. Que faire car dans ma zone membre un ID composé de 30 caractères a deja été créé aléatoirement pour chaque membre???
Sinon merci je t´adore Psyko-Tique en fait ca a l´air tout con comme technique. Suffit juste d´adapter la session avec les differents membres de mon site et mon site aura une VRAIE zone membre
<div align="center">:D :D :D :D :D :D :D :D :D :D </div>
par contre je voulais savoir c´est dans ma requete pour trouver le pseudo de quelqu´un $pseudo_membre=mysql_result($requete,0,"pseudo"); que j´ai trouv" deja programmée, que signifie le 0???
Et avec le principe des sessions pourrais-je faire ainsi?
<?
session_start();
$_SESSION[´pseudo_membre´] = ´mysql_result($requete,0,"pseudo");´;
$_SESSION[´mot_de_passe´] = ´mysql_result($requete,0,"passe");´;
$_SESSION[´id_visiteur´] = ´mysql_result($requete,0,"id");´;
// Maintenant que le session_start est fait, on peut taper du code HTML
?>
Enfin si je mets de commencer une session alors que le visiteur n´est pas inscrit, cela ne risque-t-il pas de faire planter la page? Devrais-je mettre une condition avant de commencer une session?
Ou alors si le visiteur n´est pas enregistré, les variables pseudo vaudra 0 idem pour le pass? Merci d´avance
![]()
$pseudo_membre=mysql_result($requete,0,"pseudo")
j´ai jamais vu ça o_O
´fin, je sais pas ce que c´est^^
ben si tu recré un pseudo a chaque fois...
<?
if(isset($_SESSION[´pseudo_membre´]))
{
session_start();
}
else
{
session_start();
$_SESSION[´pseudo_membre´] = ´mysql_result($requete,0,"pseudo");´;
$_SESSION[´mot_de_passe´] = ´mysql_result($requete,0,"passe");´;
$_SESSION[´id_visiteur´] = ´mysql_result($requete,0,"id");´;
}
// Maintenant que le session_start est fait, on peut taper du code HTML
?>
ça doit être bon^^
sinon, moi, je vais chercher mes données dans une base de donnée, dans la table "membre" par exemple
je connais vraiment pas ta méthode oO
Ben le principe c´est que n´importe qui puisse s´inscrire sur le site (une infinité de personne) et que chacun se connecte sur une session individuelle
Psychotique je viens de trouver un truc que voici, je veux juste te demander de vérifier la syntaxe et ce que tu penses de ton texte.
Je t´explique la démarche
Avec conf.php3 je recupere le mot de passe de mon FTP (mot de passe que je ne vais evidemment pas divulger ici), mon login et mon serveur.
$db_link permet de vérifier si la connexion avec la base de donnée peut etre effectuée.
Ensuite je recupere le pseudo le passe. Mais je vérifie que le pseudo et le passe existent bien sur la base de donnée et concordent bien avec l´id du visiteur.
C´est pourquoi je fais
if(mysql_num_rows($requete)==0)
lien qui verifie que la requete est en dequation avec la database
Ensuite le code
if(mysql_num_rows($requete)==0)
{
$connexion = 0
}
else
{
$connexion = 1
}
permet d´attrivuer une valeur à $connexion, 0 si la requete est negative, 1 si effectivement le visiteur est enregistré
Puis vient $_SESSION[´validite´] = ´$connexion´; afin de faire coorespondre $connexion sur la variable de session.
et si if($_SESSION[´validite´] = ´$connexion´;==0)
{
echo "Vous devez être inscrit sur le site pour accéder à cette page";
exit;
}
cela permet que si $connexion = 0 donc est invalible rien ne s´affiche, autrement tout marche nickel
<?
require("conf.php3");
$db_link =
@mysql_connect($sql_serveur,$sql_user,$sql_passwd)
;
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}
$requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link) or die(mysql_error());
session_start();
$_SESSION[´pseudo_membre´] = ´mysql_result($requete,0,"pseudo")´;
$_SESSION[´mot_de_passe´] = ´mysql_result($requete,0,"passe")´;
if(mysql_num_rows($requete)==0)
{
$connexion = 0
}
else
{
$connexion = 1
}
$_SESSION[´validite´] = ´$connexion´;
mysql_close($db_link);
if($_SESSION[´validite´] = ´$connexion´;==0)
{
echo "Vous devez être inscrit sur le site pour accéder à cette page";
exit;
}
?>
Page à afficher pour les visiteurs de ma zone membre de mon site
je trouve le code bisare^^
si if($_SESSION[´validite´] = ´$connexion´;==0)
t´es sur de ça?
je suis pas sur de comprendre a quoi sert ton ==0
mais si tu veux redéfinir la valeur de $connexion fais le dans le if...
sans les ´ ça marche aussi (j´ai pas esayé donc je peux pas te dire que ça fera foiré ton code^^)
Te reste plus qu´a essayéer ;)
le si est une erreur. LE ==0 sert a dire s´il est égal à 0
et dans $connexion = 1 la syntaxe est bonne???
if ($connection = 1)
la syntaxe est bonne
si tu commence à écrir des nms de variables bisarement, tu va plus t´en sortir ![]()
mon orthographe devient deplorable. Soit c´est du a mon ecriture sms sur MSN messenger, soit j´ai confondu avec le magasin connexion... Merci pour tout psycho tik, tout marche sur mon site http://www.jeuxfun.com
Bon maintenant j´élabore la page de déconnexion