版权声明:本文为博主原创文章,未经博主允许不得转载。 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协议规定的传送方式。