付款成功后会自动销毁

时间:2015-09-01 05:23:09

标签: php

我正在做一个小项目,因为我在会话中有用户数据。在中间,用户将进行付款,在付款成功后,会话将自动销毁。

现在无法从会话中获取用户数据。 (如何在不使用COOKIES的情况下实现这一目标)。

注意:我尝试过使用:

header('Access-Control-Allow-Origin: *');    

但没用。

2 个答案:

答案 0 :(得分:0)

您好这是PHP手册中的一个示例,我希望它可能有所帮助。首先通过session_start()开始你的会话;一旦你的所有交易完成,就会通过session_destroy();

来销毁
 <?php
    // Initialize the session.
    // If you are using session_name("something"), don't forget it now!
    session_start();

    // Unset all of the session variables.
    $_SESSION = array();

    // If it's desired to kill the session, also delete the session cookie.
    // 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();
    ?>

答案 1 :(得分:0)

$_SESSION是一个特殊的数组,用于存储用户在访问您的网站或Web应用程序时所做的页面请求中的信息。 虽然可能有许多用户同时访问该站点,每个用户都有自己的会话,但这要归功于PHP为每个会话分配和管理的唯一ID,允许每个用户的会话仅供他自己使用。会话信息存储在服务器而不是用户的计算机上(存储cookie数据),这使得会话比传统cookie更安全,可以在页面请求之间传递信息。

使用会话

在您可以在会话中存储信息之前,您必须启动PHP的会话处理。这是在PHP代码的开头完成的,必须在将任何文本,HTML或JavaScript发送到浏览器之前完成。要开始会话,请在第一个文件中调用session_start()函数:

<?php
 // start the session
 session_start();
 // store session data
 $_SESSION["username"] = "Qateel";

session_start()启动用户与服务器之间的会话,并允许稍后在其他脚本中访问存储在$_SESSION中的值。

在您的第二个文件中,您再次致电session_start(),此时会继续会话,然后您可以从$_SESSION检索值。

<?php
 // continue the session
 session_start();
// retrieve session data
echo "Username = " . $_SESSION["username"];

结束会话

重要的是开始一个会话,所以结束一个会议。尽管会话只是存储数据的临时方式,但在处理潜在的敏感信息时,自行清理以确保最大安全性非常重要。这也是一种很好的做法,可以避免服务器上存在大量陈旧的会话数据。

要删除单个会话值,请使用unset()功能:

<?php
  session_start();
  // delete the username value
  unset($_SESSION["username"]);

要取消设置所有会话的值,可以使用session_unset()函数:

<?php
 session_start();
 // delete all session values
 session_unset();

这两个示例仅影响会话中存储的数据,而不影响会话本身。如果您愿意,在调用之后,您仍然可以将其他值存储到$_SESSION。如果您希望完全停止使用会话,例如用户注销,则使用session_destroy()功能。

<?php
 session_start();
 // terminate the session
 session_destroy();

一些提示

尽管简单,但仍有使用会话的方法可能出错。

如果您正在与登录到您的网站或应用程序的用户打交道,则计时会话是一项非常重要的操作。

if (isset($_SESSION["timeout"])) {
   // calculate the session's "time to live"
   $sessionTTL = time() - $_SESSION["timeout"];
   if ($sessionTTL > $inactive) {
      session_destroy();
      header("Location: /logout.php");
   }
}

使用数据库在您知道数据将持久存在的最早时刻存储数据;不要让它作为会话的一部分长时间停留,因为这会打开可能的攻击。<​​/ p>

一旦您不再需要使用会话,请使用session_destory()

您可能希望通过: