Une page unique à chaque membre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Une page unique à chaque membre

par Volkow » 10 oct. 2007, 18:45

Effectivement, suis-je bête.

Avant je l'avais mis en début de code mais il y avait un espace.

Encore désolé si on s'est mal compris.

C'est juste que j'avais un peu du mal avec les sessions et que j'essayais de trouver la bonne méthode pour faire la page membre.

Maintenant j'ai compris et je vois comment faire.

Merci,

Volkow.

par Tracker » 10 oct. 2007, 18:41

Tu as déjà envoyé des caratères dans le flux de sortie.
Tu dois faire le session_start() tout au début de ton code, même avant tes include(...) ou require(...)
Prends garde également que tu n'aies pas d'espace ou de saut de ligne avant la balise d'ouverture <?php

Voilou

par Volkow » 10 oct. 2007, 18:33

Je crois que l'on s'est mal compris :lol: (et j'ai dû mal m'exprimer).

Pour le select c'est bon, j'ai compris la façon dont je devais m'y prendre, petite erreur de réflexion.

Enfin bref, passons.

J'ai un problème avec le session_start:

Il m'affiche cela à l'écran:

Code : Tout sélectionner

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/volkow/web/www/vkxrpg/banniere.php:8) in /home/volkow/web/www/vkxrpg/log_verif.php on line 31
.

Si quelqu'un sait d'où vient le problème, je suis preneur.
En attendant je vais chercher quelques infos sur l'utilisation des sessions.

par Tracker » 10 oct. 2007, 18:19

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+

par Volkow » 10 oct. 2007, 18:02

Voilà, tout à fait.

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

par heddicmi » 10 oct. 2007, 17:45

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.

par Volkow » 10 oct. 2007, 17:39

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.

par heddicmi » 10 oct. 2007, 16:54

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" ?

par Volkow » 10 oct. 2007, 16:50

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:

par heddicmi » 10 oct. 2007, 16:47

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 "!=" ?)

par Volkow » 10 oct. 2007, 16:28

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'...

par heddicmi » 10 oct. 2007, 15:49

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.

par Volkow » 10 oct. 2007, 15:37

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?

par heddicmi » 10 oct. 2007, 15:25

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.

par Volkow » 10 oct. 2007, 15:20

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.