基于cookie的登录系统在android中

时间:2012-12-27 17:25:42

标签: java php android session-cookies httpurlconnection

我正在尝试为某些网站创建一个Android应用程序。首先,我需要在此应用程序上创建一个登录系统,该系统将询问用户的用户名和密码,然后将此数据发送到服务器上的某个php脚本,该脚本将检查该用户是否存在的数据库天气。从而返回用户ID。以下是此过程的核心代码

myurl="http://10.0.2.2:80/login.php?username=name&pass=password"
                URL url = new URL(myurl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(10000 /* milliseconds */);
            conn.setConnectTimeout(15000 /* milliseconds */);
            conn.setRequestMethod("GET");
            conn.setDoInput(true);
            // Starts the query
            conn.connect();
            int response = conn.getResponseCode();

这部分工作正常。我能够从中得到正确的答复。现在我需要的是通过cookie或任何其他方法维护此会话,即使用户关闭此应用程序以便保持用户登录,直到并且除非他手动注销。 我的login.php有点跟随

<?php
$name = $_GET['username'];
$pass = $_GET['pass'];
$userid = checkLogin($name, $pass);

if($userid!=NULL) {
    echo $userid;
} else { 
    echo "";
}
?>

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用PHP session_start(),将数据放入会话并进行修改?此脚本将帮助您进行测试。如果可行,您几乎可以肯定使用PHP setcookie()来保留客户端状态。

<?php // RAY_session_test.php
error_reporting(E_ALL);


// DEMONSTRATE HOW PHP SESSIONS WORK
// MAN PAGE HERE: http://php.net/manual/en/function.session-start.php


// START THE SESSION (DO THIS FIRST, UNCONDITIONALLY, IN EVERY PHP SCRIPT ON EVERY PAGE)
session_start();

// INITIALIZE THE SESSION ARRAY TO SET A DEFAULT VALUE
if (empty($_SESSION["cheese"])) $_SESSION["cheese"] = 1;

// SEE IF THE CORRECT SUBMIT BUTTON WAS CLICKED
if (isset($_POST['fred']))
{
    // ADD ONE TO THE CHEESE
    $_SESSION['cheese']++;
}

// RECOVER THE CURRENT VALUE FROM THE SESSION ARRAY
$cheese = $_SESSION['cheese'];


// END OF PROCESSING SCRIPT - CREATE THE FORM USING HEREDOC NOTATION
$form = <<<ENDFORM
<html>
<head>
<title>Session Test</title>
</head>
<body>
Currently, SESSION["cheese"] contains: $cheese<br/>
<form method="post">
<input type="submit" value="increment this cheese" name="fred"  />
<input type="submit" value="leave my cheese alone" name="john" />
</form>
</body>
</html>
ENDFORM;

echo $form;

答案 1 :(得分:1)

您应该在执行请求时使用HttpContext,然后会话cookie将在httpcontext中处理。每次执行hhtpRequest时都必须传递httpcontext。

这是维持会议的机制。