未设置PHP会话变量

未设置PHP会话变量,php,session,Php,Session,我知道这方面有好几个话题,但经过几个小时的阅读,我仍然不知道出了什么问题 我正在index.php上构建一个带有登录屏幕的调查。用户需要插入其姓名并提交表单。用户名应保存并传递到setup1.php 这是my index.php的一部分: <?php session_start(); print session_id(); ?> <form id="login" method="POST" action="setup1.php"> <input id

我知道这方面有好几个话题,但经过几个小时的阅读,我仍然不知道出了什么问题

我正在index.php上构建一个带有登录屏幕的调查。用户需要插入其姓名并提交表单。用户名应保存并传递到setup1.php

这是my 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'];
?>


我的$\u会话变量为空,在下面的setup.php页面上没有打印任何内容。如果你能帮忙,我将不胜感激

您的
$\u帖子
代码位于错误的文件中。您的表单将进入
setup1.php
,但您正试图在
index.php
中设置
$\u会话

您需要将其取出并放入
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'];
?>


另外,请确保您使用的是
$\u会话
,而不是
%\u会话
。我希望这只是一个打字错误。

你的
$\u帖子
代码放错了文件。您的表单将进入
setup1.php
,但您正试图在
index.php
中设置
$\u会话

您需要将其取出并放入
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'];
?>


另外,请确保您使用的是
$\u会话
,而不是
%\u会话
。我希望这只是一个输入错误。

当您设置
$\u会话['username']
时,您的表单尚未提交,即,
$\u POST['participant']
没有任何价值

您应该将下面的代码从index.php移到setup1.php

<?php
$name = $_POST['participant'];
$_SESSION['username'] = $name;
?>

当您设置
$\u会话['username']
时,您的表单尚未提交,即,
$\u POST['participant']
没有值

您应该将下面的代码从index.php移到setup1.php

<?php
$name = $_POST['participant'];
$_SESSION['username'] = $name;
?>

index.php


setup1.php
`

index.php


setup1.php
`

使用$\u SESSION not%\u SESSION无需启动
两次(或者这是故意的)。对不起,这是一个打字错误,我刚刚更改了它。我了解到我必须包括session_start();在每个文件的开头。使用$\u SESSION not%\u SESSION无需
SESSION\u start
两次(或者这是故意的)。抱歉,这是一个打字错误,我刚刚更改了它。我了解到我必须包括session_start();在每个文件的开头。谢谢你把它捡起来,@satishrajak。我希望这只是他们这边的一种类型。我只是复制并粘贴了它。
die(“没有发布数据”)-这将生成
注意:数组到字符串的转换
-使用单引号不计算此
$\u POST
数组是为了放单引号@对不起,是打字错误!谢谢你把它捡起来,@satishrajak。我希望这只是他们这边的一种类型。我只是复制并粘贴了它。
die(“没有发布数据”)-这将生成
注意:数组到字符串的转换
-使用单引号不计算此
$\u POST
数组是为了放单引号@对不起,是打字错误!请不要使用%\u会话请不要使用%\u会话