我開發了自己的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)'顯然不會工作,因爲'uid'存儲在$ _SESSION ['uid']'中,這是不同的。你只是在那裏注意到你注意到的條件,但是你用''uid''把'uid''弄糊塗了...... – arkascha
在代碼的頂部添加'session_start();' –
嗨@arkascha,我是否錯誤地聲明$ uid?因爲我不能將它聲明爲isset(uid),所以它不會運行... – Sap1