2011-03-04 113 views
2

我正在開發一個android應用程序,它有一個web服務器和一個MySQL數據庫。如何使用PHP創建會話?

數據庫包含用戶名和密碼。

我想實現登錄過程並使用PHP在android設備和web服務器之間建立會話。

在此先感謝...

回答

6

從你的問題好像你只是想知道如何在PHP,Android或沒有做到這一點。您需要將用戶和密碼(散列)存儲在您的數據庫中,例如當用戶向您註冊帳戶時。

session_start(); //Start the session. Call on every page that will have the login. 
$login = $_POST['login']; 
$pass = $_POST['pass']; //Get login and password the user has sent. 

if (is_valid_user($login, $pass)) { 
    //If user is valid, pass them along to the next page. 
    $_SESSION['logged_in_user'] = $login; //Keep track of the username in the session 
} 
else echo "Not a valid login"; 
+0

你是說你不需要用cookies或其他任何東西來做任何事情來維護這個PHP會話?對服務器執行一個http請求,然後創建會話。那麼對服務器所做的所有後續http請求都將自動使用相同的會話? – 2012-01-04 05:27:39

+0

@Jakobud通常會,PHP會自動發出cookie。如果用戶禁用了Cookie,則只需要擔心。那麼是否要使用GET維護會話取決於您,更重要的是,您需要將SID保留在重定向之間。我認爲現在cookie禁用是非常罕見的。 – 2012-01-04 11:20:00

0

好了...所以登錄操作,你可以有類似...

session_start(); 

if(isLoginCorrect()) 
{ 
    $_SESSION['logged_in'] = true; 
} 

哪裏isLoginCorrect是驗證用戶名和密碼是否正確的功能。 然後你就可以有一定的邏輯像這樣的東西你的模板文件...

<?php if($_SESSION['logged_in']): ?> 
    You are logged in 
<?php else: ?> 
    You aren't logged in 
<?php endif; ?> 

然後註銷就可以使用,session_destroy()或取消($ _ SESSION [「LOGGED_IN」]);

+0

您必須同時執行session_destroy()和清除會話變量。見http://us2.php.net/manual/en/function.session-destroy.php – 2011-03-04 08:15:17

+0

Android方面呢? – Turki 2011-03-04 08:17:25

+1

android方面與此無關。會話存儲在服務器上,對客戶端不可見。 – 2011-03-04 08:23:44