2011-03-04 79 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