ホームページ >バックエンド開発 >PHPチュートリアル >php のログイン クラス [推奨]_PHP チュートリアル

php のログイン クラス [推奨]_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:55:49944ブラウズ

PHP コード:
* 名前: CnkknD PHP ログイン クラス
* 説明: MySQL に基づく PHP のログイン クラス
* 著者: Daniel King、cnkknd@163.com
* 日付: 2003/8 /25
*/

class ログイン
{
var $username; // パスワード
var $userid; // ユーザー ID
var $userlevel; account"; //検証用のデータテーブル

var $usecookie=true; //Cookie を使用してセッション ID を保存する
var $cookiepath='/'; //Cookie のパス
var $cookietime=108000; //Cookie の有効時間

var $err_mysql="mysql error"; //mysql エラー プロンプト
var $err_username="username valid"; //ユーザー名が無効なプロンプト
var $err_user="user無効"; //ユーザーが無効なプロンプト (Ban によって受信されました) )
var $err_password="パスワードエラー"; //パスワードエラープロンプト

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 に保存されている場合
session_id($_COOKIE['sid'])
session_start(); $this->username=$_SESSION['username'];
$this->userid=$_SESSION['userid'];
$this->userlevel=$_SESSION['userlevel']; ;
}
else // SID が Cookie に保存されていない場合は、セッションを直接確認します
{
session_start();
return true
} false;
}

function userAuth($username,$userpass) //ユーザー認証
{
$this->username=$username;
$query="select * from `".$this- >authtable."` where `username`='$username';";
$result=mysql_query($query);
if(mysql_num_rows($result)!=0) //Findこのユーザー
{
$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;
}
}
else //このユーザーは見つかりませんでした
{
$this-> ;errReport($this->err_username );
$this->err=$this->err_username;
}
}

function setSession() // セッションを設定します
{
$sid= uniqid('sid'); // sid を生成
session_id($sid);
$_SESSION['username']=$this->username; // セッション変数
$_SESSION[ 'userid']=$this-> //..
$_SESSION['userlevel']=$this->userlevel; //..
if($this->use_cookie) // Cookie を使用して sid を保存します
{
if(!setcookie ('sid',$sid,time()+$this->cookietime,$this->cookiepath))
$this->errReport("set cookie失敗しました");
}
else
setcookie(' sid','',time()-3600); //Cookie の sid をクリアします
}

function userLogout() //ユーザーログアウト
{
session_start();
unset($_SESSION['username']) ; //セッション内のユーザー名をクリア
if(setcookie('sid','',time()-3600))
//Cookie 内の sid をクリア
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 default
`userpass` varchar (255) NOT NULL デフォルト ''、
`banned` tinyint(1) NOT NULL デフォルト '0'、
`userlevel` tinyint(4) NOT NULL デフォルト '0'、
PRIMARY KEY (`id`)
)


使用例


PHP代コード:

「../myclasses/Login.php」を含める;
$dbserv="ローカルホスト";
$dbport="3306";
$dbuser="ルート";
$dbpass="123456";
$dbname="テスト";

$login=新しいログイン($dbserv,$dbport,$dbuser,$dbpass,$dbname);
$login->error_report=true;
$login->cookietime=3600*24*30;
if($login->isLoggedin())
{
echo $login->username." すでにログインしています";
}
elseif($login->userAuth("dan​​ielking","1234"))
{
echo "ログインに成功しました";
$login->setSession();
}

echo "

...

";

/*
if($login->userLogout())
echo "ログアウトしました";
else
echo「ログアウトに失敗しました」;
*/
?>  


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/318169.html技術記事 PHP代: ? /* *名前:CnkknDPHPLoginClass *説明:MySQL をベースにした登録用の PHP *作成者:DanielKing、cnkknd@163.com *日期:2003/8/25 */ classLogin { var$username;//用...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。