2013-02-28 82 views
0

我有一个关于网站编程的基本知识。我想创建一个网站,在同一个域上有两个应用程序。第一个是用户,第二个是管理员,这就是我。这将有利于我在不登录数据库的情况下管理网站。问题是如何处理这两个会议。我试图在session_start之前使用session_name,但它不起作用。我需要帮助,让自己独立的每一个环节,所以他们不会混淆在一起。还有一个问题。当你有多个时,这是设置会话的正确方法吗?在php中处理多个会话

$ _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'; 
} 

?> 
+1

好像关于会话的知识很低,为什么不用你的开始:[PHP会话](http://www.w3schools.com/php/php_sessions.asp) – 2013-02-28 12:39:00

回答

3

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

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

并为管理员:

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

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

1

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

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

1

我宁愿这样:

网站:

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

联系:

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

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

-1

没有真正相关,但很重要。使用mysqli而不是mysql!

+0

这应该被删除并发布为对问题发表评论,而不是回答。 – Soaku 2017-08-07 08:38:16