我正在尝试为某些网站创建一个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 "";
}
?>
我该怎么做?
答案 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。
这是维持会议的机制。