PHP PDO 簡單登陸操作

木子小僧發表於2015-05-30

用PHP做出一個簡單的登陸操作,確實很簡單,下面就讓我給大家簡單的介紹一下PDO做出一個登陸介面操作的過程,因為也是初學乍練,不足之處請大家包涵。

首先,首先還要建一個表,在MySQL中建表,核心程式碼如下:

 1 DROP TABLE IF EXISTS `t_login`;
 2 CREATE TABLE `t_login` (
 3   `userid` int(4) NOT NULL DEFAULT '0',
 4   `username` varchar(20) DEFAULT NULL,
 5   `userpass` varchar(20) DEFAULT NULL,
 6   `userphone` varchar(25) DEFAULT NULL,
 7   `useraddress` varchar(50) DEFAULT NULL,
 8   PRIMARY KEY (`userid`)
 9 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
10 
11 -- ----------------------------
12 -- Records of t_login
13 -- ----------------------------
14 INSERT INTO `t_login` VALUES ('0', '11', '1111111', '1111', '111');
15 INSERT INTO `t_login` VALUES ('1', 'admin', 'admin', '1212', '111111');

  下面就來具體講一下操作流程,建一個專案,命名為P_U,在專案中新建兩個檔案,分別命名為View和Model,新建檔案是為了好分層管理,有一個好的習慣是很重要的,所以在初學的時候,有分層的意識是很重要的。View是檢視層,這個Model是資料處理層和業務邏輯層吧。

  第一,先做出兩個介面來,login.php和res.php,下面依次是login和res的程式碼。

 1  <form action="../Model/LoginModel.php" method="post">
 2             <div align="center">
 3                 <table>
 4                     <tr>
 5                         <td>姓名:</td>
 6                         <td>
 7                             <input type="text" name="username">
 8                         </td>
 9                     </tr>
10                      <tr>
11                         <td>密碼:</td>
12                         <td>
13                             <input type="password" name="userpass">
14                         </td>
15                     </tr>
16                      <tr>
17                         <td></td>
18                         <td>
19                             <input type="submit" value="登陸">
20                             <input type="reset" value="重置">
21                         </td>
22                     </tr>
23                 </table>
24                 <a href="res.php">沒有賬號,請註冊</a>
25             </div>
26         </form>

 

 

 <form action="../Model/ResModel.php" method="post">
                <table>
                    <tr>
                        <td>使用者名稱:</td>
                        <td>
                            <input type="text" name="username">
                        </td>
                    </tr>
                    <tr>
                        <td>登陸密碼</td>
                        <td>
                            <input type="text" name="userpass">
                        </td>
                    </tr>
                    <tr>
                        <td>重複密碼:</td>
                        <td>
                            <input type="text" name="userpassagin">
                        </td>
                    </tr>
                    <tr>
                        <td>電話:</td>
                        <td>
                            <input type="text" name="userphone">
                        </td>
                    </tr>
                    <tr>
                        <td>住址:</td>
                        <td>
                            <input type="text" name="useraddress">
                        </td>
                    </tr>
                    <tr>
                        <td></td>
                        <td>
                            <input type="submit" value="提交">
                        </td>
                    </tr>
                </table>
            </form>

 

在這個裡面,我就不寫JS程式碼了,因為就是一個表單驗證,方法很多,百度的資料也特別的多。

  二,在Model裡面下工夫了,建立一個LoginModel.php和ResModel.php,下面是它們的程式碼:

LoginModel.php程式碼如下:

 1 <?php
 2     @$username = $_POST[username];
 3     @$userpass = $_POST[userpass];
 4     
 5     $dbms = "mysql";//選擇資料庫型別,MySQL
 6     $host = "127.0.0.1"; //選擇伺服器
 7     $userName = "";//使用者名稱
 8     $psw = "";
 9     $dbName = "dbtext";//資料庫名稱
10     $dsn = "$dbms:host=$host;dbname=$dbName";
11     
12     try {
13         $pdo = new PDO($dsn, $userName, $psw);
14         $query = "select * from t_login where username=:username and userpass = :userpass";
15         $request = $pdo->prepare($query);
16         $request->bindParam(':username', $username);
17         $request->bindParam(':userpass', $userpass);
18         $request->execute();
19         $res = $request->fetchAll(PDO::FETCH_ASSOC);        
20         if (!empty($res)){
21             header('Location: http://localhost/P_U/View/main.php');
22         }else{
23             header('Location: http://localhost/P_U/View/login.php');
24         }
25     } catch (Exception $e) {
26         die("Error!!".$e->getMessage());
27     }
28     
29 ?>

 

ResModel.php程式碼如下:

 1 <?php
 2     @$username = $_POST[username];
 3     @$userpass = $_POST[userpass];
 4     @$userphone = $_POST[userphone];
 5     @$useraddress = $_POST[useraddress];
 6     
 7     $dbms = "mysql";//選擇資料庫型別,MySQL
 8     $host = "127.0.0.1"; //選擇伺服器
 9     $userName = "ecstore";//使用者名稱
10     $psw = "ecstore2014!@#";
11     $dbName = "dbtext";//資料庫名稱
12     $dsn = "$dbms:host=$host;dbname=$dbName";
13     
14     try {
15         $pdo = new PDO($dsn, $userName, $psw);
16         $query = "insert into t_login(username,userpass,userphone,useraddress) VALUES (:username,:userpass,:userphone,:useraddress)";
17         $request = $pdo->prepare($query);
18         
19         $request->bindParam(':username', $username);
20         $request->bindParam(':userpass', $userpass);
21         $request->bindParam(':userphone', $userphone);
22         $request->bindParam(':useraddress', $useraddress);
23         
24         $res = $request->execute();
25         if(!empty($res)){
26             echo "註冊成功!!";
27             echo "<a href='http://localhost/P_U/View/login.php'>返回登陸介面</a>";
28         }
29         
30     } catch (Exception $e) {
31         die("註冊失敗!!!".$e->getMessage());
32     }
33     
34 ?>

 

好了,隨便寫一個main.php介面吧,登陸成功後就自動跳到main.php介面上。

百度雲資料,原始碼下載連線:http://pan.baidu.com/s/1dDdagEl

php就是這麼簡單,好好的學,總會有收穫,希望能幫到你。

相關文章