2013-02-28 83 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