Version imprimable du sujet
Cliquez ici pour voir ce sujet dans son format original
Forum TourDeJeu > Programmer > Probleme Au Niveau De La Gestion Du Membre.


Ecrit par: Salty Dimanche 20 Février 2005 à 12h06
Bonjour a tous,

J'ai commence mon jeu et, comme toujours, je bloque au niveau de l'espace membre (inscription - connexion - déconnexion).

En fait, l'inscription ca passe (enfin non.. j'ai pas mis les protections, mais quand je les ai mises.. rien n'était enrengistré sur ma BDD blink.gif )

Par contre la connexion, c'est différent.. j'ai beau lire X tuto sur les variables de sessions, je n'arrive toujours pas a comprendre..

Pour être plus clair :

Comment faire pour

- que le menu change en fonction des sessions (si connecté on affiche les liens vers le jeu sinon lien inscription/connexion etc..)
- transporté le membre vers une autre page (avec les var. de sessions)
- les jointures ( crybaby.gif )

Merci bien de tout m'expliquer en détail.. parceque là je suis un peu (beaucoup) perdu.

Ah aussi, j'aimerais qu'un MJ me contact en privé pour me dire si les régles de mon jeu sont plus ou moins bien. Vu que c'est mon premier jeu en php j'ai peur des déséquilibres etc..

Merci d'avance,

Cordialement.
Salty.

Ecrit par: Nonothehobbit Dimanche 20 Février 2005 à 14h50
Cherche dans le forum MJ, il y a un sujet ou on parle de base de jeu open source qui comprend justement tout ce qui est enregistrement, login, gestion de session etc. Tu y trouvera surement des réponses à tes questions.

Ecrit par: Arckam Dimanche 20 Février 2005 à 15h00
Allez, hop, je m'y colle wink.gif

- que le menu change en fonction des sessions (si connecté on affiche les liens vers le jeu sinon lien inscription/connexion etc..).

C'est assez simple en fait. l'idée est la suivante:
CODE

SI ($connecté=1)
ALORS menu_connecté()
SINON menu_anonyme()


Maintenant reste juste à écrire une fonction, qui construit respectivement ton menu pour un joueur existant et ton menu pour un visiteur.
$connecté de son côté est une varaible de session. Tu nous fais un petit $_SESSION['connection']=1 et ça devrait le faire.

Reprenons:
CODE

_menu(int mode)
{
 if ($mode=1) //menu connecté
 else //menu anonyme
}

(...)

if ($_SESSION['connection']=1) _menu(1);
else _menu(2);


- transporté le membre vers une autre page (avec les var. de sessions)

Transporter le membre ailleurs c'est une bête redirection (tu peux le faire en javascript ou en php, c'est tout pareil). Tu ne dois pas t'occuper des variables de session, c'est ton serveur qui s'en charge.

- les jointures

Les jointures... je serais tenté de t'envoyer lire un bon bouquin, vu que le sujet est vaste. En très abrégé:

Joindre deux tables c'est prendre le cardinal de deux ensembles par correspondance entre deux (ou plus) clés.

Autrement dit, tu fais correspondre deux rows grace à une de leur données (tu mets des pommes avec des pommes smile.gif).

Ca s'écrit (plus ou moins) comme ça:
CODE
SELECT * from table_1 INNER JOIN table_2 ON table_1.champ1 = table_2.champ1


Maintenant direction le bouquin smile.gif Il existe plein de type de join (inner, outer, left, right, et leur combinaisons).

Arck.

PS: attention, je t'écrit ça en pseudo-code, tu dois travailler tout ça hein wink.gif

Ecrit par: Kévin Dimanche 20 Février 2005 à 18h39
Je peux t'expliquer rapidement mais comme à dit Nono le tuto du site est pas mal.

en bref

QUOTE


Déjas pour commencer une session, il te faut cette fonction :
session_start();

Tu peux enregistrer des données du membres dans la session qui seront acceciblent partout du moment que tu mets bien la fonction ci dessus.
Pour enregistrer utilise :

$_SESSION['nomdumenbre'] = "toto";

C'est pas très conpliqué, mais faut comprendre au départ.
Dernière chose si tu as besoin de déconnecter l'utilisateur, utilises :

$session_unset(); => qui supprime toutes les données
$session_destroy() => qui supprime la session

Voila j'espère avoir été clair, sinon repportes toi aux aides du site.


Ecrit par: Salty Dimanche 20 Février 2005 à 23h54
Merci pour vos réponses je vais m'inspirer de la source et de ce qu'a dit Arckam.

Encore merci a vous wink.gif

EDIT : J'en profite pour demander si quelqu'un ayant un peu de temps libre pourrait être mon beta-testeur-correcteur ( tongue.gif ).
J'ai besoin de quelqu'un ayant une formation supérieure a la mienne en PéHachePé pour me corriger et tester tout..

Merci de me contacter sur msn : ptit_biskuit@hotmail.com (vous moquez pas de l'adresse bye2.gif )

Ou via ce forum, mais ce sera un peu compliqué pour communiquer sad.gif

Miki d'avance ^^'

Ecrit par: Salty Lundi 21 Février 2005 à 00h24
QUOTE (Arckam @ 20 Feb 2005, 14:00 )
CODE
SELECT * from table_1 INNER JOIN table_2 ON table_1.champ1 = table_2.champ1

Question :

Si champ1 et champ2 portent le meme nom.. c'est grave doc ?

Voila ma requete :

CODE
SELECT * FROM membre m LEFT JOIN groupe g ON (m.id=g.id)


m.id=g.id

Ca apportera un probleme ??


Ecrit par: zumba Lundi 21 Février 2005 à 10h06
quand je vois un titre comme ca, j'ai une envie irrepressible de faire une blague pourrie, mais je résisterai. Oui, je résisterai.


Ecrit par: Arckam Lundi 21 Février 2005 à 11h11
Non Salty, aucun, puisque tu précises quelle table contient ce champ (m.id).

Au passage, je parlais plus haut du cardinal de deux ensembles. Il fallait bien sur lire l'union de deux ensembles wink.gif

Arck.

Ecrit par: Cedric Lundi 21 Février 2005 à 11h49
QUOTE (Salty @ 20 Feb 2005, 23:24 )
Voila ma requete :

CODE
SELECT * FROM membre m LEFT JOIN groupe g ON (m.id=g.id)


m.id=g.id

Ca apportera un probleme ??

Ca marchera, mais ce n'est pas trop propre... il vaut mieux "nommer" les champs que tu veux recuperer au lieu de mettre un "*".

Ecrit par: chacal3 Lundi 21 Février 2005 à 19h31
Je vous trouve compliqué pour démarrer une détermier une session...

Démarrage d'une session :

CODE
If (URL/COOKIES condition blablabla) {$toto=session_start() blablabla}:


La on a une session ou non selon si le gars est enregistré (url ou cookies) ou pas.
Puis :

CODE
If (isset($toto)){blabla connecté}
   else {blabla non-connecté}


Il me semble que j'ai pas dis de connerie (ça m'arrive souvent) et que ça marche au poil et que c'est hyper simple.

Ecrit par: Salty Lundi 21 Février 2005 à 20h07
Décidemment les sessions et moi c'est une longue histoire d'amour .. un amour brisé.. sad.gif

J'ai beau tout essayé ce que vous m'avez dit mais rien a faire.. crybaby.gif

J'ai décidé d'abdiquer sur cette partie la et de me concentrer sur le reste du jeu.. j'ai passé une annonce pour savoir si quelqu'un serait interessé de me coder juste la partie inscription/login..

Merci a tous pour vos réponses prie.gif

Ecrit par: chacal3 Lundi 21 Février 2005 à 20h22
QUOTE (Salty @ 21 Feb 2005, 19:07 )
Décidemment les sessions et moi c'est une longue histoire d'amour .. un amour brisé.. sad.gif

J'ai beau tout essayé ce que vous m'avez dit mais rien a faire.. crybaby.gif

J'ai décidé d'abdiquer sur cette partie la et de me concentrer sur le reste du jeu.. j'ai passé une annonce pour savoir si quelqu'un serait interessé de me coder juste la partie inscription/login..

Merci a tous pour vos réponses prie.gif

Teste ce code dans une page à part :

CODE
<?
$toto=session_start();
if ($toto){echo "La session marche";} else echo "La session ne marche pas !";
?>


Si ça marche, tu es déjà bien parti pour la suite.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)