2

我正在尝试为某些网站创建一个 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 "";
}
?>

我该怎么做?

4

2 回答 2

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;
于 2012-12-27T17:40:24.610 回答
1

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

这是维持会话的机制。

于 2012-12-27T17:40:50.607 回答