Page 1 sur 1
Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 10:23
par ISoon
Bonjour,
Je créer un espace membre avec une administration.
J'ai une colonne "id_rank" dans la table "users"
id_rank : 1 : Membres par défaut.
id_rank : 2 : Modérateur
Et j'aimerais savoir que si le membre a l'id_rank 2 on lui affiche un bouton administration
Merci de votre aide
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 10:33
par juliette
Salut,
je pense que cet id est en session ?
<?php
$_SESSION['rank'] = "2";
if(isset($_SESSION['rank']) && $_SESSION['rank'] === '2'){
echo 'Le bouton';
}else{
echo 'Pas de bouton';
}
?>
Un truc du genre devrait t'aider !
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 10:38
par ISoon
Salut,
je pense que cet id est en session ?
<?php
$_SESSION['rank'] = "2";
if(isset($_SESSION['rank']) && $_SESSION['rank'] === '2'){
echo 'Le bouton';
}else{
echo 'Pas de bouton';
}
?>
Un truc du genre devrait t'aider !
J'ai mis votre code, j'ai juste remplaçer "rank" par "id_rank" le bouton s'affiche mais quand je vais sur un compte qui est rank 1 ba le bouton administration s'affiche quand meme :/
Cordialement
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 11:22
par juliette
AS-tu bien une session en cours ?
N'ai pas honte, fait moi voir tous le code qui correspond a tes recherches !
<?php
// La variable $_SESSION['rank'] ci-dessous doit etre initialisé grace a ta bdd !
// Moi je la crée comme ça pour te montrer mais elle doit absolument etre rempli avec les infos du membre connecté !
$_SESSION['rank'] = "2";
if (isset($_SESSION['rank']) && $_SESSION['rank'] === '2') {
echo 'Le bouton';
} else {
echo 'Pas de bouton';
}
?>
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 11:32
par ISoon
AS-tu bien une session en cours ?
N'ai pas honte, fait moi voir tous le code qui correspond a tes recherches !
<?php
// La variable $_SESSION['rank'] ci-dessous doit etre initialisé grace a ta bdd !
// Moi je la crée comme ça pour te montrer mais elle doit absolument etre rempli avec les infos du membre connecté !
$_SESSION['rank'] = "2";
if (isset($_SESSION['rank']) && $_SESSION['rank'] === '2') {
echo 'Le bouton';
} else {
echo 'Pas de bouton';
}
?>
<?php
//S'il est connecter afficher les boutons
if(isset($_SESSION['username']))
{
?>
<?php
$_SESSION['id_rank'] = "2";
if(isset($_SESSION['id_rank']) && $_SESSION['id_rank'] === '2'){
echo '';
}else{
echo 'Pas de bouton';
}
?>
<?php
}
else
{
//Inscription/Connexion
?>
<a href="sign_up.php">Inscription</a>
<a href="connexion.php">Se connecter</a>
<?php
}
?>
Tiens voilà le code
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 11:37
par juliette
Ok, ton soucis est donc d'avoir recopier mon code $_SESSION['rank'] est toujours === 2 donc le bouton s'affiche...
Montre moi le code qui crée $_SESSION['username'];
$_SESSION['username] est créer au moment ou ton membre se connecte, tu dois faire pareil pour $_SESSION['id_rank'] et cette ligne n'existe plus $_SESSION['rank'] = "2";
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 11:46
par ISoon
Ok, ton soucis est donc d'avoir recopier mon code $_SESSION['rank'] est toujours === 2 donc le bouton s'affiche...
Montre moi le code qui crée $_SESSION['username'];
$_SESSION['username] est créer au moment ou ton membre se connecte, tu dois faire pareil pour $_SESSION['id_rank'] et cette ligne n'existe plus $_SESSION['rank'] = "2";
<?php
//On demarre les sessions
session_start();
mysql_connect('', '', '');
mysql_select_db('');
?>
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 11:48
par juliette
Non, c'est pas ça ou tu en enlève de trop, je veux voire le fichier php qui est après le formulaire de connexion, celui qui connecte le membre au site...
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 12:30
par ISoon
Non, c'est pas ça ou tu en enlève de trop, je veux voire le fichier php qui est après le formulaire de connexion, celui qui connecte le membre au site...
Ah d'accord x)
<?php
//Si lutilisateur est connecte, on le deconecte
if(isset($_SESSION['username']))
{
//On le deconecte en supprimant simplement les sessions username et userid
unset($_SESSION['username'], $_SESSION['userid']);
?>
<div class="message">Vous avez bien été déconnecté.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
}
else
{
$ousername = '';
//On verifie si le formulaire a ete envoye
if(isset($_POST['username'], $_POST['password']))
{
//On echappe les variables pour pouvoir les mettre dans des requetes SQL
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
//On recupere le mot de passe de lutilisateur
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
//On le compare a celui quil a entre et on verifie si le membre existe
if($dn['password']==$password and mysql_num_rows($req)>0)
{
//Si le mot de passe es bon, on ne vas pas afficher le formulaire
$form = false;
//On enregistre son pseudo dans la session username et son identifiant dans la session userid
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
?>
<div class="message">Vous avez bien été connecté. Vous pouvez accéder à votre espace membre.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
}
else
{
//Sinon, on indique que la combinaison nest pas bonne
$form = true;
$message = 'La combinaison que vous avez entré n\'est pas bonne.';
}
}
else
{
$form = true;
}
if($form)
{
//On affiche un message sil y a lieu
if(isset($message))
{
echo '<div class="message">'.$message.'</div>';
}
//On affiche le formulaire
?>
<div class="content">
<form action="connexion.php" method="post">
Veuillez entrer vos identifiants pour vous connecter:<br />
<div class="center">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<input type="submit" value="Connection" />
</div>
</form>
</div>
<?php
}
}
?>
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 12:41
par juliette
Ok, relis, j'ai mis des commentaire:
<?php
//Si lutilisateur est connecte, on le deconecte
if (isset($_SESSION['username'])) {
//On le deconecte en supprimant simplement les sessions username et userid
unset($_SESSION['username'], $_SESSION['userid']);
?>
<div class="message">Vous avez bien été déconnecté.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
} else {
$ousername = '';
//On verifie si le formulaire a ete envoye
if (isset($_POST['username'], $_POST['password'])) {
//On echappe les variables pour pouvoir les mettre dans des requetes SQL
if (get_magic_quotes_gpc()) {
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
} else {
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
//On recupere le mot de passe de lutilisateur
/* * ***********************************************************
* Ici dans la requete tu dois aussi récupérer le rank
* ****************************************************************** */
$req = mysql_query('select password,id from users where username="' . $username . '"');
$dn = mysql_fetch_array($req);
//On le compare a celui quil a entre et on verifie si le membre existe
if ($dn['password'] == $password and mysql_num_rows($req) > 0) {
//Si le mot de passe es bon, on ne vas pas afficher le formulaire
$form = false;
//On enregistre son pseudo dans la session username et son identifiant dans la session userid
/* * ***************************************************
* Ici et maintenant que tu connais le status du rank
* Tu dois mettre cette infos en session
* ************************************************************** */
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
?>
<div class="message">Vous avez bien été connecté. Vous pouvez accéder à votre espace membre.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
} else {
//Sinon, on indique que la combinaison nest pas bonne
$form = true;
$message = 'La combinaison que vous avez entré n\'est pas bonne.';
}
} else {
$form = true;
}
if ($form) {
//On affiche un message sil y a lieu
if (isset($message)) {
echo '<div class="message">' . $message . '</div>';
}
//On affiche le formulaire
?>
<div class="content">
<form action="connexion.php" method="post">
Veuillez entrer vos identifiants pour vous connecter:<br />
<div class="center">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<input type="submit" value="Connection" />
</div>
</form>
</div>
<?php
}
}
?>
ensuite tu utilise mon code sans cette ligne: $_SESSION['rank'] = "2"; car on a pas besoin de lui donner la valeur de 2 vu que cette valeur est initialisé au moment de la connexion !!!
Comprend tu ?
Re: Afficher un bouton si le membre à un rank défini
Posté : 21 sept. 2013, 13:24
par ISoon
Ok, relis, j'ai mis des commentaire:
<?php
//Si lutilisateur est connecte, on le deconecte
if (isset($_SESSION['username'])) {
//On le deconecte en supprimant simplement les sessions username et userid
unset($_SESSION['username'], $_SESSION['userid']);
?>
<div class="message">Vous avez bien été déconnecté.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
} else {
$ousername = '';
//On verifie si le formulaire a ete envoye
if (isset($_POST['username'], $_POST['password'])) {
//On echappe les variables pour pouvoir les mettre dans des requetes SQL
if (get_magic_quotes_gpc()) {
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
} else {
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
//On recupere le mot de passe de lutilisateur
/* * ***********************************************************
* Ici dans la requete tu dois aussi récupérer le rank
* ****************************************************************** */
$req = mysql_query('select password,id from users where username="' . $username . '"');
$dn = mysql_fetch_array($req);
//On le compare a celui quil a entre et on verifie si le membre existe
if ($dn['password'] == $password and mysql_num_rows($req) > 0) {
//Si le mot de passe es bon, on ne vas pas afficher le formulaire
$form = false;
//On enregistre son pseudo dans la session username et son identifiant dans la session userid
/* * ***************************************************
* Ici et maintenant que tu connais le status du rank
* Tu dois mettre cette infos en session
* ************************************************************** */
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
?>
<div class="message">Vous avez bien été connecté. Vous pouvez accéder à votre espace membre.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
} else {
//Sinon, on indique que la combinaison nest pas bonne
$form = true;
$message = 'La combinaison que vous avez entré n\'est pas bonne.';
}
} else {
$form = true;
}
if ($form) {
//On affiche un message sil y a lieu
if (isset($message)) {
echo '<div class="message">' . $message . '</div>';
}
//On affiche le formulaire
?>
<div class="content">
<form action="connexion.php" method="post">
Veuillez entrer vos identifiants pour vous connecter:<br />
<div class="center">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<input type="submit" value="Connection" />
</div>
</form>
</div>
<?php
}
}
?>
ensuite tu utilise mon code sans cette ligne: $_SESSION['rank'] = "2"; car on a pas besoin de lui donner la valeur de 2 vu que cette valeur est initialisé au moment de la connexion !!!
Comprend tu ?
Oui j'ai compris je test
