用户使用php/javascript登录
我有一个php脚本,我通过ajax调用它来初始化用户登录的会话变量。当我稍后检索会话信息时,它似乎不在那里。这里面缺少什么。我必须说,我假设$u会话变量在那里。我以前没做过 在数据库中搜索用户并初始化会话变量的PHP代码用户使用php/javascript登录,php,javascript,Php,Javascript,我有一个php脚本,我通过ajax调用它来初始化用户登录的会话变量。当我稍后检索会话信息时,它似乎不在那里。这里面缺少什么。我必须说,我假设$u会话变量在那里。我以前没做过 在数据库中搜索用户并初始化会话变量的PHP代码 while (true) { $md5_pw = md5($password_text); $r_getuser = mysql_query("SELECT * FROM users WHERE (user_name = BINARY '".mysql_real
while (true) {
$md5_pw = md5($password_text);
$r_getuser = mysql_query("SELECT * FROM users WHERE (user_name = BINARY '".mysql_real_escape_string($l_un_em)."' OR email = '".mysql_real_escape_string($l_un_em)."') AND (password = '$md5_pw' OR temp_password = '$md5_pw') AND status >= 0");
if (mysql_num_rows($r_getuser) == 0) {
/* echo $messages['log_un_em_pw_incorrect'];
return; */
$return['return_code'] = -1;
$return['return_msg'] = $messages['log_un_em_pw_incorrect'];
echo json_encode($return);
}
$row = mysql_fetch_assoc($r_getuser);
/* if ($row['privs'] < 1) { echo $messages['log_no_privs']; break; } */
if ($row['temp_password'] == $md5_pw) { //new password
mysql_query("UPDATE users SET password = '".$md5_pw."', temp_password = NULL WHERE user_id = '{$row['user_id']}'");
}
$today = date('Y-m-d');
if ($row['login_0'][0] == '9') { //first login
mysql_query("UPDATE users SET login_0 = '".$today."', login_1 = '".$today."', login_cnt = 1 WHERE user_id = '{$row['user_id']}'");
} else {
mysql_query("UPDATE users SET login_1 = '".$today."', login_cnt = login_cnt+1 WHERE user_id = '{$row['user_id']}'");
}
$_SESSION['uid'] = $row['user_id'];
$_SESSION['unm'] = stripslashes($row['user_name']);
$_SESSION['uml'] = stripslashes($row['email']);
$_SESSION['cL'] = $row['language'];
/* echo '<meta http-equiv="refresh" content="0;url=livemass_CENTER34.php">'; */ //default page
break;
}
检索会话变量的PHP代码
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
echo 'user id '.$_SESSION['uid'].'<br/>';
echo 'username '.$_SESSION['unm'].'<br/>';
echo 'uml '.$_SESSION['uml'].'<br/>';
echo 'cL '.$_SESSION['cL'].'<br/>';
?>
Javascript来显示会话信息
$.ajax({
url: "get_session_info.php",
type: "GET",
data: {},
cache: false,
async: false,
success: function (response) {
alert ('session info response <br/>'+response);
},
});
向所有访问会话变量值的文件添加会话\u start
<?php
session_start();
ini_set('display_errors', 1);
// remaining items
?>
以@Frits所说的为基础。要使用php会话,必须将函数session_放入start;在要访问$\u会话的每个页面的开头。我看不到会话开始;任何地方?请发布整个php代码,而不是代码片段。。你确定你在开始时添加了会话吗?如果您打算使用$\u session,则应在每个页面上添加它。请停止使用古老的mysql函数编写新代码。它们不再得到维护,社区已开始恢复。相反,你应该学习并使用或。如果你想学习,这是一个相当好的PDO相关教程。这似乎是一个重复的问题;请看一看:@tereško,如果PDO是一种健全的语言,是对MySQL的改进,我愿意学习!快速提问。。。MySQL允许您选择独立于连接的数据库,即您使用MySQL\u connect连接,然后使用MySQL\u select\u db选择一个数据库。PDO中有类似的方法吗?太好了。这就是问题所在!