正如标题所示,我有一个名为:table
表的内容:
id
first name
e-mail
password
role
,两个用户,一个值为role
:
N
和另一个值role
:
S
登录后,将所有用户定位到名为:
的页面reindirizza.php
登录页面:
<?php session_start(); ?>
<?php
$messaggio = "";
if (isset($_POST['submit'])) {
include 'FILE_DI_CONNESSIONE.php';
//REAL_ESCAPE_STRING ANTI STRINGA BUCA DB
$email = $VARIABILE_FILE_DI_CONNESSIONE->real_escape_string($_POST['email']);
$password = $VARIABILE_FILE_DI_CONNESSIONE->real_escape_string($_POST['password']);
$query = $VARIABILE_FILE_DI_CONNESSIONE->query("SELECT id, password FROM tabella WHERE email='$email'");
if ($query->num_rows > 0) {
$data = $query->fetch_array();
if (password_verify($password, $data['password'])) {
$_SESSION['NOME_SESSIONE'] = true;
//IMPLEMENTAZIONE SICUREZZA PER ACCESSO AI DATI SOLO SE LA SESSIONE DELLA LOGIN PAGE E' UGUALE ALLA PAGINA DOPO DEL LOGIN
?>
<script type="text/javascript">
window.location = "reindirizza.php";
</script>
<?php
}else
$messaggio = "Gentilmente inserisci correttamente la tua username e la tua password.";
}}
?>
<?php if ($messaggio != "") echo $messaggio . "<br><br>"; ?>
<form method="post" action="index.php">
<input class="form-control" name="email" type="email" placeholder="email..."><br>
<input class="form-control" minlength="5" name="password" type="password" placeholder="Password..."><br>
<input class="btn btn-primary" name="submit" type="submit" value="Log In"><br>
</form>
页面reindirizza.php,具有对用户具有role
N值的用户进行排序的任务,请转到页面n.php
。
如果它们的值为S,请转到页面s.php
reindirizza.php:
<?php
include 'FILE_DI_CONNESSIONE.php';
$query = "SELECT * FROM tabella";
$utente = mysqli_query($VARIABILE_FILE_DI_CONNESSIONE, $query);
if (!$query) {
die(mysqli_error($VARIABILE_FILE_DI_CONNESSIONE));
}
$controlla_utente = mysqli_num_rows($utente);
if($controlla_utente>0){
$dati_utente = mysqli_fetch_assoc($utente);
if ($dati_utente["role"] == 'N') {
header("Location: n.php");
}
elseif($dati_utente["role"] == 'S') {
header("Location: s.php");
}
}
?>
问题在于,无论角色如何,每个人都进入s.php页面
在登录后,根据他们要去的页面,我还想看到我的ID,该怎么办?
答案 0 :(得分:0)
只需在会话中保存用户ID:
...
if (password_verify($password, $data['password'])) {
$_SESSION['NOME_SESSIONE'] = true;
$_SESSION['USER_ID'] = (int)$data['id'];
...
,然后在您的reindirizza.php
中将查询更改为:
<?php
session_start();
include 'FILE_DI_CONNESSIONE.php';
$query = "SELECT * FROM tabella WHERE id = ".$_SESSION['USER_ID'];
...