我对网站编程有基本的了解。我想创建一个在同一个域上有两个应用程序的网站。第一个是用户,第二个是管理员,也就是我。这将有利于我做事情并管理网站而无需登录数据库。问题是如何处理这两个会话。我试图在session_start之前使用session_name,但它不起作用。我需要帮助才能使每个会话都在自己的独立方面,所以他们不要互相混淆。另一个问题。当你有多个时,这是设置会话的正确方法吗?
$ _ SESSION [$ variable] = $ variable。
编辑:仍然无法正常工作。这是我的代码:
<?php
@$admin = $_POST['admin'];
@$password = $_POST['password'];
if(empty($admin) OR empty($password)) {
echo 'You need to fill all the spaces.';
}
if (!empty($admin) AND !empty($password)) {
mysql_connect('localhost','root','');
mysql_select_db('job');
$tip0 = mysql_query("SELECT admin, password FROM admin WHERE admin = '".mysql_real_escape_string($admin)."' AND password = '".md5($password)."'");
if(mysql_num_rows($tip0)==TRUE) {
$_SESSION['admin']['login'] = $admin;
header('location:administrator.php');
echo 'Session has been created';
}
elseif(mysql_num_rows($tip0)==FALSE) {
echo 'There is no admin.';
}
}
?>
<html>
<body>
<form action="admin_login.php" method="POST"></input><br />
Admin: <input type="text" name="admin"></input><br />
Password: <input type="password" name="password"></input><br />
<input type="submit"></input>
</form>
</body>
</html>
这是重定向页面:
<?php
session_start();
if (isset($_SESSION['admin']['login'])) {
echo 'Here we go.';
}
elseif(!isset($SESSION['admin']['login'])) {
echo 'Not found';
}
?>
答案 0 :(得分:3)
会话只能在session_start()之后使用;您可以在数组中创建一个数组,以使其工作。你可以尝试这样的事情:
$_SESSION['user']['name'] = 'Something';
$_SESSION['user']['email'] = 'Something';
对于管理员:
$_SESSION['admin']['something'] = 'Something';
编辑:记住你使用session_start();在每个页面上您使用会话。看起来你忘记了第一页。
答案 1 :(得分:1)
为什么不使用$ _SESSION ['admin'] []存储与管理相关的变量?
例如,$ _SESSION ['admin'] ['login'] ='Mansour Fahad';
答案 2 :(得分:1)
我更喜欢这个:
网站:强>
define('SES_PREFIX' , 'website-');
$_SESSION[ SES_PREFIX . 'user'] = 'waqar';
管理强>
define('SES_PREFIX' , 'admin-');
$_SESSION[ SES_PREFIX . 'user'] = 'admin';
这将允许您在同一个域上部署同一应用程序的多个副本。