我只是想知道是否可以将表单数据存储为多页会话?
我的网站上有5个页面,每个页面都有一个带有输入字段的表单。
我想在所有5页上保存所有会话和输入值,并在最后一页上echo
。
我已经将session_start();
保存在一个文件中,并将其包含在每个页面中:
session_start.php
<?php
session_start();
?>
在<!DOCTYPE html>
之前的页面顶部,我在每个页面上都这样添加它:
第1页:
<?php
include("config.php");
require_once("session_start.php");
if (isset($_POST['submit'])) {
$_SESSION['email'] = $_POST['email'];
}
?>
然后在体内
<form action="" method"post">
<input type="text" name="email"/>
<input type="submit" name="submit" value="Enter" />
</form>
第2页:
<?php
include("config.php");
require_once("session_start.php");
if (isset($_POST['submit'])) {
$_SESSION['passwort'] = $_POST['passwort'];
}
?>
then in the Body again:
<form action="" method"post">
<input type="text" name="passwort"/>
<input type="submit" name="submit" value="Enter" />
</form>
我可以在第2页上回显email Session
,而不会出现以下问题:
<?php
echo $_POST["email"];
?>
但是如果我以与第1页相同的方式在页面Undefined index: passwort
上出现错误。
然后继续浏览其他3页,我的方式有什么问题?
使用此处的代码,我只能从前面的页面中保存会话,并echo
将其保存到下一页。
感谢您的光临!
答案 0 :(得分:1)
只要在每次新页面加载开始时成功调用session_start();
,就将向前存储先前存储的会话数据。
是的,您每次都需要将表单提交数据从$_POST
传输到$_SESSION
数组。
在第1页的此代码段之后
if (isset($_POST['email'])) {
$_SESSION['email'] = $_POST['email'];
}
您的会话将包含:
$_SESSION = ["email" => "example@email.com"];
然后在第2页的此代码段之后
if (isset($_POST['passwort'])) {
$_SESSION['passwort'] = $_POST['passwort'];
}
您的会话将包含:
$_SESSION = [
"email" => "example@email.com",
"passwort" => "p@$$w()rt"
];
依次类推,以供后续页面使用。
要检查数组中的内容时,只需调用var_export($_SESSION)
。
要访问特定元素时,请使用其键。
例如echo $_SESSION['passwort'];