快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

一个登录的类

<?
/*
* 名称:CnkknD PHP Login Class
* 描述:PHP用于登录的类,基于MySQL
* 作者:Daniel King,cnkknd@163.com
* 日期:2003/8/25
*/

class Login
{
var $username; //用户名
var $userpass; //密码
var $userid; //用户id
var $userlevel; //用户级别

var $authtable="account"; //验证用数据表

var $usecookie=true; //使用cookie保存sessionid
var $cookiepath=\\\'/\\\'; //cookie路径
var $cookietime=108000; //cookie有效时间

var $err_mysql="mysql error"; //mysql出错提示
var $err_username="username invalid"; //用户名无效提示
var $err_user="user invalid"; //用户无效提示(被封禁)
var $err_password="password error"; //密码错误提示

var $err; //出错提示

var $errorreport=false; //显示错误

function Login($dbserv,$dbport,$dbuser,$dbpass,$dbname) //构造函数,连接数据库
{
if(@mysql_pconnect($dbserv.":".$dbport,$dbuser,$dbpass))
{
mysql_select_db($dbname);
}
else
{
$this->errReport($this->err_mysql);
$this->err=$this->err_mysql;
}
}

function isLoggedin() //判定是否登录
{
if(isset($_COOKIE[\\\'sid\\\'])) //假如cookie中保存有sid
{
session_id($_COOKIE[\\\'sid\\\']);
session_start();
$this->username=$_SESSION[\\\'username\\\'];
$this->userid=$_SESSION[\\\'userid\\\'];
$this->userlevel=$_SESSION[\\\'userlevel\\\'];
return true;
}
else //假如cookie中未保存sid,则直接检查session
{
session_start();
if(isset($_SESSION[\\\'username\\\']))
return true;
}
return false;
}

function userAuth($username,$userpass) //用户认证
{
$this->username=$username;
$this->userpass=$userpass;
$query="select * from `".$this->authtable."` where `username`=\\\'$username\\\';";
$result=mysql_query($query);
if(mysql_num_rows($result)!=0) //找到此用户
{
$row=mysql_fetch_array($result);
if($row[\\\'bannd\\\']==1) //此用户被封禁
{
$this->errReport($this->err_user);
$this->err=$this->err_user;
return false;
}
elseif(md5($userpass)==$row[\\\'userpass\\\']) //密码匹配
{
$this->userid=$row[\\\'id\\\'];
$this->userlevel=$row[\\\'userlevel\\\'];
return true;
}
else //密码不匹配
{
$this->errReport($this->err_password);
$this->err=$this->err_password;
return false;
}
}
else //没有找到此用户
{
$this->errReport($this->err_username);
$this->err=$this->err_username;
return false;
}
}

function setSession() //置session
{
$sid=uniqid(\\\'sid\\\'); //生成sid
session_id($sid);
session_start();
$_SESSION[\\\'username\\\']=$this->username; //给session变量赋值
$_SESSION[\\\'userid\\\']=$this->userid; //..
$_SESSION[\\\'userlevel\\\']=$this->userlevel; //..
if($this->use_cookie) //假如使用cookie保存sid
{
if(!setcookie(\\\'sid\\\',$sid,time()+$this->cookietime,$this->cookiepath))
$this->errReport("set cookie failed");
}
else
setcookie(\\\'sid\\\',\\\'\\\',time()-3600); //清除cookie中的sid
}

function userLogout() //用户注销
{
session_start();
unset($_SESSION[\\\'username\\\']); //清除session中的username
if(setcookie(\\\'sid\\\',\\\'\\\',time()-3600))
//清除cookie中的sid
return true;
else
return false;
}

function errReport($str) //报错
{
if($this->error_report)
echo "ERROR: $str";
}
}
?>
mysql中表的结构


代码:
CREATE TABLE `account` (
`id` bigint(20) NOT NULL auto_increment,
`username` varchar(255) NOT NULL
使用一例


PHP代码:
<?
include "../myclasses/Login.php";
$dbserv="localhost";
$dbport="3306";
$dbuser="root";
$dbpass="123456";
$dbname="test";



返回类别: 教程
上一教程: 一个基于mysql的登陆验证程序(一)
下一教程: 网页推荐:PHP4.03在linux下的安装

您可以阅读与"一个登录的类"相关的教程:
· 第三节--定义一个类 -- PHP5的类与对象 [3]
· 一个解析mp3 ID3 tag 和 MPEG 信息的类(来自zend.com),实际应用请看这里http://feifei2.bjedu.gov.cn...
· 一个浏览器检查类
· 能把汉字转化为拼音的一个函数
· 一个基于mysql的登陆验证程序(三)
    微笑服务 优质保证 索取样品