PHP外部标量——GET、POST传值区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40406061/article/details/79888483

外部变量

php得外部变量是php在使用过程中规定好的一些变量,这个变量是已经规定好用法的。


下面是几个最常用的例子,我们将下面的表单命名为user.html:


<html>
    <head>
    </head>

    <body>
        <form action="reg.php" method="get">
            <input type="text" name="username"/>
            <input type="password" name="pwd"/>
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>

上面是很基础的一段HTML代码,在这段代码的主要功能是把用户名和密码,采用get方法,将数据发送给reg.php(在上面代码的第6行有标记)。reg.php想办法接收用户传过来的username和pwd这两个值。


外部变量:$_GET

下面是reg.php,用$_GET来接收值:

<?php
$u = $_GET['username'];
echo $u.'<br />';
$passwd = $_GET['pwd'];
echo $passwd.'<br />';
?>

输出值试了一下,通过$_GET这个外部变量,可以得到从表单输入的值。

而且在地址栏上有这样一个特点:


reg.php后面跟了一个“?”,并且表单中的username和pwd也都出现在了地址栏中,这样的话密码是可见的,那怎么保证安全呢,让我们在注册提交表单的时候密码不在地址栏里面被人看到呢?

所以我们需要$_POST来进行传值操作,post传值在地址栏中是不可见的。

上面的HTML代码我们进行一下修改:

<html>
   <head>
   </head>

   <body>
       <!-- 这一行method 对应的值改为了post -->
       <form action="reg.php" method="post">
           <input type="text" name="username" />
           <input type="password" name="pwd" />
           <input type="submit" value="提交" />
       </form>
   </body>
</html>

php的代码中$_GET也要相应的改为$_POST:

<?php
$u = $_POST['username'];
echo $u.'<br />';
$passwd = $_POST['pwd'];
echo $passwd.'<br />';
?>

这样的话,reg.php后面的“?”不见了,相对的username和pwd也不见了,这就达到了我们的信息隐蔽。

$_POST是通过我们看不见的浏览器的请求头文件传递的数据。所以在URL中是不可见的。

那么是不是用了$_POST方法传递数据就一定进行了隐蔽呢?答案是否定的!! !在本地是可以使用firebug进行查看的,因为这一块都是HTTP协议规定的传送方式。


猜你喜欢

转载自blog.csdn.net/qq_40406061/article/details/79888483