指向同一页面的不同值-PHP

时间:2019-03-20 20:38:15

标签: php

正如标题所示,我有一个名为: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,该怎么办?

1 个答案:

答案 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'];
...