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( )SESSION変数を割り当てた後、一番下に配置しました

この関数をページの上部に配置し、下部から削除します。

于 2013-02-15T12:30:02.460 に答える
2

session_start( ); セッションを使用する前に使用する必要があります

于 2013-02-15T12:28:56.113 に答える
0

コードの上部に配置する必要がありsession_start()ます。これは、コードの下部にすべての$_SESSION変数が宣言されていないため、値を返さないためです。1つsession_start()は上部にあり、グローバル$_SESSION変数を取得し、それらを設定することもできます。config.phpを持っているというスクリプトを作成し、毎回session_start()追加するのではなく、すべてのスクリプトに含めることをお勧めします。 これがお役に立てば幸いです:Dsession_start()

于 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 に答える