Page 1 sur 2

Une page unique à chaque membre

Posté : 10 oct. 2007, 15:00
par Volkow
Salut à tous!!

Me revoilà avec encore une fois un problème!

En ce moment je suis entrain de faire un p'tit jeu PHP où l'on doit contrôler sa flotte de vaisseaux pour se battre contre d'autres joueurs.

Seulement voilà, j'ai un problème!

J'essaye de faire une zone de login où les membres rentreront leurs identifiants qu'ils ont enregistrés à l'inscription.

Et lorsqu'ils se log, j'aimerais qu'il puisse accéder à leur compte.

De plus, chaque membre à un compte unique, c'est à dire qu'il peut être le seul à y accéder...

J'espère que vous avez un peu compris ce que je recherche, merci.

Volkow.

Posté : 10 oct. 2007, 15:15
par Berzemus
ben, des sessions avec une base de données derrière.. sans doute.

Je vois pas trop ou est le problème.. tu recherches une solution toute faite ?

Posté : 10 oct. 2007, 15:16
par heddicmi
Si tu veux, va déjà te promener sur des tutos expliquant le principe et les bases, comme celui-ci : http://www.phpdebutant.org/article47.php

Posté : 10 oct. 2007, 15:20
par Volkow
Bah le truc c'est que je sais pas trop comment faire avec les sessions.

En fait je ne vois pas comment restreindre l'accès à une page (le compte d'un membre) à une seule personne (le membre à qui appartient le compte où il pourra voir ses infos).

S'il existe des solutions toutes faites, je suis preneur, en attendant que j'étudie le tuto.

Posté : 10 oct. 2007, 15:25
par heddicmi
Ce que tu restreins, ce n'est pas la page, mais le contenu de la page.

La page sera la même pour tous, mais les informations contenues seront recupérées suivant la réussite de l'identification. Identification qui te donneras l'identité de la personne.

Posté : 10 oct. 2007, 15:37
par Volkow
Ah ok!!

Et je fais comment pour faire ça?

C'est bien ce que je me disais mais comment le mettre en place?

En fait, il y aurait une seule page compte.php mais le contenu serait différent selon le login et le mot de passe entrés dans le formulaire de login, c'est ça?

Posté : 10 oct. 2007, 15:49
par heddicmi
Je t'invite à consulter le lien transmis plus haut ou à en trouver d'autre. On ne pourras pas te dire tout ce que tu dois faire. Mais on pourra te guider dans les erreurs et problèmes que tu obtiendras.

Posté : 10 oct. 2007, 16:28
par Volkow
Bon, j'ai essayé de faire quelque chose, mais j'ai un problème.

Voici les codes des pages concernées:


La page de login

Code : Tout sélectionner

<form action="login1.php" method='post'> <table align="center" border="0"> <tr> <td>Login :</td> <td><input type="text" name="login" maxlength="250"></td> </tr> <tr> <td>Password</td> <td><input type="password"name="pass" maxlength="10"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="log in"></td> </tr> </table> </form>

Le script de vérification
<?
// on se connecte à MySQL
$db = mysql_connect('localhost', '***, '***');

// on sélectionne la base
mysql_select_db('vkxrpg',$db);

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select pwd from tbl_user where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);

  if($data['pwd'] != $pass) {
    echo '<p>Mauvais login / password. Merci de recommencer</p>';
    include('login.htm'); // On inclut le formulaire d'identification
    exit;
  }
  else {
    session_start();
    $_SESSION['login'] = $login;
    
    echo 'Vous etes bien logué';
	echo '<p><a href="http://www.volkteam.powa.fr/aprpg/mep/moncompte.php">Accéder à votre compte</a></p>';
    // ici vous pouvez afficher un lien pour renvoyer
    // vers la page d'accueil de votre espace membres
  }   
}
else {
  echo '<p>Vous avez oublié de remplir un champ.</p>';
   include('login.htm'); // On inclut le formulaire d'identification
   exit;
}


?>

La page du membre
<?
session_start();


$login = $_SESSION['login'];

if($login /= 'Volkow') 

{
  echo 'Vous n\'êtes pas autorisé à acceder à cette zone';
  include('login.htm');
  exit;
}

?>

<p>Voici votre compte...</p>
(en fait chaque membre aura une page à lui tout seul, ex.: le membre s'appelle Volkow, il aura comme page Volkow.php; et en fait dans le code précédent qui se trouve sur la page Volkow.php, je vérifie si le pseudo qui a été envoyé par login.htm et enregistré dans la session, correspond bien à la variable $login qui est égale à 'Volkow'.)

Mais malgré cela, il me renvois toujours à la page de login, comme si le pseudo de session n'était pas égal à 'Volkow', alors que je me suis logué avec un pseudo de session égal à 'Volkow'...

Posté : 10 oct. 2007, 16:47
par heddicmi
C'est quoi le "/=" dans le if de ta page du membre ?

(Je pose la question, au cas où, pour pas me retrouver comme un couillon, mais je n'ai jamais vu ça... Tu es sur que tu ne voulais pas plutôt mettre "!=" ?)

Posté : 10 oct. 2007, 16:50
par Volkow
Rectification, je me suis trompé, c'est un != que je voulais mettre (trop l'habitude des forums de maths avec le /= pour différent de... ^^)

Bon j'ai rectifié quelques trucs et maintenant ça marche!

Mon soucis maintenant c'est de n'avoir qu'une seule page moncompte.php pour tous les membres mais que celle-ci s'affiche de façon différente suivant le membre.

:roll:

Posté : 10 oct. 2007, 16:54
par heddicmi
Généralement dans les jeux, les pages des utilisateurs sont toujours similaires pour le gros des informations. Ceux-ci évoluent dans le même monde et sur un point d'égalité, donc ça parait normal d'avoir la mêem page... non ?

Que penses-tu quand tu dis "s'affiche de façon différente" ?

Posté : 10 oct. 2007, 17:39
par Volkow
Bah en fait je pensais faire une page unique compte.php mais dont les informations affichées (nombre de ressources dispos, nombre de vaisseaux, profil du joueur ,...) s'affiche en fonction de l'utilisateur.

Posté : 10 oct. 2007, 17:45
par heddicmi
Oui, il n'y a donc aucun problème. Le but, ce sera donc pour toi de créer une page standard. Dans cette page, tu affiches les données de l'utilisateur que tu auras stocké (à priori) dans ta base de données.

Posté : 10 oct. 2007, 18:02
par Volkow
Voilà, tout à fait.

Et ça, je ne vois pas comment faire... :/

Posté : 10 oct. 2007, 18:19
par Tracker
Tu es bizarre comme gars, tu commences ton post avec «En ce moment je suis entrain de faire un p'tit jeu PHP où l'on doit contrôler sa flotte de vaisseaux pour se battre contre d'autres joueurs.», je me dis beau projet...

Mais ensuite tu casses tout en disant que tu n'arrives pas à faire une page php pour faire un "select" ??!!

Je veux pas sembler «méchant», mais à mon avis tu ferais mieux de commencer par lire un bouquin d'initiation php/sql, ou des cours en ligne. Je veux bien t'aider à résoudre les problèmes que peux rencontrer (comme d'autres d'ailleurs), mais développer un jeu de vaisseaux intergalactiques pour toi ça me branche pas des masses...

Alors, bon courage à toi pour tes lectures, et si tu as des problèmes n'hésite pas, mais juste si c'est des problèmes "code / archi"...

a+