Fin session jeu sur navigateur

Résolu/Fermé
Makari - 19 juin 2008 à 22:19
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 23 juin 2008 à 17:07
Bonjour,

j'ai un jeu en développement, qui utilise des cookies et des frames (aucun rapport je sais mais ca va venir)

mes cookies sont bons pour une periode assez longue (un an :p)
ce que je voudrai faire, c'est qu'au bout de disons 20 minutes d'inactivité sur le site, l'utilisateur soit rediriger vers la page d'accueil ou il devra a nouveau entrer login/mdp.

Je sais pas du tout comment faire (le seul moyen qui me vient a l'esprit serait de tester la date d'un cookie et de rediriger a l'accueil avec suppression du cookie si il est plus vieux que 20 minutes, ce qui impliquerait qu'il faudrait le réactualiser dans toute mes pages, ce qui en fait un bon paquet :/)

si quelq'un peut me mettre sur une voie, ca serait bien aimable ^^
A voir également:

27 réponses

X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
19 juin 2008 à 22:40
Tu utilises les sessions php pour vérifier s'il est loggé?
0
bin pour le moment quand il se connecte ca remplie une table ds la bdd mais c'est tout, sinon j'utilise des cookies qui sont utilisés tout au long du jeu pour l'identifier. J'ai pas vraiment d'idée de comment faire finir la session ...
mais sinon, non j'utilise pas de "sessions start" etc, on m'a conseillé de l'eviter car ca se fait plus :/
0
Tu as déjà donné la solution dans ton premier post : à chaque fois qu'un client demande une page tu vérifies l'ancienneté du cookie : >20min ? page d'accueil sinon maj du cookie et on continue.
Après ton problème "qu'il faudrait le réactualiser dans toute mes pages, ce qui en fait un bon paquet" est facile à gérer si ton site est correctement implémenté au niveau de sa structure. Je suppose que t'as plusieurs pages du type a.php, b.php, c.php, .. que va demander ton client. Au lieu de faire le test dans chaque page ou de faire un include vers le test, il suffit de placer un fichier "maitre", mettons check.php qui va tester l'ancienneté du cookie et prendre les décisions qui vont bien. Si la session est active, tu rediriges vers le bon fichier avec un include. Ton client ne verra que le check.php, tu passeras les paramètres de la page souhaitée par les options : check.php?file=a.php par exemple.
0
euh j'ai tout compris sauf le passage du fichier "maitre" :p
j'aurai pensé que ce serait un fichier qui test le cooki et agit en fonction si tu n'avait pas exclu justement cette option du include, mais du coup je ne vois pas ce que tu veux dire par "fichier maitre" :/
0
Utilisateur anonyme
20 juin 2008 à 03:49
(je suis bob, me suis inscrit...)
Ben par fichier maitre j'entends simplement le fichier qui va prendre les décisions (session active/pas active). Il est maitre parce qu'il décide ;). Le include intervient si la session est toujours active (<20min), il permet d'inclure la page adéquate.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
en gros si je comprends bien y'aurait le fichier check.php qui redirigerai soit a l'accueil soir a la page demandée par l'utilisateur si ca fait moins de 20min, mais une fois sur la page demandée, quand il ira sur une autre page, le test du fichier check.php ne sera pas effectuer pourtant, non ?

check -> (page1 ou -> page2) test si page 1 ou 2 selon cookie
page1 -> pagex pas de test puis que les lignes de codes sont dans check

est ce qu'il s'agirait d'un moyen qui ferait qu'a chaque page il y'ait un passage intraseque via check.php ??

si c'est ca, je voudrais bien savoir comment on le fait :p
si c'est pas ca bah j'ai loupé quelque chose :/ (a cette heure la ca commence a etre normal ;))
0
Utilisateur anonyme
20 juin 2008 à 04:01
Le principe est là pour check.php, ensuite pour les liens entre page évidemment il faut tout faire pointer vers check.php (d'où le principe du fichier maitre qui décide). Exemple l'utilisateur est sur la page1 :
Ta solution actuelle : il clique sur un lien vers la page2.php
Ma modeste proposition : il clique un sur un lien vers la page check.php&file=page2.php (on parametre la page demandée dans le script check.php)
Coté serveur tu fais ensuite un include($_POST['file']) si la session est ok bien sûr...
0
ok, mais donc ca necessite de rajouter la ligne necessaire au pointage vers check.php pour chaque lien du coup, ce qui est pire que mettre un include en debut de toute puisque j'ai plusieurs lien par page. me trompe je ? :p
0
Utilisateur anonyme
20 juin 2008 à 04:07
Evidemment après à toi de voir quelle option est la moins chiante à implémenter, si t'as 15 liens dans chaque page qui pointe entre tes différentes pages vaut mieux passer par un include dans l'entête de chaque fichier (page1, page2,...).
0
ouep, c'est ce que je vais faire je pense, j'ai une centaine de page, je ferai ca demain lol
merci de m'avoir preter attention en tt cas ^^

sur ce, bonne nuit ;)
0
Utilisateur anonyme
20 juin 2008 à 04:13
De rien, bonne nuit.
0
En fait il subsiste un probleme :/

mon jeu est en plusieurs frame, et l'accueil n'a pas de frame, juste une page. le probleme c'est que je ne sais pas rediriger l'ensemble de la page (avec frame) vers une page unique (accueil). Si je fais une redirection vers l'accueil, seule la frame dans laquelle est ecrit la ligne de code va devenir l'accueil, laissant les autres frames telles quelles ...

existe t il un moyen de redirectionner l'ensemble des frames ? (comme si on retaper l'adresse dans l'url quoi)
0
Utilisateur anonyme
20 juin 2008 à 16:26
Point important : les frames c'est mal !
Pour répondre à ta question, tu peux essayer header('Location:'.$url);
0
les frames c'est mal seulement si ca pose probleme, je vois ca marqué partout mais j'ai jamais vu de raison ...

je vais essayer le header, en esperant que ca fonctionne ;) merci
0
Utilisateur anonyme
20 juin 2008 à 16:33
Ben si tu n'affiches que des pages de ton propre serveur, il n'y a aucune raison d'utiliser des frames.
0
Non, le probleme est exactement le même, la redirection se fait pour la frame, pas pour l'ensemble de la page ...
0
Ben si tu n'affiches que des pages de ton propre serveur, il n'y a aucune raison d'utiliser des frames.


le probleme n'est pas la, mon jeu a des frames et je veux regler les problemes qu'il y'a, bien sur je pourrai refaire mon jeu, mais je ne vais pas me retaper 500 heures de code juste pour ne pas avoir des frames.
perso je vois pas le probleme avec les frames et personne ne m'a encore démontrer que c'etait défaillant ou autre.

sinon pour en revenir a la question initiale, peut on "targeter" un header ou un include ? (comme on le fait avec des href) si c'est possible ca me reglerait le probleme.
0
Utilisateur anonyme
20 juin 2008 à 16:40
Tu peux passer par du javacript : document.location = url
0
je m'emmele deja bien les pinceaux avec le php, j'aimerai eviter le JS autant que possible (je m'en sers deja pour quelques compteurs et infobulles et ca me réussi pas trop ..)

il n'y vraiment pas moyen de trover une ligne de code equivalent a un "include("page.php" target =mainframe)' ??
0
Utilisateur anonyme
20 juin 2008 à 16:44
En cherchant on trouve toujours...

Je vois pas en quoi tu t'emmêles les pinceaux en ajoutant document.location dans les liens :/
0
bah deja je vois pas la ligne a ecrire, ou l'ecrire, avec des balises ou non etc, je connais strictement quedal en JS (en JS j'ai juste réussi a copier coller un script de compteur qui marche pas completement)

ajouter document.location a mon lien je suis pas sur que ca suffise (ca donnerait header('Location:'.$url.document.location); suis pas sur que ca passe)
0
Utilisateur anonyme
20 juin 2008 à 16:50
OK!
Alors petit cours de base :
php = code sur serveur
JS = code sur client

Ton site est en ligne, histoire de voir comment résoudre le truc ?
0
oui mon site est en ligne mais il faut s'enregistrer pour voir le probleme (y'a pas de confirmation ou autre pour l'inscription, c tout bidon :p) l'adresse est http://makkari.free.fr

mais tout ce qu'il me faudrait c'est une ligne qui fasse comme un include ou un header mais avec une option target.
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 24
20 juin 2008 à 16:57
Moi j'utilise javascript lorsque l'utilisateur n'est plus loggué. S'il essaie de réaccèder la page alors que la variable de session n'est plus valide car il a été trop longtemps inactif, je charge une page qui dit qu'il doit se connecter et je fais un redirect javascript pour l'envoyer sur la page en question. Tu veux faire un truc du genre?

PS: les variables de session expire d'elles même après une trop longue inactivité alors pas besoin de le calculer :o
0
bin pourquoi pas si le code est simple a mettre en place, mais je n'utilise pas de sessions mais des cookies, ca marcherait aussi ?
0
le probleme me semble pourtant simple mais on dirati qu'il n'existe pas de solution egalement simple.

j'ai des frames, et je voudrais juste qu'il soit possible de revenir a l'index, mais que ca se fasse pas que dans une frame mais pour l'ensemble de la page (la j'arrive juste a faire qu'un frame contiennne l'accueil, qui aura ensuite d'autres frames etc, ca fait popuée russe quoi)
0
Utilisateur anonyme
20 juin 2008 à 17:23
J'espère que tu commences à sentir la lourdeur de la structure en frames...
0
bin mis a part l'impossibilité totale de revenir a l'index pour l'ensemble de la page, oui c'est problématique, mais je ne referai pas tout le travail juste pour eviter les frames.

d'autant plus que je pense qu'il existe bel et bien un moyen de revenir a l'index, je suis juste impressioné que personne ne sache comment faire.

et mis a part ce pb je vois toujours pas le probleme des frames, au moins, ce qu'il y'a dedans n'a pas a etre recharger a chaque page que l'on visite.
0
Utilisateur anonyme
20 juin 2008 à 17:41
"au moins, ce qu'il y'a dedans n'a pas a etre recharger a chaque page que l'on visite."

D'où l'intérêt de javascript et de XMLHTTPRequest qui permet entre autre de recharger des portions du flux html : https://www.toutjavascript.com/savoir/xmlhttprequest.php3

Evidemment c'est pas après 500 pages (ça me parait énorme, si c'est des petits fichiers de script php ton projet n'est certainement pas optimisé, sinon chapeau !) que tu vas refaire le projet, mais je vois mal comment depuis une page (ton iframe) tu veux recharger une page externe (conteneur) sans passer par du javascript.
0
Il s'agit d'une centaine de page, 500 c'est plus les heures passées dessus ^^

pour le JS je veux bien tenter de m'y mettre mais va falloir etre tres clair, j'y connais rien, donc si y'a des balises ou quoi que ce soit a mettre, faut me le dire, ca vous parait sans doute evident mais pour moi c 'est nouveau.
0
Utilisateur anonyme
20 juin 2008 à 18:02
Avant de faire du JS, essaye juste l'attribut target="_parent" dans le lien...
0