通過ajax前端後臺交互/登錄頁和註冊頁前端後臺交互詳解/前端後臺交互基礎應用/幾個後臺函數的基礎應用/php文件函數基礎應用/php字元傳函數基礎應用/php數組函數基礎應用

来源:http://www.cnblogs.com/zhuanzhibukaixin/archive/2017/06/18/7020596.html
-Advertisement-
Play Games

前 言 PHP 學習了好久的PHP,今天做一個可以後臺交互的登錄頁和註冊頁,沒做什麼判斷,簡單的瞭解一下。 具體的內容分析如下: ① PHP中的數據傳輸-->>由註冊頁傳輸給註冊頁後臺-->>註冊頁後臺經過轉碼保存實例化的文件 ② 在登錄頁輸入賬戶密碼,點擊登錄時,獲得觸發函數:獲得由後臺傳輸過來的 ...


 

  前  言

 PHP 

    學習了好久的PHP,今天做一個可以後臺交互的登錄頁和註冊頁,沒做什麼判斷,簡單的瞭解一下。

具體的內容分析如下:

① PHP中的數據傳輸-->>由註冊頁傳輸給註冊頁後臺-->>註冊頁後臺經過轉碼保存實例化的文件

② 在登錄頁輸入賬戶密碼,點擊登錄時,獲得觸發函數:獲得由後臺傳輸過來的true或者false---轉換頁面或者彈出輸入錯誤。

     登錄頁後臺獲取保存賬戶密碼的實例化文件,通過轉碼,if判斷之後傳輸給前臺登錄頁TURE或者FALSE。

 

總共總共8個文件:

  其中07_file與libs同一級別 代碼植入請看具體內容。

 

 

 

代碼註釋裡面有很詳細的解析,如有需要請仔細閱讀。(希望可以幫助到你)

 

1、  效果圖
   
   

 

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>用戶登錄</title>
 6         <link rel="stylesheet" type="text/css" href="../../libs/bootstrap.css"/>
 7         <style type="text/css">
 8             body{
 9                 margin: 0px;
10                 padding: 0px;
11                 background-color: #CCCCCC;
12             }
13             .panel{
14                 width: 380px;
15                 height: 280px;
16                 position: absolute;
17                 left: 50%;
18                 margin-left: -190px;
19                 top: 50%;
20                 margin-top: -140px;
21             }
22             .form-horizontal{
23                 padding: 10px 20px;
24             }
25             .btns{
26                 display: flex;
27                 justify-content: center;
28             }
29         </style>
30     </head>
31     
32     <!--簡單的樣式表-->
33     <body>
34         <div class="panel panel-primary">
35             <div class="panel-heading">
36                 <div class="panel-title">用戶登錄</div>
37             </div>
38             <div class="panel-body">
39                 <form class="form-horizontal">
40                     <div class="form-group">
41                         <label>用戶名</label>
42                         <input type="text" class="form-control" name="userName"/>
43                     </div>
44                     <div class="form-group">
45                         <label>密碼</label>
46                         <input type="password" class="form-control" name="pwd"/>
47                     </div>
48                     
49                     <div class="form-group btns">
50                         <input type="button" class="btn btn-primary" value="登錄系統" id="submit"/>
51                         &nbsp;&nbsp;&nbsp;&nbsp;
52                         <a type="button" class="btn btn-success" href="reg.php"/>註冊賬號</a>
53                     </div>
54                     
55                 </form>
56             </div>
57         </div>
58     </body>
59     
60     <script src="../../libs/jquery-3.1.1.js"></script>
61     <script type="text/javascript">
62         $(function(){
63             //↓定位id:submit事件綁定,click點擊時候觸犯function函數
64             $("#submit").on("click",function(){
65                 //↓創建一個變數str =  選取form表單,通過serialize()創建以標準 URL 編碼表示的文本字元串 
66                 var str = $("form").serialize();
67                 //↓列印出來看看是什麼個樣子的,傳輸給後臺才好操作。
68                   console.log(str); //具體樣子:userName=value&pwd=value
69                   /*通過ajax中的post方法,給後臺doLogin.php傳輸數據,給變數str(url文件類型)添加名字“formData”,
70                    * 函數function是接受後臺返回的預設值也就是echo輸出的值*/
71                 $.post("doLogin.php",{"formData":str},function(data){
72                     //↓列印後臺echo輸出的值,查看類型
73                     //↑console.log(data);
74                     
75                     //↓判斷函數如果返回的是true,則通過location打開新的頁面,同是在頁面後面加?name+你輸入的用戶名,用來給主頁傳值(主頁獲得用戶名)
76                     if(data=="true"){
77                         location = "index.php?name="+$("input[name='userName']").val();
78                     //↓傳回其他輸出則彈出"用戶名或密碼錯誤!!!"視窗
79                     }else{
80                         alert("用戶名或密碼錯誤!!!");
81                     }
82                 });
83             });
84         });
85     </script>
86 </html>
iogin.php行內代碼--登錄頁面
 1 <?php
 2 
 3     header("Content-Type:text/html;charset=utf-8");
 4     
 5     //↓定義str一個變數,通過post方法獲得前臺傳輸過來的數據。$_POST["fieldname"]
 6     $str = $_POST["formData"];
 7     
 8     //↓列印從前臺收到的數據,通過列印傳輸會前臺,具體內容通過形參data表示
 9     //echo $str;
10     //↑列印$str時↓(下方)必須全部註釋,輸出的具體樣子:userName=value&pwd=value
11     
12 /*    php中的數組,先通過數組explode方法-把數據內容通過$分為數組,
13     ↓再定義第一個數組內容(用戶名的value)為$userName。["userName=value","pwd=value"]*/
14     list($userName) = explode("&", $str);
15     
16 /*    php中的數組,先通過數組explode方法-把數據內容通過$分為數組,
17     ↓再定義二個數組內容(用戶名的value)為$userName。["userName=value","pwd=value"]*/    
18     list(,$pwd) = explode("&", $str);
19     
20     //定義一個變數users,通過php中的文件函數file_get_contents,讀取01_lx文件下的user.txt文件內容中的字元串。
21     $users = file_get_contents("user.txt");//這一步就是從文件中讀取賬號,密碼。
22     //↑具體的文件內容大概:userName=111&pwd=111&rePwd=111[;]userName=222&pwd=222&rePwd=222[;]
23     //↑通過上面的文件內容可以知道每個賬號密碼後面都有一個[;]
24     
25     //↓定義一個變數userArr,通過explode函數把用變數users內容用[;]分為數組 ["userName=value","pwd=value"]
26     $userArr = explode("[;]", $users);
27     
28     //通過foreach遍歷整個$userArr數組
29     foreach ($userArr as $user) {
30             
31         //每一組$user分別為userName=value(111)&pwd=value(111)&rePwd=value(111)
32         //↓每一組都分別再通過explode函數分為數組,定義變數$realName為第一個數組名。
33         list($realName) = explode("&", $user);//具體內容為$realName=userName=value(111)
34         //↓每一組都分別再通過explode函數分為數組,定義變數$realPwd為第二個數組名。
35         list(,$realPwd) = explode("&", $user);//具體內容為$realPwd=pwd=value(111)
36         //↓每一組都分別判斷一次,當變數$userName==變數$realName同時滿足變數$pwd==變數$realPwd
37         if($userName==$realName&&$pwd==$realPwd){
38         //php中的輸出echo 內容為true    
39             echo "true";
40             die();
41         }
42     }
43     //↓如果賬戶或密碼沒有輸入則,返回false
44     echo "false";
doLogin行內代碼--登錄頁面後臺
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>用戶註冊</title>
 6         <link rel="stylesheet" type="text/css" href="../../libs/bootstrap.css"/>
 7         <style type="text/css">
 8             body{
 9                 margin: 0px;
10                 padding: 0px;
11                 background-color: #CCCCCC;
12             }
13             .panel{
14                 width: 380px;
15                 height: 350px;
16                 position: absolute;
17                 left: 50%;
18                 margin-left: -190px;
19                 top: 50%;
20                 margin-top: -175px;
21             }
22             .form-horizontal{
23                 padding: 10px 20px;
24             }
25             .btns{
26                 display: flex;
27                 justify-content: center;
28             }
29         </style>
30     </head>
31     
32     
33     <body>
34         <div class="panel panel-primary">
35             <div class="panel-heading">
36                 <div class="panel-title">用戶註冊</div>
37             </div>
38             <div class="panel-body">
39                 <form class="form-horizontal">
40                     <div class="form-group">
41                         <label>用戶名</label>
42                         <input type="text" class="form-control" name="userName"/>
43                     </div>
44                     <div class="form-group">
45                         <label>密碼</label>
46                         <input type="password" class="form-control" name="pwd" />
47                     </div>
48                     <div class="form-group">
49                         <label>確認密碼</label>
50                         <input type="password" class="form-control" name="rePwd" />
51                     </div>
52                     
53                     <div class="form-group btns">
54                         <input type="button" class="btn btn-primary" value="確定註冊" id="submit"/>
55                         &nbsp;&nbsp;&nbsp;&nbsp;
56                         <a type="button" class="btn btn-success" href="login.php"/>返回登錄</a>
57                     </div>
58                     
59                 </form>
60             </div>
61         </div>
62     </body>
63     
64     <script src="../../libs/jquery-3.1.1.js"></script>
65     //↑jquery插入代碼
66     <script type="text/javascript">
67         $(function(){
68             //↓捕捉idsubmit綁定click事件,function為發生事件時的函數。
69             $("#submit").on("click",function(){
70                 //↓創建一個變數str,選取form表單,通過serialize()創建以標準 URL 編碼表示的文本字元串 
71                 var str = $("form").serialize();
72                 //↓列印出來看看是什麼個樣子的,傳輸給後臺才好操作。
73                 console.log(str);
74                 
75                 /*↓通過ajax中的post方法,給後臺doReg.php傳輸數據,給變數str(url文件類型)添加名字“formData”,
76                       函數function是接受後臺返回的預設值也就是echo輸出的值*/
77                 $.post("doReg.php",{"formData":str},function(data){
78                     //↓列印後臺echo輸出的值,查看類型
79                     //↑console.log(data);
80                     
81                     //↓判斷函數如果返回的是true,則彈窗提示創建成功,通過location跳轉到login.php(登錄頁面)。
82                     if(data=="true"){
83                         alert("註冊成功!即將跳轉登陸頁!");
84                         location = "login.php";
85                     //返回其他值,則彈窗提示    "註冊失敗!因為啥我不知道!"
86                     }else{
87                         alert("註冊失敗!因為啥我不知道!");
88                     }
89                 });
90             });
91         });
92     </script>
93 </html>
reg行內代碼--註冊頁面
 1 <?php
 2 
 3     header("Content-Type:text/html;charset=utf-8");
 4     
 5     /*↓定義str一個變數,通過post方法獲得前臺傳輸過來的數據,
 6             並且在每個數據後方加入一個[;]——>用以分隔每個新數據*/
 7     $str = $_POST["formData"]."[;]";
 8     
 9     //定義一個變數$num,通過php中的文件函數file_put_contents把每個str數據追加到01_lx文件下麵的"user.txt"文件中。
10     $num = file_put_contents("user.txt", $str,FILE_APPEND);//user.txt文件沒有的話會創建新的user.txt文件
11     //↑FILE_APPEND是追加到文件中,保證每個數據都會追加到"user.txt"文件中。
12     
13     //↓簡單的判斷,不做過多的闡述。
14     if($num>0){
15         //輸出語句,內容為後臺返回前臺$.post中的function的形參。
16         echo "true";
17     }else{
18         //輸出語句,內容為後臺返回前臺$.post中的function的形參。
19         echo "false";
20     }
doReg--註冊頁面後臺    use.txt由文件doReg.php自動在文件夾01_lx中生成。  
 1 <!DOCTYPE html>
 2 <html lang="zh">
 3 <head>
 4     <meta charset="UTF-8" />
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 7     <title>Document</title>
 8 </head>
 9 <body>
10     歡迎您,<span style='color:red;'><?php echo $_GET["name"]; ?></span><br>
11     我是主頁!
12     
13 </body>
14 </html>
index.php--主頁代碼

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 版權聲明:本文為原創文章,轉載請聲明http://www.cnblogs.com/unityExplorer/p/7027659.html 上篇已經把socket的傳輸說的差不多了,這篇主要是說說斷線重連,沒什麼好說的,直接上代碼吧 ...
  • 遇到一個奇怪的問題 ,只然訪問到Index的action,訪問其它的都報404錯 ,在Windows的IIS上則不會有此問題 如 正常 http://localhost:5000/login/index 報404錯誤 http://localhost:5000/login/test 經查是Start ...
  • 要求是這樣子的,在一個列表頁中,用戶點擊詳細銨鈕,帶記錄的主鍵值至另一頁。在另一外頁中,獲取記錄數據,然後顯示此記錄數據在網頁上。先用動圖演示: 昨天有分享為ng-click傳遞參數 《angularjs為ng-click事件傳遞參數》http://www.cnblogs.com/insus/p/7 ...
  • Java中的wait/notify/notifyAll可用來實現線程間通信,是Object類的方法,這三個方法都是native方法,是平臺相關的,常用來實現生產者/消費者模式。先來我們來看下相關定義: wait() :調用該方法的線程進入WATTING狀態,只有等待另外線程的通知或中斷才會返回,調用 ...
  • 第九節 函數 函數就是完成特定功能的一個語句組,這組語句可以作為一個單位使用,並且給它取一個名字。 可以通過函數名在程式的不同地方多次執行(這通常叫做函數調用),卻不需要在所有地方都重覆編寫這些語句。 自定義函數 用戶自己編寫的 預定義的Python函數 系統自帶的一些函數,還有一些和第三方編寫的函 ...
  • ActiveMQ支持的client-broker通訊協議有:TCP、NIO、UDP、SSL、Http(s)、VM。 其中配置Transport Connector的文件在activeMQ安裝目錄的conf/activemq.xml中的 ...
  • extract images from video, than save them to disk from moviepy.editor import VideoFileClip clip1 = VideoFileClip('./project_video.mp4') i = 1 for fram ...
  • 一、預設裝配方式 代碼通過getBean();方式從容器中獲取指定的Bean實例,容器首先會調用Bean類的無參構造器,創建空值的實例對象。 舉例: 首先我在applicationContext.xml配置文件中配置了一個bean: 創建SomeServiceImpl對象,但需要註意的是該類的只具有 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...