条件に応じて、あるページからデータを取得し、それを別のページにエコーするだけです。これが私のコードと、うまくいかない他の試みです。
<?php
session_start;
/* connect to database */
$db = mysql_connect("localhost", "root", "root");
if (!$db)
die('could not connect');
mysql_select_db('androidp2p')
or die("could not select database");
/* variables */
$from = mysql_real_escape_string($_POST['from']);
$to = mysql_real_escape_string($_POST['to']);
$message = mysql_real_escape_string($_POST['message']);
/* conditional code */
if ($_POST['to'])
{
/* user wants to send a message */
$query = "INSERT INTO messages (fromuser, touser, message) VALUES ('$from', '$to', '$message')";
mysql_query($query)
or die("\n\ndatabase error!\n". mysql_error());
echo "ok. Messages have been saved.";
}
else
{
/* user wants to retrieve his messages*/
$query = "SELECT * FROM messages WHERE touser='$from'";
/* echo1 */
echo $query;
$result = mysql_query($query)
or die("\n\ndatabase error!\n". mysql_error());
$mailbox = array();
while($row = mysql_fetch_assoc($result)){
$mailbox[] = $row;
}
/* echo2 */
echo "{ \"mailbox\":".json_encode($mailbox)." }";
$name = "{ \"mailbox\":".json_encode($mailbox)." }";
/* echo3 */
echo $name;
$_SESSION['myValue']=$name;
}
?>
そして、test.php と呼ばれる次の php ページで:
<?php
session_start;
echo $_SESSION['myValue'];
?>
私の logcat は、3 つのエコーすべてでデータを取得していることを示していますが、test.php (つまり、page2) にはまだ何も表示されていません。
私も試しました:
試行 1: ページ 1:
session_start();
$_SESSION['myValue']=$name;
そしてpage2で使用されます:
session_start();
echo $_SESSION['myValue'];
試行 2: 1 ページ目:
session_start();
$_SESSION['name'] = $name ;
そしてpage2で使用されます:
session_start();
$name = $_SESSION['name'];
試行 3: 1 ページ目:
header("Location: test.php?name=".$name);
そしてpage2で使用されます:
$name = $_GET['name'] ;
しかし、test.php には何も表示されていません (この最後の試みでは 3 で、大量の警告とおそらくエラーが発生しました)。私は何を間違っていますか?
これは私のlogCatです:
04-13 14:46:22.564: I/RESPONSE(4591): SELECT * FROM メッセージ WHERE touser='r' 04-13 14:46:22.564: I/RESPONSE(4591): { "メールボックス":[{" id":"117","fromuser":"qw","touser":"r","message":"zx","timestamp":"2013-04-13 01:30:59"}] }
上記で touser が r であることを確認してください。データベースへのこのエントリ、つまり、フィールド「touser」に値「r」が含まれるすべてのエントリが必要です。
さて、これは私のtest.phpページです:
{ "メールボックス":[{"id":"123","fromuser":"r","touser":"","メッセージ":"","タイムスタンプ":"2013-04-13 13:41 :23"},{"id":"122","fromuser":"r","touser":"","メッセージ":"","タイムスタンプ":"2013-04-13 13:30: 53"}]}
ご覧のとおり、fromuser が r であるすべてのエントリが返されました。なぜ両者は矛盾するのか??