【发布时间】:2020-11-16 19:01:04
【问题描述】:
当我尝试在第一页上回显结果时,我没有让 PHP $_SESSION 工作。错误消息基本上表明变量未定义。
我要使用的路径:
- 第一页 = 表格 1
- 第二页 = 表格 2
- 返回第一页 = 表单 1,所有输入均来自上一次提交 + 文本中 2 个表单的所有数据。
这可能吗?
第 1 页 = index.php:
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<form action="overview.php" id="regForm" method="post">
<div class="tab">
<h2>1. Your info</h2>
<p><input type="text" placeholder="Prénom" name="fname" value="<?php echo htmlspecialchars($_SESSION['name']); ?>"></p>
<p><input type="text" placeholder="Nom" name="name" value="<?php echo htmlspecialchars($_SESSION['name']); ?>"></p>
<input type="submit" value="Valider">
</div>
</form>
<?php echo "Your name is :",$_SESSION['name'], "and your first-name is ", $_SESSION['fname'];?>
<?php echo "Your e-mail is :", $_SESSION['email'] ;?>
</body>
</html>
第 2 页 = 概览.php:
<?php session_start(); ?>
<?php
$_SESSION['fname'] = $_POST['fname'];
$_SESSION['name'] = $_POST['name'];
?>
<form action="index.php" id="regForm" method="post">
<h2>1. Tes informations personnelles</h2>
<p><input type="text" placeholder="e-mail" name="email"></p>
<input type="submit" value="Valider">
</form>
返回第 1 页 = index.php:
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<form action="overview.php" id="regForm" method="post">
<div class="tab">
<h2>1. Your info</h2>
<p><input type="text" placeholder="Prénom" name="fname" value="<?php echo htmlspecialchars($_SESSION['name']); ?>"></p>
<p><input type="text" placeholder="Nom" name="name" value="<?php echo htmlspecialchars($_SESSION['name']); ?>"></p>
<input type="submit" value="Valider">
</div>
</form>
<?php echo "Your name is :",$_SESSION['name'], "and your first-name is ", $_SESSION['fname'];?>
<?php echo "Your e-mail is :", $_SESSION['email'] ;?>
</body>
</html>
你们有没有发现任何阻止代码运行的问题?
【问题讨论】:
-
第一次访问 index.php 时当然没有设置这些值。
-
@CBroe 你的意思是我应该添加 $_SESSION['fname'] = $_POST['fname']; $_SESSION['name'] = $_POST['name'];到索引?
-
顺便说一句,如果我在第一页访问时没有获得价值,那也没关系。但我确实想在两次提交后得到它们……你明白我的意思吗?
-
不,
$_POST['fname']也不存在,当您第一次调用 index.php 时。在尝试访问它们之前,您应该检查这些条目是否已在会话中设置。 -
@CBroe 感谢您的提示!你知道我如何“检查这些条目是否在会话中设置”吗?
标签: php forms session multi-page-application