重定向到感谢页面后SESSION值没有传递 [英] SESSION value not passing after redirection to the thank you page

查看:87
本文介绍了重定向到感谢页面后SESSION值没有传递的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试传递 $ email 字段,感谢用户提交查询表单后重定向后显示的页面。

I am trying to pass $email field to thank you page which appears after redirection once user submits the enquiry form.

这是一个2步的查询表格,感谢你的页面是最后一个。

Its a 2 step enquiry form with thank you page being last.

似乎SESSION在感谢页面上有效,但值丢失了。我想在感谢页面上发布 $ email 字段到iframe。请告诉我会话ID的确切位置?

It seems like the SESSION is live on thank you page however the values are lost. I'd like to get $email field posted on the thank you page to an iframe. Please let me know where exactly the session id is going wrong?

以下是代码:

第1步:小型咨询表格

 <?php 
 error_reporting(0);
 session_start();
 require_once('validation.class.php');
 if(isset($_REQUEST['btnSubmit']) == 'Next'){
 $obj = new validation();
 $obj->add_fields(trim($_POST['txt_fname']), 'req', 'Enter your first name.');
 $obj->add_fields(trim($_POST['txt_contact']), 'req', 'Enter phone number.');
 $obj->add_fields(trim($_POST['txt_finamount']), 'req', 'Enter the amount.');
 $obj->add_fields(trim($_POST['sel_loantype']), 'req', 'Please select vehicle type.');



$error = $obj->validate();



if($error){

            $error_msg =  "".$error."";     

            $_SESSION['error_msgs'] = $error_msg;

            header("location:".$_SERVER['HTTP_REFERER']."");

            exit(); 

}else{



             $_SESSION['form1data'] = $_REQUEST;

             header("location: quick-quote.php");

             exit();



            /*$fname = trim($_REQUEST["txt_fname"]);

            $surname = trim($_REQUEST["txt_surname"]);

            $phone = trim($_REQUEST["txt_contact"]);

            $finamount = trim($_REQUEST['txt_finamount']);

            $sel_loantype = trim($_REQUEST['sel_loantype']);



            $message = '<html><body>';

            $message .= '<table rules="all"  width="100%" style="border:1px solid #666;" cellpadding="10">';

            $message .= "<tr><td><strong>First Name:</strong> </td><td>" . strip_tags($fname) . "</td></tr>";

            if($surname != ''){

            $message .= "<tr><td><strong>Surname:</strong> </td><td>" . strip_tags($surname) . "</td></tr>";

            }

            $message .= "<tr><td><strong>Phone:</strong> </td><td>" . strip_tags($phone) . "</td></tr>";

            $message .= "<tr><td><strong>Amount to Finance:</strong> </td><td>" . strip_tags($finamount) . "</td></tr>";

            $message .= "<tr><td><strong>Loan Type:</strong> </td><td>" . strip_tags($sel_loantype) . "</td></tr>";

            $message .= "</table>";

            $message .= "</body></html>";





            $ToEmail       = 'testemail@gmail.com'; 

            $EmailSubject  = "GET A QUICK QUOTE from ".strip_tags($fname); 

            $mailheader    = "From: ".strip_tags($fname)."\r\n"; 

            //$mailheader   .= "Reply-To: ".$_REQUEST["txt_email"]."\r\n"; 

            $mailheader   .= "Content-type: text/html; charset=iso-8859-1\r\n";

            $MESSAGE_BODY  = $message;



            if(@mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader)){

                  $_SESSION['sucess'] = "Your message has been sent successfully.";

                  $_SESSION['form1data'] = $_REQUEST;

                  header("location: quick-quote.php");

                  exit; 

            }else{

                  $_SESSION['sucess'] = "Sorry! Your message has not been sent.";

                  $_SESSION['form1data'] = $_REQUEST;

                  header("location: quick-quote.php");

                  exit; 

            }*/

}



 } 



 ?>

第2步代码:

 <?php 
 error_reporting(0);
 session_start();
 require_once('validation.class.php');
 ?>
 <script type="text/javascript">
 function submitToCRM()
 {
 $.ajax({
      type: 'POST',
      url: 'http://test.com.au/quick-quote/car-finance/quickquote-one.php',
      data: $("#applynowform").serialize(),
      beforeSend: function () {
                                 $("#loadingimg").show();
                              }, 
      success: function (){
        //alert(data);
         window.location.href = "http://www.test.com.au/thank-you";  
      }
});         

步骤3:上面的页面将数据发送到quickquote-one.php表单处理脚本,该脚本具有以下代码。

Step 3: The above page sends data to quickquote-one.php form processing script which has below code.

 <?php
 if(!isset($_SESSION)) 
 { 
  session_start(); 
 } 
 $_SESSION['user_email'] = $_POST['email'];

第4步:感谢页面(此页面包含以下代码)

Step 4: thank you page (this page has below code)

 <?php
 if(!isset($_SESSION)) 
 { 
 session_start(); 
 $_SESSION['user_email'] = $_POST['email'];
 echo $_SESSION['user_email'];
 } 
 ?>


推荐答案

我认为最好在一个会议中开始会议页面并访问所有会话变量throghout如果所有页面都相互连接。这将是我们创建登录页面的一些事情。当用户登录捕获时会在会话中输出所需的值,即使在刷新后也可以通过应用程序访问。

i think it is better to start a session in one page and access all the session variables throghout if all the pages are connected to eachother. it will be some thing like we create login page. When user logs in capture alll the required values in a session and can be accessed through out the application even after refresh.

$query = "SELECT Useid,UserName,AccountStatus, FullName FROM Users WHERE UserName = :UserName"; 

从这个查询我们可以轻松获得会话变量。

from this query we can get the session variables easily.

 if($login_ok) 
        { 

             //for last visit
            $Month = 2592000 + time(); 
 //this adds 30 days to the current time 
 setcookie(AboutVisit, date("F jS - g:i a"), $Month);
 //last visit ends here.

            $_SESSION['user'] = $row['UserName']; 
            $_SESSION['userid'] = $row['Useid'];
            $_SESSION['fullname'] = $row['FullName'];
            }

你需要这样的变量你可以像这样使用

where ever you need th variable you can use like this

$username=$_SESION['user'];

我认为每次在每个页面中这都会有效,而不是启动会话。
希望有帮助

I think this will work instead of startign session every time in each page. Hope it helps

这篇关于重定向到感谢页面后SESSION值没有传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆