【发布时间】:2014-03-03 11:05:29
【问题描述】:
大家好,我是 PHP 新手,我正在尝试在 php 中创建一个非常小的应用程序 我正在尝试使用 php 中的会话访问用户的用户 ID,为此我正在执行这些步骤
我在我的应用程序中创建这些类
我的第一堂课是我放在模型文件夹中的数据库管理器
public function executeQuery($query) {
$result = mysql_query($query);
if ($result === false) {
$this->closeConnection($this->conn);
exit;
}
// extract data from results, returning an associative array
$rows = Array();
while ($row = mysql_fetch_assoc($result)) {
$rows[] = $row;
}
return $rows;
}
然后我创建这两个类
首先是登录管理器
class LoginManager
{
function checkLogin($arr)
{
require_once(FRONT_ROOT_PATH.'DatabaseManager.php');
$query ="Select * from tbusers where username='".$arr['username']."' and password='".$arr['password']."'";
$db= new DatabaseManager();
$result=$db->executeQuery($query);
return $result;
}
}
第二个是LoginInit
<?php
session_start();
include(LIB_PATH."Login/LoginManager.php");
if(isset($_POST['addlogin']))
{
$obj= new LoginManager();
$userlist=$obj->checkLogin($_POST);
if(Count($userlist)>0)
{
$_SESSION['uid']=$userlist['userid'];
header('location:/ProjectDream/view/home/home.php');
}
else
{
echo "Login Failed";
}
}
}
在这个类中我添加会话,然后我在这个 php 页面上调用这些类
<?php
include('Include/config.inc.php');
include(LIB_PATH."Login/Logininit.php");
?>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Login</title>
<!-- CSS -->
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/styles.css">
</head>
<!-- Main HTML -->
<body>
<!-- Begin Page Content -->
<div id="container">
<form action="" method="post">
<input type="hidden" name="addlogin"/>
<label for="name">Username:</label>
<input type="name" name="username">
<label for="username">Password:</label>
<p><a href="#">Forgot your password?</a>
<input type="password" name="password">
<div id="lower">
<input type="checkbox"><label class="check" for="checkbox">Keep me logged in</label>
<input type="submit" value="Login">
</div>
</form>
</div>
<!-- End Page Content -->
</body>
</html>
当用户登录时,我将用户发送到 home.php 页面,我在 home.php 上编写此代码
<?php
session_start();
if(isset($_SESSION['uid']))
{
echo $_SESSION['uid'];
}
else
{
echo "No Session ";
}
?>
现在,当我运行这个应用程序时,它在我的 $_SESSION 变量中没有显示任何值 是否可以在 php.ini 中调用类级别的会话。请告诉我如何在这里使用会话 谢谢
【问题讨论】:
-
您在哪里为 $_SESSION['uid'] 赋值?
-
在我的代码中检查我的 loginmanager 类,我从那里得到它@Ashish
-
您没有在代码中的任何位置设置任何 $_SESSION 变量,您试图从中获取值,但没有将任何值放入其中
-
在 LoginManager 类中成功执行查询后,您需要分配它..
-
@CodeBird 我更正了它,之后我什么也没有得到