我知道有几个主题,但经过几个小时的阅读后,我仍然无法弄清楚出了什么问题。
我正在使用index.php的登录屏幕构建调查。用户需要插入他们的名字并提交表格。用户名应保存并传递给setup1.php。
这是我的index.php的一部分:
<?php
session_start();
print session_id();
?>
<form id="login" method="POST" action="setup1.php">
<input id="participant" name="participant" type="text" size="20"/>
<input type="submit" name="start" value="Start"/>
</form>
<?php
$name = $_POST['participant'];
$_SESSION['username'] = $name;
?>
开始setup1.php:
<?php
session_start();
print session_id();
print_r($_SESSION);
echo $_SESSION['username'];
?>
我的$ _SESSION变量为空,我在下一页setup.php上没有打印任何内容。如果你能提供帮助,我将不胜感激。
答案 0 :(得分:4)
您的$_POST
代码位于错误的文件中。您的表单将转到setup1.php
,但您尝试在$_SESSION
中设置index.php
。
您需要将其取出并放入setup1.php
:
<?php
session_start();
if (!isset($_POST['participant'])) {
die('No $_POST data');
}
$_SESSION['username'] = $_POST['participant'];
print session_id();
print_r($_SESSION);
echo $_SESSION['username'];
?>
另外,请确保您使用的是$_SESSION
而不是%_SESSION
。我希望这只是一个错字。
答案 1 :(得分:0)
设置$_SESSION['username']
时,您的表单尚未提交,即$_POST['participant']
没有值。
您应该将下面的代码从index.php移到setup1.php
<?php
$name = $_POST['participant'];
$_SESSION['username'] = $name;
?>
答案 2 :(得分:0)
<?php
session_start();
?>
<form id="login" method="POST" action="setup1.php">
<input id="participant" name="participant" type="text" size="20"/>
<input type="submit" name="start" value="Start"/>
</form>
<?php
session_start();
if(isset($_POST['participant']) && ! empty($_POST['participant']))
{
$_SESSION['username'] = $_POST['participant'];
echo $_SESSION['username'];
}
?&GT;`