Loading...

php初级教程:13.网站用户登录

2007-06-23 19:08:40 发表于PHP, 网站技术 本文链接: php初级教程:13.网站用户登录

友情提示,无法找到前面的教程,请本站站内搜索“php初级教程:1” 或者 “php初级教程”,不要引号。

今天的内容是登录,前面的教程已经讲了登录的原理的方式,这里开始用PHP来实现,首先我们来制作登录表单,在sample/user/目录下建立 login.php,account.php,其中 account.php是登录成功之后定向的页面,下面是account.php的代码:
< ?php
session_start();
if($_SESSION['USER_OBJ'] =='') header("location:login.php");
//如果session不存在,表示用户未登录
//则重新定向到登录页面
echo "当前登录ID ".$_SESSION['USER_OBJ']->user_name."
";
echo "当前登录name ".$_SESSION['USER_OBJ']->user_true_name;
?>

下面是login.php代码,相关的说明在php注释里面
< ?php
session_start();
require_once('../inc/config.php');//包含配置文件
$conn = mysql_pconnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS)
or die('连接数据库失败');
mysql_select_db(DB_NAME);

if( $_POST['sbbt'] != '' ){
//如果用户提交了数据
//我们就开始处理用户登录
//首先检查数据库中有没有重复数据
$sql = " SELECT * From ".USER_BASE." WHERE user_name='".htmlspecialchars($_POST['user_name'])."' AND user_pass='".htmlspecialchars($_POST['user_pass'])."' limit 0,1";
//上面SQL的意思就是从数据库中查找用户名和密码都和你输入相同的记录
//如果存在则登录成功
//htmlspecialchars是过滤用户的输入,放置用户输入HTML或者其他带有攻击可能的代码,
//
$res = mysql_query($sql ,$conn);
$obj = mysql_fetch_object( $res );
if( $obj->user_id ){
//如果数据库中已经有人使用此用户名
//登录成功
$_SESSION['USER_OBJ'] = $obj;
//将obj传递给session
//这样今后在任何页面就可以引用session了
//譬如后面的account.php
header("location:account.php");
}
else{
//如果登录失败
$errorMsg = "用户不存在或者密码错误!";
}
}
?>

< ?php echo $errorMsg;//显示出错信息 ?>


我测试的时候发现了一个问题,报错如下:
session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at F:\www\sample\user\login.php:1) in F:\www\sample\user\login.php on line 2
记住,今后凡是遇到“ headers already sent”这样的问题,请检查php中,”header(location”或者session_start()等代码前面是不是有输出,或者有多余的空格,当然这个空格出现在php标签外才算是真正将会输出的空格,所以请检查本教程给你的例子中的config.php文件

另外还有个问题就是regist.php中的.$_POST['user_tru_name']改成.$_POST['user_true_name'],并且将所有的post的数组都进行html标签过滤,即把 $_POST['T'] 改成 htmlspecialchars($_POST['T']).

到此为止,用户登录已经完成,通过account.php你应该可以清楚的知道了用户登录后如何获取用户信息了,并且也应该知道在文件中如何防止未登录用户的进入了,周末愉快。

该日志未加标签
发表于 2007-06-23 19:08:40 目录:PHP, 网站技术 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    feed url
    上一篇: « 谈谈考研
    板凳还空着的
    评论分页: 1
    (Required)
    (Required, not published)
    如果留言未显示无需重复留言,我将为你恢复!