PHP - session multi utilisateur et des privilèges d'administrateur
Quelqu'un peut m'aider?
Je suis encore novice dans l'utilisation de la plupart des php de trucs ici. J'ai plutôt un problème avec la création de plusieurs utilisateurs à l'aide de session.
Ce que je veux faire, c'est ceci. Un compte exclusif de l'admin et un compte uniquement pour les utilisateurs normaux.
Des privilèges d'administrateur sera en mesure d'accéder à des pages pour les administrateurs seulement, tandis que les utilisateurs normaux qui se connecte, sera en mesure d'accéder à des pages destiné aux utilisateurs uniquement.
Jusqu'à présent Ive créé un seul utilisateur des informations d'identification. Qui est pour les admins. Im vraiment confus comment puis-je ajouter de la non-admin afin d'accéder à des pages seulement pour eux.
Quelqu'un peut m'aider avec ce code?
C'est la page d'accueil
<?php
//Initialize Session
session_start();
error_reporting(E_ALL ^ E_NOTICE);
//$name = $_SESSION['username'];
if(isset($_SESSION['username']))
{
header('Location: index_admin.php');
}
?>
C'est l'admin de la page
<?php
//Inialize session
session_start();
//Check, if username session is NOT set then this page will jump to login page
if (!isset($_SESSION['username']))
{
header('Location: index.php');
}
?>
C'est le formulaire de connexion
<form action="login.php" method="post">
<input type="text" name="uname" placeholder="USERNAME . . . " autofocus/>
<br/>
<input type="password" name="pword" placeholder="PASSWORD . . . " />
<br/>
<center><input type="submit" name="submit" value="LOGIN" /><button type="reset" value="Reset" />RESET</button></center>
</form>
C'est le login.php
<?php
session_start();
include("config.php");
$login = mysql_query("SELECT * FROM users WHERE (username = '" . mysql_real_escape_string($_POST['uname']) . "') and (password = '" . mysql_real_escape_string($_POST['pword']) . "')");
//Check username and password match
if (mysql_num_rows($login) == 1)
{
//Set username session variable
$_SESSION['username'] = $_POST['uname'];
//Jump to secured page
header('Location: index_admin.php');
}
else
{
//Jump to login page
header('Location: index.php');
}
?>
C'est la base de données
user_tbl
id = 1
username = admin
password = 12345
Merci d'avance pour l'aide.
OriginalL'auteur reggel | 2014-02-27
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Siddharth Nagar
Il semble de votre question que vous allez utiliser la même page de connexion pour les utilisateurs administratifs et les utilisateurs non-administrateurs. C'est le cas pour qui je vais offrir une réponse.
Dans le processus de validation d'un particulier à un nom d'utilisateur et le mot de passe, vous devez déterminer le niveau de privilège de l'utilisateur a été accordée. Vous pourriez avoir une colonne appelée "privilège" dans votre table utilisateur.
usr_tbl doit ressembler à quelque chose comme ceci:
Lors de la connexion, vous l lire la usr_table et tirez que l'utilisateur de la valeur de la colonne et de l'enregistrer dans une variable de session à quelque chose comme ceci:
Ensuite, vous pouvez faire de la logique de ce genre pour décider de ce que votre utilisateur doit voir, et ce qu'elle devrait être en mesure de le faire.
Plus tard, les pages vues, si votre session de la logique de fonctionnement est correct, le
$_SESSION['privilege']
variable doit continuer à être disponibles.p.s.
mysql_
Api pour le code de sécurité? Vraiment?OriginalL'auteur O. Jones
idéalement vous avez besoin pour développer sur la structure de données servant de ce code: mettre en place une table d'utilisateurs et une table des groupes; les groupes implique des droits d'accès. Lorsque vous envoyez la page de connexion, consultez la base de données pour le nom d'utilisateur, puis:-
1) Si pas de match, le retour à un "accès refusé" écran
2) si match, xref avec des groupes de la table pour déterminer le niveau de privilèges de cet utilisateur. Puis:-
2a) si d'administration, de retour à l'admin de l'écran, réglage de la session de vars pour stocker cette décision.
2b) Sinon, retour à la normale de l'utilisateur de l'écran, idem paramètre de session vars.
Votre problème de base est que lors de la saisie de "la" page d'accueil, vous êtes tout simplement de vérifier si le nom d'utilisateur est défini, puis prendre l'utilisateur à l'écran admin. Ce qui est faux. Essayez de répartir votre logique en plus petites étapes simples, et d'envisager le "if-else" de la logique en termes humains. "Que dois-je passer?", puis "de Quoi ai-je besoin de savoir pour savoir comment faire cela?".
Bonne chance!
OriginalL'auteur user3360243