我开发了自己的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