簡體   English   中英

PHP會話變量未設置

[英]PHP session variable not being set

據我所知,大概有這一點,但閱讀我仍然無法找出什么地方出了錯小時后幾個主題。

我正在使用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上沒有任何內容。 如果您能提供幫助,我將不勝感激。

您的$_POST代碼位於錯誤的文件中。 您的表單將進入setup1.php ,但是您正在嘗試在index.php設置$_SESSION

您需要將其取出並放入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 我希望這只是一個錯字。

設置$_SESSION['username'] ,您的表單尚未提交,即$_POST['participant']沒有任何價值。

您應該將下面的代碼從index.php移到setup1.php

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

index.php

<?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>

setup1.php

<?php session_start();

if(isset($_POST['participant']) && ! empty($_POST['participant'])) { $_SESSION['username'] = $_POST['participant']; echo $_SESSION['username']; } { $_SESSION['username'] = $_POST['participant']; echo $_SESSION['username']; } { $_SESSION['username'] = $_POST['participant']; echo $_SESSION['username']; } ?>`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM