由于博主今夜失眠,便默默打开电脑,开启深夜爆肝模式,极度伤身,看官老爷们请勿模仿哦。 继续PHP学习之旅!
PHP中的9个超全局变量
$GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION
可以看到,除了$GLOBALS是刀加大写字母外,其他8个超全局变量都是刀加下划线加大写字母。这些超全局变量可以在整个代码域中运行,具体作用就不展开说了。 但是要特别注意 $_SERVER 这个函数,其中 $_SERVER[‘PHP_SELF’] 返回当前执行脚本的文件名,这有可能被xss攻击(注入html或js代码),我们之后再说,
PHP表单
PHP表单这是PHP中比较重要的一部分,这部分内容博主会详细解释,力争通俗易懂。
先来看一个简单的HTML表单
html表单
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
这个HTML表单代码的精髓就在于 action="welcome.php" 这一句,这句代码运行的效果是把这个HTML表单交给 welcome.php 处理。 而 welcome.php 的代码则可以是:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
输出结果为: Welcome Bill Your email address is Bill.Gates@example.com
表单验证
用户输入表单,需要对用户的输入进行验证。先来看两个上传表单的语句比较:
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
这里要说明两点,第一点是$_SERVER[“PHP_SELF”],这个超全局变量的含义是返回当前正在执行的脚本名,即表单被上传到的那个php文件,而且会把数据发送到本页面,如果输入不正确,会在本页面报错。 第二点就是htmlspecialchars() 函数会把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 < ; 和 > ; 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。 如果用第一个语句,黑客可以利用URL加密算法在URL里面输入一段而已js代码。
我们该怎样进行表单验证
1.通过htmlspecialchars()函数,对post来的每一个值进行检查, 2.通过 PHP trim() 函数,去除用户输入数据中不必要的字符(多余的空格、制表符、换行) 3.通过 PHP stripslashes() 函数,删除用户输入数据中的反斜杠(\)
突然就困了呢,博主去睡觉了,今天就肝到这里了,zzz~
|