2013-11-20 7 views
0
<?php session_start(); 

$_SESSION['username'] = $_POST['username']; 
$_SESSION['password'] = $_POST['password']; 


$conn = mysqli_connect('localhost', 'smithrwg_user', 'password', 'smithrwg_database'); 

$_SESSION['username'] = mysqli_real_escape_string($conn, $_SESSION['username']); 
$query = "SELECT password, salt 
     FROM tbl_mem 
     WHERE username = '" . $_SESSION['username'] . "';"; 

$result = mysqli_query($conn, $query); 


if(mysqli_num_rows($result) == 0) // User not found. So, redirect to login_form again. 
{ 
    header('Location: index.php'); 
    echo "not found"; 
    session_destroy(); 
} 



$userData = mysqli_fetch_array($result, MYSQL_ASSOC); 
$hash = hash('sha256', $userData['salt'] . hash('sha256', $_SESSION['password'])); 
if($hash != $userData['password']) // Incorrect password. So, redirect to login_form again. 
{ 
    header('Location: login.html'); 
}else { 
// Redirect to home page after successful login. 


    header('Location: index.php'); 
    $_SESSION['priv'] = $row['priv']; 

} 
?> 

Я пытаюсь установить $ _SESSION ['priv'] = строке в таблице базы данных mysql «tbl_mem» priv. но на данный момент его не устанавливают ни на что, и я действительно не понимаю, как это сделать.Права администратора для системы входа php

+0

как насчет $ строки [0] [ «собств»]; назначить первый результат/приват на сессию – Marty

ответ

2

$row не определен, вы, вероятно, должны были написать $userData. Но все равно это не сработает - вам также нужно будет отредактировать свой запрос.

$query = "SELECT password, salt, priv FROM..."; 
//... 
$_SESSION['priv'] = $userData['priv']; 
header('Location: index.php'); 

Следует поставить перед header(), чтобы убедиться, что значение действительно назначенную

+0

Добро пожаловать! Я предлагаю использовать 'error_reporting (E_ALL);' в вашей среде разработки, чтобы вы могли легко отслеживать, что происходит неправильно. – kero

Смежные вопросы