我有一个包含SS号码的表格。我已完成所有安全/注入,垃圾邮件和验证内容,因为它未包含在问题中。
基本上我想在表单通过电子邮件发送用户和代理后销毁会话数据。然后擦拭服务器。
我是否在表格的最后一页上这样做?
注意事项:
第1页用户将输入所有数据。
第2页使用会话将数据输入到用户点击提交按钮的确认页面,邮件程序将邮件发送到第3页成功页面
从技术上讲,一旦数据到达第2页,我就不再需要会话了
<form id="form_958713" class="appnitro" method="post" action="mailer.php
<?php
// Initialize the session.
session_start();
// Unset all of the session variables.
$_SESSION = array();
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
?>
">
或者我是否在邮件本身上这样做? 片段:
// gives success or error
if(!$mail->Send()) {
echo 'Message could not be sent.';
exit;
}
echo '
<meta http-equiv="refresh" content="0;url=http://www.website.com/GetaQuoteSuccess.php">
';
// Initialize the session.
session_start();
// Unset all of the session variables.
$_SESSION = array();
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
?>
用代码擦除会话的最佳方法/地点是什么?
答案 0 :(得分:0)
如果你真的需要销毁整个会话,那么在主脚本
的末尾进行答案 1 :(得分:0)
销毁会话是一个非常糟糕的主意。在这个网站中,这两个页面可能是你使用$ _SESSION的唯一地方,但通常它用于很多东西。
而是尝试这个概念: -
Form1.php(从用户捕获数据的表单)
just posts data to form2.php
Form2.php
<?php
$session_start()
// validate $_POST of course, and once valid
$_SESSION['post_data'] = $_POST
// other code
header('Location: form3.php');
exit;
?>
Form3.php
<?php
session_start();
// use $_SESSION['post_data']['field1'] etc however you want
. . .
// at end of script if you no longer want this data
unset($_SESSION['post_data']);
// the post-data array will no longer exists in $_SESSION
// **But other data in $_SESSION is still there**
哦但是使用unset($_SESSION);
有龙