2016-11-10 3 views
0

Я разработал свой собственный login.php, однако логин имеет успех, но сеанс не фиксируется. Каждый раз, когда я перехожу к другой ссылке, она вернет меня к login.php и потребует от меня повторного входа снова. Я попытался использовать $ _SESSION (как прокомментировал), но вышла из страницы входа, которая не может полностью войти в систему.Сессия PHP не записана

Спасибо заранее

Ниже мой код

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 
$uid = $_POST["uid"]; 
$password = $_POST["password"]; 
} 


include("src/db.php"); 
session_start(); 

if(!isset($uid)) { 

//if(!isset($_SESSION['$uid'])){ 

?> 

<MY HTML code -- Let me know if you need to check my HTML as well> 

<?php 
exit; 
    } 

dbConnect("myDB"); 
$sql = "SELECT * FROM sys_user WHERE username = '$uid' AND password = '$password'"; 

$result = pg_exec($sql); 
$dept_id = pg_result($result,0,"dept_id"); 
if (pg_num_rows($result) == 1) { 
    $_SESSION['uid'] = $uid; 
    $_SESSION['password'] = $password; 
    $_SESSION['dept_id'] = $dept_id; 

} 

?> 
<? 
// ** THIS IS THE NEW SECTION ** 
//if ((pg_numrows($result) == 1) AND ($access != 'Y')) { 


// ** END OF NEW SECTION ** 
?> 
<? 

if (pg_num_rows($result) == 0) { 
//session_unregister("uid"); 
//session_unregister("password"); 
// session_unregister("dept_id"); 
unset($_SESSION["uid"]); 
unset($_SESSION["password"]); 
unset($_SESSION["dept_id"]); 

?> 
+0

Проблема заключается в том, как вы проверяете, была ли эта сессия заполнена раньше. 'isset ($ uid)' явно будет работать _not_, так как 'uid' хранится в' $ _SESSION ['uid'] 'что-то другое. Вы были _nearly_ там с этим условным вы прокомментировали, но вы путали '' uid'' с '' $ uid'' ... – arkascha

+0

в верхней части вашего кода добавить 'session_start();' –

+0

привет @arkascha, я объявляю ошибку $ uid неправильно? потому что я не могу объявить его как isset (uid), он вообще не будет работать ... – Sap1

ответ

0

session_start() Переход к верхней части файла.

+0

привет @dhiren, не работает как хорошо .. спасибо за ответ btw – Sap1

+0

Также ваш этот код 'dbConnect ("myDB"); $ sql = "SELECT * FROM sys_user WHERE username = '$ uid' И password = '$ password'"; $ result = pg_exec ($ sql); $ dept_id = pg_result ($ result, 0, "dept_id"); if (pg_num_rows ($ result) == 1) { $ _SESSION ['uid'] = $ uid; $ _SESSION ['password'] = $ password; $ _SESSION ['dept_id'] = $ dept_id; } 'двигаться под этим if ($ _SERVER ["REQUEST_METHOD"] == "POST") –