关于PHP URL参数的学习

来源:互联网 发布:好看的宫廷小说知乎 编辑:程序博客网 时间:2024/06/05 04:36

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();
      }

0 0