1

我已经坐在这里思考了整整 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" );

任何机会你可以看到什么是错的?

每个人都提到我有我的 session_start(); 在错误的地方,但回声的打印什么都没有,任何地方都绝对没有错误。

4

5 回答 5

3

您在最后调用 session_start() 而不是在进行会话检查之前

于 2013-02-15T12:28:03.350 回答
2

session_start( ); 它应该在会话使用之前使用

于 2013-02-15T12:28:56.113 回答
2

在您分配 SESSION 变量之后,您已将其放在session_start( )底部

将此功能放在页面顶部并从底部删除。

于 2013-02-15T12:30:02.460 回答
0

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

于 2013-02-15T12:40:08.283 回答
0
<?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" );
?>

我已经为你修复了你的代码。

于 2013-02-15T12:41:30.407 回答