我需要在一个条件下从一个页面中获取数据,然后在另一个页面上回显它。这是我的代码以及其他不起作用的尝试。
<?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;
}
?>
在下一个php页面上,名为test.php:
<?php
session_start;
echo $_SESSION['myValue'];
?>
我的logcat显示我在所有三个回声中都获得了数据,但是在test.php(即第2页)上仍然没有显示任何数据。
我也尝试过:
尝试1: 在第1页:
session_start();
$_SESSION['myValue']=$name;
在第2页中使用:
session_start();
echo $_SESSION['myValue'];
尝试2: 在第1页:
session_start();
$_SESSION['name'] = $name ;
在第2页中使用:
session_start();
$name = $_SESSION['name'];
尝试3: 在第1页:
header("Location: test.php?name=".$name);
在第2页中使用:
$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页面:
{“mailbox”:[{“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的所有条目。为什么这两者相互矛盾?
答案 0 :(得分: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;
}
?>