我一直试图想出这个问题。
我使用jquery ajax post使用home.php上的会话变量将表单数据发送到thankyou.php,然后将用户重定向(window.location.href ='')到thankyou带有home.php表单数据的.php打印在thankyou.php上。
此外,将转移到thankyou.php的数据通过电子邮件发送给用户。
我试图这样做,以便用户不会在thankyou.php的末尾看到查询字符串。
每当我测试它时,我的会话数据都不会结转,但是当发送电子邮件时,它会包含所有数据。
有人可以告诉我,如果我做错了吗? jQuery可以将会话数据传递到php页面吗?
这是我的代码:
home.php
<?php
session_start();
?>
<script>
var formData = $('form').serialize();
$.post('thankyou.php', formData, function(){
$('form').submit();
window.location.href = '/thankyou.php;
});
</script>
thankyou.php
<?php
session_start();
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['phone'] = $_POST['phone'];
echo $_SESSION['name'];
echo $_SESSION['email'];
echo $_SESSION['phone'];
?>
答案 0 :(得分:1)
$('form').submit();
- 第一次调用,将$ _POST变量存储到$ _SESSION
window.location.href = '/thankyou.php;
- 第二次调用,用未定义的$ _POST替换$ _SESSION变量
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['phone'] = $_POST['phone'];
尝试这样的事情:
if(isset($_POST) && $_POST) {
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['phone'] = $_POST['phone'];
}
echo $_SESSION['name'];
echo $_SESSION['email'];
echo $_SESSION['phone'];
答案 1 :(得分:1)
window.location.href = '/thankyou.php;
在'
;
答案 2 :(得分:0)
您的会话没有错。您刚刚使用POST变量覆盖了会话变量。提交表单后,您的变量将无法正确发送。验证是否放置方法=&#34; POST&#34;在你的形式。