1

我需要简单地从一个页面中获取数据,在一个条件下,然后在另一个页面上回显它。这是我的代码和其他不起作用的尝试。

<?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 显示我在所有三个回显中都获得了数据,但 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 上没有显示任何内容(在最后一次尝试中,我收到了一堆警告,也许还有错误)。我究竟做错了什么?

这是我的 logCat:

04-13 14:46:22.564: I/RESPONSE(4591): SELECT * FROM messages where touser='r' 04-13 14:46:22.564: I/RESPONSE(4591): { "mailbox":[{" 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":"","message":"","timestamp":"2013-04-13 13:41 :23"},{"id":"122","fromuser":"r","touser":"","message":"","timestamp":"2013-04-13 13:30: 53"}]}

如您所见,它返回了 fromuser 为 r 的所有条目。两人为什么会矛盾??

4

1 回答 1

1

不完全确定你在问什么,但也许这会有所帮助。

在 /* 条件代码的开头 */

使用 isset 条件....

<?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 (isset ($_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; no need to echo

    $_SESSION['myValue']=$name;
}

?>
于 2013-04-13T17:15:51.610 回答