欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php mvc實例

鄭雨菲1年前5瀏覽0評論
PHP MVC實例,是一種軟件架構模式,即Model-View-Controller,將軟件應用分離為三個部分,有利于維護、測試和擴展。本文將以簡單且常見的注冊登錄功能為例,介紹如何使用PHP MVC實現。 首先,我們需要創建一個文件夾,命名為“demo”,其中包含三個子文件夾“model”、“view”和“controller”,這三個子文件夾是分別表示M、V、C三個部分。接著我們創建注冊頁面,代碼如下:
<html>
<head>
<title>注冊</title>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
用戶名:
<input type="text" name="username" required><br/>
密碼:
<input type="password" name="password" required><br/>
重復密碼:
<input type="password" name="password2" required><br/>
<input type="submit" name="submit" value="注冊">
</form>
</body>
</html>
這是視圖V部分的代碼,它負責用戶界面和輸入數據的表示。之后我們要進行數據的驗證和存儲,這就是控制器C的作用了,代碼如下:
<?php
require_once('model/UserModel.php');
if(isset($_POST['submit'])){
$username = trim($_POST['username']);
$password = trim($_POST['password']);
$password2 = trim($_POST['password2']);
//數據驗證
if($password!=$password2){
echo "兩次輸入密碼不一致!";
}else{
if(!preg_match('/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/',$username)){
echo "請輸入正確的郵箱!";
}else{
//數據儲存
$model = new UserModel();
$username = $model->escapeString($username);
$password = $model->encrypt($model->escapeString($password));
$registerTime = date('Y-m-d H:i:s');
if($model->isExist($username)){
echo "該用戶名已經被注冊!";
}else{
if($model->addUser($username,$password,$registerTime)){
echo "注冊成功!";
}else{
echo "注冊失敗!";
}
}
}
}
}
?>
在控制器C部分,我們需要加載并實例化模型M的類,這里我們引入了UserModel.php文件。之后是數據驗證和儲存過程,包括驗證兩次輸入的密碼是否一致,郵箱格式是否正確,用戶名是否已經被注冊,以及數據儲存的過程。 以上代碼中用到了一個模型M中的類UserModel,這里介紹一下模型M的部分代碼:
<?php
class UserModel{
private $db;
public function __construct(){
$this->db = new PDO('mysql:host=your-host;dbname=your-dbname','username','password');
}
public function isExist($username){
$stmt = $this->db->prepare('SELECT * FROM `user` WHERE `username`=:username');
$stmt->bindParam(':username',$username);
$stmt->execute();
return $stmt->rowCount()>0;
}
public function addUser($username,$password,$registerTime){
$stmt = $this->db->prepare('INSERT INTO `user` (`username`,`password`,`register_date`) VALUES(:username,:password,:register_date)');
$stmt->bindParam(':username',$username);
$stmt->bindParam(':password',$password);
$stmt->bindParam(':register_date',$registerTime);
return $stmt->execute();
}
public function encrypt($password){
return md5($password);
}
public function escapeString($string){
return $this->db->quote($string);
}
}
?>
這個模型類中包含了新增用戶、查詢用戶是否存在、加密密碼和轉義字符的方法。當遇到特殊字符或SQL注入時,轉義字符是非常重要的一步,這里我們使用PDO中的quote方法,比較方便而且安全。 最后,我們把所有部分串聯起來,這就是一個完整的PHP MVC模式的實例。通過對不同的部分進行抽象和分離,我們可以大大降低這個應用的代碼復雜度,便于后期的項目維護和功能擴展。