我一直坐在这里思考这个问题好了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();在错误的地方,但回声没有打印,绝对没有任何错误。
答案 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" );
?>
我已为您修复了代码。