Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

session membre

Session membre


Session membre     Posté le 23/01/2005 à 00:00
Killkim
Membre
Killkim
37 posts
Inscrit le : 24/01/2004
Bonjour voila mon menu c'est en pseudo frame donc pas de <html><body>...
voila je voudrais créer des sessions membres mais je ne sais pas trop comment faire, pour verifier que le pseudo et le mot de passe entrés soit dans la table membre_tbl, et qu'il se corresponde (que le mot de passe de l'id 1 aille avec le login du même id)
Je pense qu'il faudrait egalement un session_start() pour sauvegarder les infos
de plus je voudrais que la page dans laquelle on se trouve lorsque l'on entre le login et mot de passe soit la même après validation(ex: si l'on valide le mot de passe et login sur la page index.php?page="***" alors que l'on se retrouve sur cette même page une fois que la session membre est ouverte.
j'avais penser à la mettre sous la forme d'un variable ($page) je ne sais pas trop est ce que vous pourriez m'aidez

<?php
$login = $_POST['login'];
$mdp = $_POST['mdp'];
?>
<div class="sous_menu">
<h2>1er menu</h2><br/>
<ul>
<li><a href="index.php?page="lien1">Lien1</a></li>
<li><a href="index.php?page="lien2">Lien2</a></li>
<li><a href="index.php?page="lien3">Lien3</a></li>
</ul>
<h2>2eme menu</h2><br/>
<ul>
<li><a href="index.php?page="lien4">Lien4</a></li>
<li><a href="index.php?page="lien5">Lien5</a></li>
<li><a href="index.php?page="lien6">Lien6</a></li>
</ul>
<h2>Membres</h2><br/>
<?php
if(empty("$login") OR empty("$mdp")
{
echo 'Vous devez entrer votre mot de passe et votre login correctement';

if(isset("$login") OR isset("$mdp")
{
?>
<form method="post" action="index.php?page="$page">
<p>
Votre login:<br/>
<input type="text" name="login" size="12"><br/>
Votre mot de passe:
<input type="password" name="mdp" size="12">
</p>
<?php
}
}
$db = mysql_connect('localhost', 'bksc', 'wjij0o3v');

mysql_select_db('bksc',$db);

$sql = 'SELECT id,login,mot_de_passe FROM membre_tbl';

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

//on regarde si le mot de passe est bon

// on ferme la connexion à mysql
mysql_close();
?>
<h2>Partenaires</h2>

</div>


________________________
KillKim
 
Réponse à : Session membre     Posté le 23/01/2005 à 01:08
Killkim
Membre
Avatar
37 posts
Inscrit le : 24/01/2004
arghhhhhh mon code est coupé

_______________________
KillKim
 
Réponse à : Session membre     Posté le 23/01/2005 à 01:09
Killkim
Membre
Avatar
37 posts
Inscrit le : 24/01/2004
SKy, comment ça se fait que mon code soit bouffé??????????

_______________________
KillKim
 
Réponse à : Session membre     Posté le 23/01/2005 à 09:51
sky
Administrateur
Avatar
Site perso
4188 posts
Inscrit le : 13/08/2003
Je sais pas smiley

1 : mettre un session_start() en haut de ta page principal. (index.php surement)
2 : Il faut séparé menu et connexion et les mettre sur DEUX page distincte.

OU, tu fais la vérification en haut de la page index.php. Faut pas essaye de le faire en plein milieux de page.

Ton menu :
<div class="sous_menu">
    <h2>1er menu</h2><br/>
        <ul>
            <li><a href="index.php?page="lien1">Lien1</a></li>
            <li><a href="index.php?page="lien2">Lien2</a></li>
            <li><a href="index.php?page="lien3">Lien3</a></li>
        </ul>
    <h2>2eme menu</h2><br/>
        <ul>
            <li><a href="index.php?page="lien4">Lien4</a></li>
            <li><a href="index.php?page="lien5">Lien5</a></li>
            <li><a href="index.php?page="lien6">Lien6</a></li>
        </ul>
        
<?php
if($_SESSION[login] AND $_SESSION[mdp]){
  
?>
    <h2>Membres</h2>
        <form method="post" action="/action/connecion.php">       
    <p>
            Votre login:<br/>
        <input type="text" name="login" size="12"><br/>
            Votre mot de passe:
        <input type="password" name="mdp" size="12">
    </p>
  <?php
}
?>

<h2>Partenaires</h2>
   
</div>




_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Session membre     Posté le 23/01/2005 à 10:05
Killkim
Membre
Avatar
37 posts
Inscrit le : 24/01/2004
Merci mais pour que la page reste la même comment je fais puisque je suppose que si je mets
<form method="post" action="index.php>
Je suppose que cela retournerait à la page d'accueil or je voudrais que si l'on est sur la page news par exemple que la page soit rechargé cela donnerait
<form method="post" action="index.php?page="$page">
mais comment "enregistrer" la page sous la variante $page??

_______________________
KillKim
 
Réponse à : Session membre     Posté le 23/01/2005 à 10:11
sky
Administrateur
Avatar
Site perso
4188 posts
Inscrit le : 13/08/2003
J'ai oublier de le dire lol smiley
Si tu laisse juste vide :
<form method="post" action="">

Il reviendra sur la meme page.
Sinon, si tu vraiment svoir comment faire en php, utilise $PHP_SELF;

Sky

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Session membre     Posté le 23/01/2005 à 10:19
Killkim
Membre
Avatar
37 posts
Inscrit le : 24/01/2004
j'ai trouvé ça sur les sessions dans phpdebutant parce que je ne me souvenais plus trop mais ce qui est bizarre c'est qu'il n'y a même pas de connection à la bdd est ce normal??

Code de la page verifLogin.php
<?php
// On démarre la session
session_start();
$loginOK false;  // cf Astuce

// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {

  
extract($_POST);  // je vous renvoie à la doc de cette fonction

  // On va chercher le mot de passe afférent à ce login
  
$sql "SELECT pseudo, age, sexe, ville, mdp FROM user WHERE login = '".addslashes($login)."'";
  
$req mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
 
  
// On vérifie que l'utilisateur existe bien
  
if (mysql_num_rows($req) > 0) {
     
$data mysql_fetch_assoc($req);
   
    
// On vérifie que son mot de passe est correct
    
if ($password == $data['mdp']) {
      
$loginOK true;
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
  
$_SESSION['pseudo'] = $data['pseudo'];
  
$_SESSION['age'] = $data['age'];
     
$_SESSION['sexe'] = $data['sexe'];
  
$_SESSION['ville'] = $data['ville'];
}
else {
  echo 
'Une erreur est survenue, veuillez réessayer !';
}
?>


_______________________
KillKim
 
Réponse à : Session membre     Posté le 23/01/2005 à 10:22
sky
Administrateur
Avatar
Site perso
4188 posts
Inscrit le : 13/08/2003
Je pense qu'ils estime que tu va te connecté à la base de ton propre chef smiley

la fonction extract(), c'est pas du php 5?
Je connais pas.

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Session membre     Posté le 23/01/2005 à 13:22
myXtrem
Membre
Avatar
Site perso
37 posts
Inscrit le : 23/01/2005
salut j'ai vu ce que tu avais dis a killkim mais si on met la verif sur une page comment peut on faire si l'on veut que cela revienne à la même page?

Comme chez toi par ex le petit truc pour se loguer à gauche sur l'accueil on change pas de page quand on se log

_______________________
myXtrem
 
Réponse à : Session membre     Posté le 23/01/2005 à 14:20
Dayd
Moderateur
Avatar
Site perso
140 posts
Inscrit le : 21/08/2003
moi je veux juste dire que j'aime bien ton avatar, lol smiley

_______________________
Alors moi c'est pas celle morte de rire.
 
Réponse à : Session membre     Posté le 23/01/2005 à 15:42
myXtrem
Membre
Avatar
Site perso
37 posts
Inscrit le : 23/01/2005
lol merci pour la photo

_______________________
myXtrem
 
Réponse à : Session membre     Posté le 23/01/2005 à 19:15
Dayd
Moderateur
Avatar
Site perso
140 posts
Inscrit le : 21/08/2003
Pour revenir a la meme page tu peux rajouter un champ:

<input type="hidden" name="dou" value="<? print $_SERVER["REQUEST_URI"]; ?>">

et recuperer ta variable $dou dans la page de verif pour le retour...

Mais avant tout ca faut que tu comprennes bien ton code parceque la ca va pas du tout smiley ca veut rien dire tout ca smiley

_______________________
Alors moi c'est pas celle morte de rire.
 
Réponse à : Session membre     Posté le 24/01/2005 à 12:49
foluia
Membre
Avatar
Site perso
342 posts
Inscrit le : 18/12/2004
voilà, il est expliqué ici comment se servire des variables super globales et comment faire des cessions... maintenant, je ne peux pas en dire beaucoup plus, ca m'a semblé détaillé et je suis moi meme en train d'apprendre. smiley
http://siteduzero.com/php/superglobales.php

_______________________
Je vous dois un grand merci pour tout ce que j ai apris et pour le temps que vous passez pour moi.
 
Réponse à : Session membre     Posté le 24/01/2005 à 17:54
sky
Administrateur
Avatar
Site perso
4188 posts
Inscrit le : 13/08/2003
Hum, les variable "super global" comme tu les appellent sont juste des variables "système".

En faite, le code que tu a ecrit dans ton 1er post est incompréensible.

Si tu veut faire un espace membre, voici les lignes de base :

Les pages "membres" doivent avoir une vérifiation.
La vérification peut ce faire avec les sessions. C'est la méthode que je trouve la plus facile.

Donc, si les variables sessions n'existe pas, c'est que le type n'est pas connecté.

S'il n'est pas connecté on refuse l'accé à la page en lui proposant un formulaire.

Le formulaire devrai pointé ver une page indépendante.

On vérifie login et mot de passe, si c'est ok, on défini les session que l'on veut. Une fois les vérif et session céer, on redirige vers la meme page.

Voilà l'idée en gros.
On ne peut pas tout faire sur une seul page, sans vérifier si on $POST ou non...

PS : $_POST, $_GET, se sont des variables dite super global, mais, il me semble que ce sont des variables système. Elle sont inhérente au système. Qu'elle soit super global, c'est juste une de leurs attribut. Je crois que c'est un abus de language.

Dans une fonction, classe, on peut utiliser les variable systeme car elle sont super global, mais, on peut tres bien créer une telle variable.

Sky

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net