Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/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_Mysql_Session - Fatal编程技术网

Php 登录功能似乎无法正常运行

Php 登录功能似乎无法正常运行,php,mysql,session,Php,Mysql,Session,我已经坐在这里思考了整整30分钟了,我只是不知道出了什么问题 我添加了打印,但它似乎没有正确地联系数据库,或者没有正确地从数据库中提取数据 $conf['sql_host'] = 'localhost'; $conf['sql_user'] = 'root'; $conf['sql_pass'] = ''; $conf['sql_data'] = 'c_webauth'; mysql_connect( $conf['sql_host'], $conf['sql_user'], $con

我已经坐在这里思考了整整30分钟了,我只是不知道出了什么问题

我添加了打印,但它似乎没有正确地联系数据库,或者没有正确地从数据库中提取数据

$conf['sql_host'] = 'localhost';
$conf['sql_user'] = 'root';
$conf['sql_pass'] = '';
$conf['sql_data'] = 'c_webauth';

    mysql_connect( $conf['sql_host'], $conf['sql_user'], $conf['sql_pass'] ) or die( 'Connection failed: '.mysql_error() );
    mysql_select_db( $conf['sql_data'] );



function login( $user, $pass ){

    session_regenerate_id();
        if ( isset( $_SESSION['user_id'] ) ) {
            unset( $_SESSION['user_id'] );
        }

        $qry = mysql_query( "SELECT user_id, user, user_group, user_name FROM c_users where user='$user' AND pass='".md5($pass)."'" );

        if ( mysql_num_rows( $qry ) > 0 ) {
            session_regenerate_id();

            while ( $data = mysql_fetch_array( $qry ) ) {
                $_SESSION['user_id'] = $data['user_id'];
                $_SESSION['user_group'] = $data['user_group'];
                $_SESSION['user'] = $data['user'];
                $_SESSION['user_name'] = $data['user_name'];

                // Debug
                echo $_SESSION['user_id'];
                echo $_SESSION['user_group'];
                echo $_SESSION['user'];
                echo $_SESSION['user_name'];

                session_start( ); 
            }
        }
}

login( "username", "password" );
你有没有可能看出哪里出了问题


每个人都提到我的课程已经开始了;在错误的位置,但echo没有打印任何内容,在任何地方都绝对没有错误。

您在执行会话检查之前调用会话\u在末尾启动

您在执行会话检查之前调用会话\u在结尾启动

;它应该在会话使用前使用

会话启动;它应该在会话使用之前使用

在分配会话变量之后,将会话开始放在底部

将此函数放在页面顶部并从底部删除。

在分配会话变量后,您已将会话\u start放在底部

将此函数放在页面顶部并从底部删除。

您需要将session\u start放在代码的顶部,因为它位于底部,所有$\u session变量都未声明,因此它们不会返回值。一个session\u start位于顶部,您将获得全局$\u session变量,并且还可以设置它们。我建议您创建一个名为config.php的脚本,该脚本具有session\u start,您可以将其包含在所有脚本中,而不是每次都添加session\u start。 希望这对您有所帮助:D

您需要将session\u start放在代码的顶部,因为它位于底部,所有$\u session变量都未声明,因此它们不会返回值。一个session\u start位于顶部,您将获得全局$\u session变量,并且还可以设置它们。我建议您创建一个名为config.php的脚本,该脚本具有session\u start,您可以将其包含在所有脚本中,而不是每次都添加session\u start。
<?php
session_start();

$conf['sql_host'] = 'localhost';
$conf['sql_user'] = 'root';
$conf['sql_pass'] = '';
$conf['sql_data'] = 'c_webauth';

    mysql_connect( $conf['sql_host'], $conf['sql_user'], $conf['sql_pass'] ) or die( 'Connection failed: '.mysql_error() );
    mysql_select_db( $conf['sql_data'] );



function login( $user, $pass ){

    session_regenerate_id();
        if ( isset( $_SESSION['user_id'] ) ) {
            unset( $_SESSION['user_id'] );
        }

        $qry = mysql_query( "SELECT user_id, user, user_group, user_name FROM c_users where user='$user' AND pass='".md5($pass)."'" );

        if ( mysql_num_rows( $qry ) > 0 ) {
            session_regenerate_id();

            while ( $data = mysql_fetch_array( $qry ) ) {
                $_SESSION['user_id'] = $data['user_id'];
                $_SESSION['user_group'] = $data['user_group'];
                $_SESSION['user'] = $data['user'];
                $_SESSION['user_name'] = $data['user_name'];

                // Debug
                echo $_SESSION['user_id'];
                echo $_SESSION['user_group'];
                echo $_SESSION['user'];
                echo $_SESSION['user_name'];


            }
        }
}

login( "username", "password" );
?>
希望这能帮助你:D

<?php
session_start();

$conf['sql_host'] = 'localhost';
$conf['sql_user'] = 'root';
$conf['sql_pass'] = '';
$conf['sql_data'] = 'c_webauth';

    mysql_connect( $conf['sql_host'], $conf['sql_user'], $conf['sql_pass'] ) or die( 'Connection failed: '.mysql_error() );
    mysql_select_db( $conf['sql_data'] );



function login( $user, $pass ){

    session_regenerate_id();
        if ( isset( $_SESSION['user_id'] ) ) {
            unset( $_SESSION['user_id'] );
        }

        $qry = mysql_query( "SELECT user_id, user, user_group, user_name FROM c_users where user='$user' AND pass='".md5($pass)."'" );

        if ( mysql_num_rows( $qry ) > 0 ) {
            session_regenerate_id();

            while ( $data = mysql_fetch_array( $qry ) ) {
                $_SESSION['user_id'] = $data['user_id'];
                $_SESSION['user_group'] = $data['user_group'];
                $_SESSION['user'] = $data['user'];
                $_SESSION['user_name'] = $data['user_name'];

                // Debug
                echo $_SESSION['user_id'];
                echo $_SESSION['user_group'];
                echo $_SESSION['user'];
                echo $_SESSION['user_name'];


            }
        }
}

login( "username", "password" );
?>
我已经为你修改了密码



我已经为您修复了代码。

在回显和设置会话变量之前启动会话?始终在页面最上方调用会话启动为什么要启动会话;在底部,在您分配了会话变量之后?如果这是一个新的应用程序,并且您将要更新您的PHP版本,那么您应该停止使用mysql_uu函数,并开始使用mysqli_uuu或PDO。如果您检查web服务器日志,我肯定您会在其中遇到有关会话变量的错误,所述错误是在回显和设置会话变量之前停止scriptsession_start?始终在页面顶部调用session_start为什么要启动会话;在底部,在您分配了会话变量之后?如果这是一个新的应用程序,并且您将要更新您的PHP版本,那么您应该停止使用mysql_uu函数,并开始使用mysqli_uuu或PDO。如果您检查web服务器日志,我肯定您会在其中遇到有关会话变量的错误,并且说错误是停止你的脚本似乎不起作用,我没有收到任何SQL错误,数据是从数据库中提取的。有什么想法吗?页面上有任何错误,或者目录中的error.log中有任何错误吗?我有错误报告;ini_设置“显示错误”、“打开”;也设置了,但没有出现任何问题。您是否尝试在其他主机上运行它?我的代码在一个主机上完全没有显示错误,但在另一个主机上显示了一些错误。似乎不起作用,我没有收到SQL错误,数据是从数据库中提取的。有什么想法吗?页面上有任何错误,或者目录中的error.log中有任何错误吗?我有错误报告全部;ini_设置“显示错误”、“打开”;也设置了,但没有出现任何问题。您是否尝试在其他主机上运行它?我有一个代码,在一个主机上完全没有显示错误,但在另一个主机上显示了一些错误。谢谢你的建议,我会保留在我的嘿,如果我解决了你的问题,别忘了给我一个绿色的记号;谢谢你的建议,我会把它记在心里的嘿,如果我解决了你的问题,别忘了给我一个绿色的记号;