Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未调用PHP用户定义函数?_Php_User Defined Functions - Fatal编程技术网

未调用PHP用户定义函数?

未调用PHP用户定义函数?,php,user-defined-functions,Php,User Defined Functions,我有一个网页和一个会话检查文件,用于检查会话变量。我在需要的网页顶部添加了require'session\u check.php'。我还使用了echo来检查session\u check.php文件是否被调用 我在session_check.php中有一个函数,该函数在注销时被调用,但从未被调用。你能帮我一下吗?谢谢:) session\u check.php的代码 在第一个之后的代码开头使用会话\u start()我编写了下面的代码。参考这些代码,您将得到解决方案。如果要使用require()

我有一个网页和一个会话检查文件,用于检查会话变量。我在需要的网页顶部添加了
require'session\u check.php'
。我还使用了
echo
来检查
session\u check.php
文件是否被调用

我在session_check.php中有一个函数,该函数在注销时被调用,但从未被调用。你能帮我一下吗?谢谢:)

session\u check.php的代码


在第一个
之后的代码开头使用
会话\u start()
我编写了下面的代码。参考这些代码,您将得到解决方案。如果要使用require()方法从第一页调用第二页,只需在第一页调用require(secondpage url)并删除行会话\u start()在第二页

第一页(samplephp.php)


测试
第二页(session_check.php)


将session_start()设置为php代码中的第一行。但是,除非清理或参数化会话,否则您将面临SQL注入攻击inputs@OneManCrew那没用。@ozy你是说使用
mysql\u escape\u字符串($\u SESSION['authkey'])?我的意思是,您没有显示用于从用户处获取$uname的代码,但是从代码中可以明显看出,您没有使用准备好的语句。你在哪里用的。在session_check.php文件的顶部使用这个函数是的,我把它放在

<?php
    //Database Connection 
    $db_host = $_SERVER['DB_HOST'];
    $db_uname = $_SERVER['DB_UNAME'];
    $db_pwd = $_SERVER['DB_PWD'];
    $db_name = $_SERVER['DB_DB'];

    $db_link = mysql_connect($db_host,$db_uname,$db_pwd);
    if(!$db_link){
        die("Could Not Connect:".mysql_error($db_link));
    }
    mysql_select_db($db_name, $db_link) or die('Can\'t use db:'. mysql_error($db_link));

    //Logout function
    function user_logout($uname){
        $query = "UPDATE user SET last_used_token='' WHERE username='$uname'";
        mysql_close($db_link);
        session_destroy();
        header('Location:index.php');
        exit(); 
    }

    //Getting session variables
    session_start();
    session_regenerate_id();
    $cur_authkey = $_SESSION['authkey'];
    $uname = $_SESSION['username'];

    //Session data checking 

    $query = "SELECT last_used_token FROM user WHERE username='$uname'";
    $result = mysql_query($query, $db_link) or die('Error while updating auth key <br /> Query:'.$query.'MySQL error no:'.mysql_errno().'<br /> MySQL error:'.mysql_error($db_link));
    $row = mysql_fetch_assoc($result);

    if($cur_authkey != $row['last_used_token']){
        user_logout($uname);
    }   

?>
<?php
    require 'session_check.php';
    mysql_close($db_link);
?>
<!DOCTYPE html>
<html>.....</html>
<?php
session_start(); 
$_SESSION['host']="localhost";
$_SESSION['dbusername']="root";
$_SESSION['dbname']="userinfo";
$_SESSION['username']="testuser";
$_SESSION['authkey']="1";
?>

<!DOCTYPE html>
<html><head></head><body>test<form action="session_check.php"><input type="submit" value="click here"></form></body></html>
 <?php
    session_start(); 
        //Database Connection 
        $db_host = $_SESSION['host'];
        $db_uname =$_SESSION['dbusername'];
        $db_pwd = "";
        $db_name = $_SESSION['dbname'];

        $db_link = mysql_connect($db_host,$db_uname,$db_pwd);
        if(!$db_link){
            die("Could Not Connect:".mysql_error($db_link));
        }
        mysql_select_db($db_name, $db_link) or die('Can\'t use db:'. mysql_error($db_link));

        //Logout function
        function user_logout($uname,$db_link){
            $query = "UPDATE usertable SET flag=1 WHERE username='$uname'";
            mysql_query($query, $db_link);
            mysql_close($db_link);
           session_destroy();
           echo "success";
            //header('Location:index.php');
            exit(); 
        }

        //Getting session variables
        session_regenerate_id();
        $cur_authkey = $_SESSION['authkey'];
        $uname =$_SESSION['username'];
        //Session data checking 

        $query = "SELECT flag FROM usertable WHERE username='$uname'";
        $result = mysql_query($query, $db_link) or die('Error while updating auth key <br /> Query:'.$query.'MySQL error no:'.mysql_errno().'<br /> MySQL error:'.mysql_error($db_link));
        $row = mysql_fetch_assoc($result);
        if($cur_authkey != $row['flag']){
           user_logout($uname,$db_link);
        }    
    ?>