无法在 php 中分配会话变量

有与该主题相关的类似问题,但没有一个解决了我的问题。这有点奇怪,但我的 $_SESSION 在同一页面上工作,但不在任何其他页面上工作。如果我输入 isset($_POST['submit') 条件不满足并且没有它 $_SESSION 保持为空。


这是我的代码。


这是登录页面。


<!-- Login.php  -->

<?php

session_start();

?>

<html>

<body>

<form method="post" action="profile.php">

<fieldset>


<legend>

Login

</legend>

<label> User ID  :</label>   <input type="text" placeholder="Username" name="user"><br>

<label> Password  :</label>   <input type="password" placeholder="Password" name="password">



<input type="submit" name="submit" value="Login">

</fieldset>

</form>

</body>

</html>

<?php

if(isset($_POST['submit'])){

$_SESSION['USER']= $_POST['user'];

$_SESSION['PASS']=$_POST['password'];

}

?>

这是我希望我的会话变量出现的地方。


<!--  profile.php  -->

<?php

session_start();

echo "Session user is ".$_SESSION['USER']."<br>";

unset($_SESSION['USER']);

unset($_SESSION['PASS']);

session_unset();

session_destroy();

?>

这是我试过的:

  1. 将表单方法更改为 GET。

  2. 使用 $_REQUEST 和 $_GET。

  3. 在同一页面上使用 $_SESSION。它在同一页面上工作。

  4. 检查会话 ID。其他页面上的会话存在,但值为 null 或空。

  5. 在没有 isset() 的情况下运行代码。在那种情况下,所有会话变量都保持为 NULL。


慕的地6264312
浏览 86回答 1
1回答

慕容3067478

$_POST['submit']并且其余的帖子参数在中不可用Login.php 它们仅在中可用profile.php,因为您的表单操作指向它。您可以将以下代码移到session_start()in之后profile.php。if(isset($_POST['submit'])){$_SESSION['USER']= $_POST['user'];$_SESSION['PASS']=$_POST['password'];}请记住,您在结束时取消设置会话值profile.php
打开App,查看更多内容
随时随地看视频慕课网APP