程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 如何從零開始教女同學進行PHP開發(2):表單的處理

如何從零開始教女同學進行PHP開發(2):表單的處理

編輯:關於PHP編程

我終究還是低估了“妹子”兩個字對程序猿們的殺傷力,在無圖說個傑寶的今天,竟然還能在沒有爆照的情況下點擊量一天不到就到達了四位數,並且還成為當天評論最多的帖子!雖然評論都歪樓歪得不行了,但是妹子還是非常貼心地對我說了一句——妹子在此表示很關注內容。看到這句話,我頓時生出一種拋卻此身為君死的知遇之情,不知道我以身相許妹子能樂意不?

這麼多人看到這一系列,我還是應該秉承技術博客的宗旨,盡量以講技術為主,跟廣大入門者一起探討PHP開發的知識。不過呢,為了照顧廣大因為標題點擊近來的程序猿們,我會在博客中增加一些妹子在學習過程中表現的敘述,並且傳授大家如何跟妹子培養感情,哦,不,是進行學術交流。

既然是教妹子web開發,尤其是在幾乎零基礎的情況下,就必須要從非常基本的東西講起,有足夠的耐心。但是也要有嚴格的教學思路,不能想到什麼就說什麼,這樣妹子聽了不但會覺得煩,而且學習效率也不高。你想想,妹子煩了,學習的勁頭上不去,後面還能有你的什麼事呢?你還沒來得及展示你的知識深度和豐富開發經驗呢,妹子就已經把電腦一關棄你而去了,然後,還能有什麼然後呢?!總結一句:沒方法沒思路沒耐心,注定孤獨一生。

在前一篇,已經基本介紹了一些東西,可以概括為以下幾點:1)php代碼要用<?php ?>標簽進行標識2)如何使用echo語句進行輸出html代碼,另外關於要用對""中的"(雙引號)用\轉義符)進行轉義。3)php代碼是如何跟html代碼進行混合的。那麼,在這個基礎上,下一步就是如何提交表單以及所提交表單的處理。

第三步:提交表單

在html語法中,我們會用<form>標簽進行表單的標識,在百度百科中,我們可以知道——表單在網頁中主要負責數據采集功能。也就是說,表單為系統提供了提交數據的功能。那麼,我們再來重溫一下之前寫的那幾行代碼,重點關注表單部分的內容。

  1. <?php         //php代碼部分開始  
  2. echo "<html>";  
  3. echo "<head>";  
  4. echo "<meta charset=\"gbk\">";  
  5. echo "<title>用戶登錄界面</title>";  
  6. ?><!--  php代碼部分結束--> 
  7. </head> 
  8. <body> 
  9. <form name="login" action="Controller.php" method="post" > 
  10.  <!-- 上一行代碼的意思是 --> 
  11.  <!-- name="login"表單的名稱為login,提交的動作為“Controller.php”,請求方式為“post” --> 
  12.      <td class="tbl">用戶名:</td><td><input type="text" name="user_id"></td>   
  13.  <!-- name="user_id"的意思是所填寫的用戶名標識為user_id -->     
  14.      <td class="tbl">密碼:</td><td><input type="text" name="user_password"></td> 
  15.  <!-- name="user_password"的意思是所填寫的密碼標識為user_password --> 
  16. <?php      
  17. echo "<td><input type=\"submit\" value=\"登入系統\"></td>"  
  18.   //submit表示的是表單的提交按鈕,按鈕顯示為“登入系統”  
  19. ?> 
  20. </form> 
  21. </body> 
  22. </html> 

看到上面這幾行代碼跟注釋,有人可能會覺得:這也太簡單了吧。在一開始我就說過了,教妹子學技術的關鍵在於要有耐心,如果妹子什麼都會了,還要你干嘛?在這裡,重點要給妹子解釋一下的就是action="Controller.php",意思就是點擊submit提交按鈕後,頁面會跳轉到Controller.php這個文件,換句話來說——妹子,表單提交,就是把數據提交到Conroller.php上,由它來處理數據嘛。這樣的解釋可能有失偏頗,但是為了讓妹子更好的理解,這也是權宜之計,效果不錯的喲)

第四步:獲取和處理所提交表單的數據

既然提交了表單,那麼下一步肯定是如何獲取和處理表單中裡的數據。如果你這個時候給妹子講POST請求和HTTP協議,妹子除了暈頭轉向並且給你兩個白眼,估計你啥效果都得不到。你可能會說,樓主你這樣的教學方式很不科學很不全面啊。是不是科學是不是全面我暫且不跟你爭論,有的時候講的細講的多不代表對學的人就好,能把教學過程進行下去才是最重要的。

廢話少說,我們直接看Controller.php的代碼,在注釋的幫助給妹子解釋,PHP是如何獲取HTML表單數據的。

  1. <?php 
  2. session_start();//使用session前必須調用該函數  
  3.  
  4. $user_id =$_POST['user_id'];//聲明變量$user_id,把POST請求中的user_id的值賦給它  
  5. $user_password= $_POST['user_password'];  
  6. //聲明變量$user_password,把POST請求中的user_password的值賦給它  
  7.  
  8. //.操作符連接兩個字符串變量,以下兩條語句顯示所提交表單的用戶名和密碼  
  9. echo "所提交表單的用戶名是:".$user_id;  
  10. echo "   密碼是".$user_password;  
  11. ?> 

看到開頭的第一句:session_start();和緊接著的注釋,妹子肯定會問——什麼是session啊?session,通俗的來講,就是用戶從進入網站開始到關閉浏覽器結束的這個過程。而在PHP中使用session,就是通過注冊若干session全局變量,在不同的頁面或php文件中使用這些變量。妹子肯定沒有辦法一下子就明白session到底是怎麼回事,當前只要讓她暫時知道有這麼一回事就行了,在往後的學習當中會逐漸加深對其的理解。

繼續看到代碼,對照第三步的代碼我們會知道,提交表單的方式是POST,所以我們用$_POST變量來獲取表單中的數據。而中括號[' ']內的索引為表單中的name,通過索引來獲取數組$_POST中的值,最後顯示在頁面上。

把數據顯示到頁面上,固然是一種“處理”的方式。可是既然是登錄功能,那所輸入的用戶名和密碼一般來說都必須與系統中的設定吻合。例如系統中只有一個用戶名是admin,密碼是123456,那麼在輸入除admin之外的用戶名都應該是被拒絕登錄的,而密碼也應該與admin所對應,必須是123456。判斷代碼如下:

  1. <?php  
  2. session_start();//使用session前必須調用該函數  
  3.  
  4. $user_id =$_POST['user_id'];//聲明變量$user_id,把POST請求中的user_id的值賦給它  
  5. $user_password= $_POST['user_password'];  
  6. //聲明變量$user_password,把POST請求中的user_password的值賦給它  
  7.  
  8. //.操作符連接兩個字符串變量,以下兩條語句顯示所提交表單的用戶名和密碼  
  9. if($user_id=='admin'&&$user_password=='123456')//判斷語句,&&為且運算符,必須兩條件均符合才為真  
  10. {  
  11.     echo "通過驗證,登錄成功";  
  12. }  
  13. else   
  14.     echo "未通過驗證,登錄失敗";  
  15. ?> 

妹子很努力,上午我問她對數據庫的基本操作是不是熟悉,晚上我問她在干什麼的時候,她說:在惡補數據庫呢。這時候,我的心裡不知道多感動,本來上了一天班挺累的頓時疲勞盡消趕緊坐到電腦前碼字。

為什麼我要讓她復習數據庫呢?因為我們的系統不大可能只有一個賬號,更不可能把所有的賬號和密碼都寫進PHP文件中。我們要做的是,把這些信息存進數據庫裡,到需要用的時候就拿出來。什麼時候需要用呢?當然是登錄需要驗證的時候,也就是現在。

第五步:連接MySQL數據庫

PHP提供了完成的操作MySQL數據庫的函數,這些函數提供了從連接數據庫、執行SQL語句、處理數據結果集到關閉數據庫等方方面面的功能。妹子可以用通過這些函數使得基於MySQL數據庫的Web開發變得高效而且簡單。

那麼,我們就從最基本的連接數據庫開始。請看代碼:

  1. <?php  
  2.   $host ='localhost';//定義數據庫服務器,為本地主機  
  3.   $user_name='root'; //定義數據庫的用戶名  
  4.   $password ='';     //定義數據庫的密碼  
  5.  
  6.   $conn = mysql_connect($host,$user_name,$password);//連接MySQL,獲取鏈接  
  7.   if(!$conn){//判斷鏈接是否為空  
  8.     die('數據庫連接失敗:'.mysql_error());  
  9.     //使用了語言結構die(),它的功能類似於exit,輸出一段信息不能並立即中斷程序的執行  
  10.   }  
  11.   else{  
  12.       echo "數據庫連接成功";  
  13.   } 

在這裡,我假定妹子知道什麼是服務器、用戶名和密碼心理活動:妹子說惡補了一個晚上,該不會連這個都不知道吧,心驚膽戰ing)。關鍵的語句其實就只有一句,

$conn = mysql_connect($host,$user_name,$password);$host(服務器)、$user_name用戶名)和$password密碼)作為參數,通過mysql_connect函數獲取mysql數據庫的鏈接,並賦給變量$conn。
那麼,如何利用數據庫鏈接$conn對mysql數據庫進行操作呢?我們明天在下一篇再繼續說。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved