如何在提交时终止会话?

时间:2017-12-29 22:30:24

标签: php html

如果有人按下提交按钮,我的会话应该终止,但不会被删除!

我如何更改以下代码?

这是我的代码:

if(!empty($_POST['email']) && isset($_SESSION['history'])) { 
        $sql = "INSERT INTO newsletter (email,timestamp,history) VALUES 
        ('$email','$timestamp','$history')";   
        if(mysqli_query($db,$sql) && mysql_affected_rows() > 0) {
              session_start();
              session_unset();
              if(isset($_COOKIE["PHPSESSID"])) {
                  setcookie("PHPSESSID","",time()-86400);
              }
              session_destroy();
         }    
}

这是一个包含 文件,这是包含文件的代码:

<?php
session_start();
include_once "zugrif.inc.php";
include "sessiontracker.inc.php";
include "historymaker.inc.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
  <form action='newsletter.php' method='post'>
  <input type='text' name='email'>
  <input type='submit' value='Absenden'>
  </form>
  </body>
</html>

2 个答案:

答案 0 :(得分:0)

这是我的php注销功能:

function logout()
{


// unset any session variables
$_SESSION = array();

// expire cookie
if (!empty($_COOKIE[session_name()]))
{
    // setcookie(session_name(), "", time() - 42000);
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
            $params["path"], $params["domain"],
            $params["secure"], $params["httponly"]
            );
}



// destroy session
session_destroy();

}

答案 1 :(得分:0)

此后,我发现了我要查找的错误。

问题是我忘记了mysqli_affected_rows的参数。正确的语法是:

 mysqli_affected_rows($ db)