Я разработал свой собственный 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"]);
?>
Проблема заключается в том, как вы проверяете, была ли эта сессия заполнена раньше. 'isset ($ uid)' явно будет работать _not_, так как 'uid' хранится в' $ _SESSION ['uid'] 'что-то другое. Вы были _nearly_ там с этим условным вы прокомментировали, но вы путали '' uid'' с '' $ uid'' ... – arkascha
в верхней части вашего кода добавить 'session_start();' –
привет @arkascha, я объявляю ошибку $ uid неправильно? потому что я не могу объявить его как isset (uid), он вообще не будет работать ... – Sap1