php - 使用 PHP 会话时在第二页上获取未定义的变量
问题描述
我正在处理会话当我将表单从第 1 页提交到第 2 页时,在第 2 页上,我不断收到未定义变量的通知。你们都看到了我没有看到的东西吗?此外,我只放置相关的 HTML。谢谢!
PS - (我阅读了类似的帖子,但他们没有回答我的问题,他们只提到检查赋值运算符。另外,我查看了“已经在这里回答”的示例,但它对我没有帮助,因为在那个 stackoverflow 帖子中它是假设我知道用户名是什么。在我的情况下是不同的,因为用户名是用户输入的任何内容,这不是我预先确定的!)
第 1 页:HTML/PHP
<form action="L10_Combo2.php" method="POST">
<p>Please enter your username</br>
<input type="text" id="username" name="username"/>
</p>
<p>Please enter your email address</br>
<input type="email" id="email" name="email"
</p>
</br></br>
<input type="submit" name="submit" value="Submit Information"/>
</form>
<?php
session_start();
if(isset($_POST['submit'])){
$username = $_SESSION['username'];
$email = $_SESSION['email'];
}
?>
第 2 页:L10_Combo2
<?php
session_start();
if(isset($_SESSION['username']) && isset($_SESSION['email'])){
$username = $_SESSION['username'];
$email = $_SESSION['email'];
}
//This is where I am getting the undefined variable error!
print("Stored in the session: " . $username . $email);
session_destroy();
解决方案
当您注册会话时,它需要转到表单操作页面。看起来您的表单操作在第 2 页上
<?php
session_start();
if(isset($_POST['submit'])){
$username = $_SESSION['username'];
$email = $_SESSION['email'];
}
?> //Move this to page #2
将您的 php 脚本移动到第 1 页的顶部
<?php
session_start(); //this needs to be on the top most code
if(isset($_POST['submit'])){ //this needs to move to the form action page, looks like its on page #2.
$username = $_SESSION['username'];
$email = $_SESSION['email'];
}
?>
您的 html 位于 php 代码的顶部片段之后
<form action="L10_Combo2.php" method="POST">
<p>Please enter your username</br>
<input type="text" id="username" name="username"/>
</p>
<p>Please enter your email address</br>
<input type="email" id="email" name="email"
</p>
</br></br>
<input type="submit" name="submit" value="Submit Information"/>
</form>
<?php
session_start(); //this needs to be on the top most code on page 2
if(isset($_SESSION['username']) && isset($_SESSION['email'])){
$username = $_SESSION['username'];
$email = $_SESSION['email'];
}
//This is where I am getting the undefined variable error!
print("Stored in the session: " . $username . $email);
print_r($_SESSION);
session_destroy();
也做一个
print_r($_SESSION); to see what's in the sessions before session destroy to check what is actually in the session var.
推荐阅读
- roblox - 当玩家在与 NPC 互动时选择特定的对话选项时,我如何进行某些操作?
- msbuild - aspnet_regiis.exe 的“-site”选项有什么作用?
- kubernetes - tcpdump 到 kubernetes 负载均衡器分配的服务
- python - 将列表转换为字典,字符串作为键,浮点数作为值列表
- c++ - 如何使用线程更新纹理
- docker - 如何在不使用 docker 命令的情况下将 docker 镜像推送到 nexus3 存储库?
- reactjs - 在 React Router 中使用自定义路由器开关
- c++ - 一个无效参数被传递给一个认为无效参数致命的函数?
- python - 我是否将此 MATLAB 模拟波形代码正确转换为 Python?
- groovy - 如何在groovy IF语句中将表达式与字符串进行比较