博客程序開發歷程【3】-[會員系統-登錄驗證]{附源碼}

html_login_fns.php

function display_login_form() {
?>
 		<div class="wrap">
            <form action="" method="post">
                <p>
                    <input class="inputtext" id="inputtext1" type="text" name="uid" placeholder="郵箱/會員帳號"
                    autofocus required>
                </p>
                <p>
                    <input class="inputtext" id="inputtext3" type="password" name="password" placeholder="密碼"
                    required>
                </p>
                <p id="sbp">
                    <input class="button" type="submit" name="submit" value="登錄">
				</p>
				<p>
                    <input type="checkbox" checked="checked" name="cookie">
                    <span>
                        下次自動登錄
                    </span>
                    <a href="?file=member&action=findpwd">
                        忘記密碼?
                    </a>
                    <a href="?file=member&action=register">
                        註冊
                    </a>
                </p>
            </form>
        </div>
<?php 
}


login.php

<?php
do_html_header("登錄","login");
display_login_form();
do_html_footer();

/*驗證、過濾輸入內容*/
if (islogin()){
	header("location: ?action=index");
}

if (isset($_POST['submit'])){ //判斷是否提交	
	$uid=str_replace(" ", "" ,$_POST['uid']); //刪除空格
	$password=str_replace(" ", "",$_POST['password']); //刪除空格
	if (valid_name($uid) | valid_email($uid) ){
		if(login($uid,$password,$_POST[cookie])){
			echo '<script type="text/javascript">history.go(-1);</script>';
			exit; 
		}
		else {
			exit ('<script language="javascript">alert("用戶名或密碼錯誤。")</script>');
		}
	}
	else {
		exit ('<script language="javascript">alert("用戶名或密碼錯誤。")</script>');
	}
}
?>

member_fns.php

function login($arg,$password,$cookie=null){
	
	$dsn='mysql:host='.DB_HOST.';'.'dbname='.DB_NAME;
	$pdo=new PDO($dsn,DB_USER,DB_PASSWORD);
	
	$sql="SELECT * FROM members WHERE username='$arg' or email='$arg'";
	$query=$pdo->query($sql);
	$row=$query->fetch();
	$pass=$row['password'] ? $row['password']==md5($password):FALSE;
	if ($pass){
		$_SESSION['uid']=$row['id'];
		$_SESSION['username']=$row['username'];
		$_SESSION['email']=$row['email'];
		$_SESSION['password']=$row['password'];
		$_SESSION['rank']=$row['rank'];
		if($cookie){
			setcookie("username",$row['username'],time()+2592000);
		}
	}
	return $pass;
}

function islogin(){
    if (isset($_SESSION['uid'])) $islogin=true;
    elseif (isset($_COOKIE['username'])){
        $dsn='mysql:host='.DB_HOST.';'.'dbname='.DB_NAME;
        $pdo=new PDO($dsn,DB_USER,DB_PASSWORD);
        
        $sql="SELECT * FROM members WHERE username='$_COOKIE[username]'";
        $query=$pdo->query($sql);
        $row=$query->fetch();
        $_SESSION['uid']=$row['id'];
        $_SESSION['username']=$row['username'];
        $_SESSION['email']=$row['email'];
        $_SESSION['password']=$row['password'];
        $_SESSION['rank']=$row['rank'];
        
        $islogin=true;
    }
    else $islogin=false;
}

源碼下載地址:http://pan.baidu.com/disk/home?fr=ibaidu

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章