-1

以下のコードの何が問題になっているのかを調べようとしています。InternetExplorerを使用してログアウトしようとすると、それができませんでした。数回リロードした後、またはブラウザを閉じた後にのみログアウトします。

 <?php
//Start session 
session_start();
require("../../class-settings.php");
function write_at_sess_destroy(){
    $time=date('h:i:s A',time());
    $sql="update " . DB_PRE."user_master set `guid` = '',`user_first_login`='0' WHERE user_id ='".  $_SESSION['user']."'";
    $sql_log= "update " . DB_PRE."user_log set logout_time='$time' where user_id='{$_SESSION['user']}' and logger_id='{$_SESSION['DYNAMIC_LOGGER_ID']}'";       
    if(mysql_query($sql))if(mysql_query($sql_log)) return true;
}
if(write_at_sess_destroy()){
    function unset_sessions(){
        session_start();
        if($_SESSION['adminlang'])unset($_SESSION['adminlang']);
        unset($_SESSION['loginID']);
        unset($_SESSION['utype']);
        return true;
    }
    if(session_destroy()){
        header("Location:../../../");
        exit;
    }
    else{
        echo "error...";    
    }
}
?>
4

1 に答える 1

0

単純化できない理由:

<?php
    session_start();
    require("../../class-settings.php");
    function write_at_sess_destroy(){
        $time=date('h:i:s A',time());
        $sql = "update " . DB_PRE."user_master set `guid` = '',`user_first_login`='0' WHERE user_id ='".  $_SESSION['user']."'";
        $sql_log = "update " . DB_PRE."user_log set logout_time='$time' where user_id='{$_SESSION['user']}' and logger_id='{$_SESSION['DYNAMIC_LOGGER_ID']}'";       
        if(mysql_query($sql))if(mysql_query($sql_log)) return true;
    }
    if(write_at_sess_destroy()){
        session_regenerate_id();
        session_destroy();
        $_SESSION = array();
        header("Location: ../../../");
        exit;
    } else {
        echo mysql_errno() . ": " . mysql_error() . "\n";
    }
?>
于 2012-09-14T07:17:18.997 に答える