【发布时间】:2012-07-26 22:07:01
【问题描述】:
我在这里缺少什么?这是我的 PHP 文件:
<?
session_start();
echo print_r($_SESSION);
echo "<br>";
echo print_r($_POST);
// Save input in session
$_SESSION = $_POST;
echo "test1";
?>
<br>
test2
此文件是通过表单提交访问的,我确定发布数据存在。输出是:
数组 ( [登录] => 1 ) 1
数组([名称] => 测试 [类型] => 测试)1
测试2
这对我来说毫无意义。 session 内容和post 内容打印没有问题。
但是$_SESSION = $_POST; 似乎失败了,直到?> 的其余脚本都没有给出任何响应,这很明显,因为没有打印test1 文本。
我不知道$_SESSION = $_POST; 会发生什么。我在 SO 和其他地方找到的所有问题都提供了这种在会话中存储帖子数据的方式。
我知道在任何输出之前都需要session_start();。在这种情况下是否还需要其他东西?
我错过了什么?
更新 - 测试文件
完整测试文件的确切代码(链接已删除)是:
<?
session_start();
?>
<html>
<head>
</head>
<body>
<?
echo print_r($_SESSION);
echo "<br>";
echo print_r($_POST);
// Save input in session
$_SESSION = $_POST;
echo "test1";
?>
<p>test2</p>
<form method="post" action="test.php">
Type something to test: <input type="text" name="testfield" id="testfield">
<input type="submit" value="Submit">
</form>
</body>
</html>
更新 - 已解决?
好的,现在解决了。但这很奇怪……
问题显然是由评论引起的。 // 阻止脚本在 <?..?> 括号内运行。当我删除评论// Save input in session 时,它可以工作...?
现在我在这里缺少什么?它必须是一些php设置或其他东西。或者可能是某些已更改的文件或脚本数据。我想既然@CodeCaster 让它工作了,我的电脑上就会发生一些事情......但是 cmets 在其他任何地方都可以工作吗?有人见过这个吗?
【问题讨论】:
-
你
echo "test1"并得到test2的结果?是同一个脚本吗?是否使用post方法向该脚本提交了任何内容? -
请发布实际代码,因为您发布的代码确实有效。此外,如果 PHP 似乎“没有打印任何内容就失败”,请启用错误报告。
-
已更正。我错过了最后一行
-
这不是实际代码,请自行测试。这有效,并且也打印了
test1。 -
@CodeCaster。是的,这是实际的代码。我做了一个测试文件给你看。请参阅上面的更新。
test1文本不显示。