![](/img/trans.png)
[英]PHP Session variable not being set, possibly because subdomain on different server?
[英]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;
?>
<?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']; }
{ $_SESSION['username'] = $_POST['participant']; echo $_SESSION['username']; }
{ $_SESSION['username'] = $_POST['participant']; echo $_SESSION['username']; }
?>`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.