關於PHP URL參數的學習

URL是統一資源定位器(Uniform Resource Locator : URL)的縮寫,是WWW頁的地址,主要由4部分組成:

1.Internet資源類型

2.服務器地址(host)

3.端口(port)

4.路徑(path)

URL地址格式排列爲:scheme://host:port/path,例如http://210.30.1.126:8080/parabola就是一個典型的URL地址。

其中1,2,3都是跟服務器配置有關,對於網站的製作,我們主要是通過路徑這個參數來實現一些界面跳轉的數據發送和接收。


網站間的數據接收和發送主要通過兩部分來實現,一個是html中from表單通過ACTION屬性進行數據的發送

例如:

<form action="form_action.php" method="get">
  <p>First name: <input type="text" name="fname" /></p>
  <p>Last name: <input type="text" name="lname" /></p>
  <input type="submit" value="Submit" />
</form>


上面這份代碼是通過get方法向form_action.php文件發送下面的兩個數據,表達發送數據的方法有很多,有GET方法,

POST方法,SESSTION方法等等,具體區別就不做介紹了,詳情百度。


不過這還沒有完全結束,我們還需要在PHP文件中對HTML發送來的數據進行接受,才能對前臺傳遞的URL參數進行處理。

在PHP文件中,我們通過$_GET(),$_POST(),等方法來對前臺的數據進行接收。函數的參數是之前html表單中的

name 屬性,例如我們要接收由  <p>First name: <input type="text" name="fname" /></p> 發送來的數據,因爲表單是通過

get方法發送的數據,所以接收數據的代碼爲 $_POST("fname")。


不過在使用的過程中,我們除了在接收數據的時候會用到URL參數,在界面跳轉的時候,我們也可以通過地址欄的URL來傳遞

一些必要的數據,例如http://210.30.1.126:8080/parabola/show/id=2

我們要接收上面URL中的id數值,我們可以通過另外一個函數,$_GET["_URL_"][$a]來進行接收,$a可以是1,2,3,4等等,代表要接收第幾個參數,

當我們連續跳轉了兩次界面,爲了保存第一次界面跳轉的id等參數,防止返回界面參數丟失而引起錯誤,我們就可以在界面返回時通過將上一個

界面的url參數存儲到cookie裏,然後當跳轉到上一界面在提取出來,以此來避免當發生多級跳轉時返回上一界面所引起的蛋疼問題。


下面是thinkphp框架中實現的修改成績成功後,然後返回顯示成績界面的函數

public function editscore()
     {
        $student = M("students");
        $idd    = $_GET["_URL_"][2];
        cookie('name',$idd);
        $studentall = $student->where("id = $idd")->select(); 
        $this->assign('studentall',$studentall);
      $this->display();
     }
      public function changescore()
      {
           $student = M("students");
           $aaaa = cookie('name');
           $data['Uslresult'] =  $_POST["score"];
           $result = $student->where("id = $aaaa")->save($data);
           if($result !== false)
            {
               echo "<script>alert('更新成功')</script>";
               $this->redirect('usualscore'); 
             //echo "<script>alert('更新成功')</script>";
            }
            else
            {
             echo "<script>alert('更新失敗');
                </script>";
               $this->redirect('usualscore'); 
    
             }
      $this->display();
      }

發佈了13 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章