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

时间:2013-02-15 12:24:03

标签: 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'], $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();在错误的地方,但回声没有打印,绝对没有任何错误。

5 个答案:

答案 0 :(得分:3)

在进行会话检查之前,你在最后调用session_start()

答案 1 :(得分:2)

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

答案 2 :(得分:2)

在分配了SESSION变量

之后,您已将session_start( )置于底部

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

答案 3 :(得分:0)

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

答案 4 :(得分: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" );
?>

我已为您修复了代码。