[Résolu]Partie administration

Eléphant du PHP | 243 Messages

26 nov. 2011, 23:00

Bonsoir à tous,

Je suis codeur de mon site http://srylecraft.fr et après avoir créer un espace membre, je voudrais créer la partie administratif du site.
Je vous explique mon problème.
J'ai une base de donné avec dedans, le rang des personnes. Le rang est de 0 pour normal et 1 pour Administrateur. Je voudrais mettre une restriction sur la page administration.php que si l'utilisateur est au rang 0, il est redirigé vers la page index.php, alors que s'il est est au rang 1, il à accès à cette page.
Je pensais réutiliser mon système de session_start();
Voici le début du code que j'ai commencé à effectuer.
<?php
session_start();
if (!isset($_SESSION['login'])) {
	header ('Location: index.php');
	exit();
}
?>

<?php


$base = mysql_connect ('**.**.***.***', 'rweiawag_users', '***********');
		mysql_select_db ('rweiawag_users', $base);


    $sql = 'SELECT rang FROM users WHERE login="'.mysql_escape_string($_SESSION['login']).'"';
	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

	
	//$data['rang'] = $rang 
	while($data = mysql_fetch_assoc($req)) 
	{
	if ($_SESSION['rang'] == 0)
	{
	header ('Location: index.php');
	exit();
	}

	}
	mysql_close(); 

?>
Ce code ne marche pas, car même une personne au rang 1 est redirigé vers index.php

Merci à vous d'avance pour l'aide que vous allez m'apporter.
Modifié en dernier par Ascla le 27 nov. 2011, 00:30, modifié 1 fois.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 nov. 2011, 00:05

salut,

Pas besoin de while tu ne doit récupérer qu'une seule info
sans parler du fait que tu n'exploite pas la valeur issue de la requête SQL.
$sql = 'SELECT rang FROM users WHERE login="'.mysql_escape_string($_SESSION['login']).'"';
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_assoc($req)
if ($data['rang'] === 0) header('Location: index.php');
         }
         mysql_close();
?>
@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 243 Messages

27 nov. 2011, 00:22

Bonsoir, tout d'abord, merci de ta réponse rapide, je ne pensais pas que tu allais me rédigez le code. Juste un problème, tu avais oublié un " ; " après " $data = mysql_fetch_assoc($req) ". Donc je l'ai corrigé.
Sous le If, tu as mis un " } ", et je voulais savoir pourquoi l'as-tu mis ?
Donc j'ai corrigé à ma façon
<?php


$base = mysql_connect ('**.**.***.***', 'rweiawag_users', '***********');
		mysql_select_db ('rweiawag_users', $base);

$sql = 'SELECT rang FROM users WHERE login="'.mysql_escape_string($_SESSION['login']).'"';
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_assoc($req);
if ($data['rang'] === 0) header('Location: index.php');

         mysql_close();
?>
Mais l'utilisateur, il peux toujours avoir accès à la page, qu'il soit rang 0 ou 1.

Merci de votre aide.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Eléphant du PHP | 243 Messages

27 nov. 2011, 00:29

J'ai résolue le problème. Tu as mis le signe === au lieu de ==.
Donc pour ceux qui ont le même problème que moi, voila la solution.

<?php


$base = mysql_connect ('**.**.***.***', 'rweiawag_users', '***********');
                mysql_select_db ('rweiawag_users', $base);

$sql = 'SELECT rang FROM users WHERE login="'.mysql_escape_string($_SESSION['login']).'"';
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_assoc($req);
if ($data['rang'] == 0) header('Location: index.php');

         mysql_close();
?>
Encore merci de ton aide, et bonne soirée.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 nov. 2011, 01:27

copier collé foireux :mrgreen:
Il en faut peu pour être heureux ......