0

我对网站编程有基本的了解。我想创建一个在同一个域上有两个应用程序的网站。第一个是给用户的,第二个是给我的管理员的。这将有利于我在不登录数据库的情况下做事和管理网站。问题是如何处理这两个会话。我尝试在 session_start 之前使用 session_name 但它不起作用。我需要帮助以使每个会话都独立存在,因此它们不会相互混淆。还有一个问题。当您有多个会话时,这是设置会话的正确方法吗?

$_SESSION[$变量] = $变量。

编辑:仍然无法正常工作。这是我的代码:

<?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';
}

?>
4

3 回答 3

3

会话只能在 session_start() 之后使用;您可以在数组中创建一个数组以使其正常工作。你可以尝试这样的事情:

$_SESSION['user']['name'] = 'Something';
$_SESSION['user']['email'] = 'Something';

对于管理员:

$_SESSION['admin']['something'] = 'Something';

编辑:记住你使用 session_start(); 在您使用会话的每个页面上。看起来你在第一页上忘记了。

于 2013-02-28T12:39:28.900 回答
1

为什么不使用 $_SESSION['admin'][] 来存储与管理员相关的变量?

例如,$_SESSION['admin']['login'] = 'Mansour Fahad';

于 2013-02-28T12:37:19.547 回答
1

我更喜欢这个:

网站:

define('SES_PREFIX' , 'website-');
$_SESSION[ SES_PREFIX . 'user'] = 'waqar';

行政:

define('SES_PREFIX' , 'admin-');
$_SESSION[ SES_PREFIX . 'user'] = 'admin';

这将允许您在同一域上部署同一应用程序的多个副本。

于 2013-02-28T12:46:18.527 回答