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 に答える