----------------------------------------PHP其实真的没什么难度,就是我搭网的时候还是有很多问题.......不过还是先熟悉基本的东西吧,毕竟我是搞安全方面的-----------------------------
一.接着上面的
10)php函数
PHP 用户定义函数:除了内建的 PHP 函数,我们可以创建我们自己的函数,函数是可以在程序中重复使用的语句块,页面加载时函数不会立即执行,函数只有在被调用时才会执行。注意定义函数时其类型只能为function
<?php 结果:Hello world!
function writeMsg() {
echo "Hello world!";
}
writeMsg(); ps:函数名对大小写不敏感。
?>
<?php 结果:5+10=15 function sum($x,$y) {
7+13=20
$z=$x+$y; 2+4=6 return $z; } echo "5 + 10 = " . sum(5,10) . "<br>"; echo "7 + 13 = " . sum(7,13) . "<br>"; echo "2 + 4 = " . sum(2,4); ?>
ps: count() 函数用于返回数组的长度
关联数组的例子
<?php 结果:Peter is 43 years old.
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?> ps:=>为赋值
11)超全局变量(超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量)
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用,在函数或方法中无需执行 global $variable; 就可以访问它们。
这些超全局变量是:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
具体参照w3school的讲解,上面的讲解真的不错,简单易懂!! http://www.w3school.com.cn/php/php_superglobals.asp
二.PHP表单(PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)
1)
<html> ps:必需的 action 属性是规定当提交表单时,向何处发送表单数据。
<body> 而method则规定如何发送表单数据,表单数据发送到action属性所规定的页面
<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>
<input type="value">属性值表
这里是text,即单行输入字段
2)Get和Post的区别(get和post都是从客户端接受数据 只不过方式不同)
GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域,无需任何特殊代码,能够从任何函数、类或文件访问它们。
$_GET 是通过 URL 参数传递到当前脚本的变量数组。
$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。
注意!!!
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
3)PHP表单验证(对HTML 表单数据进行适当的验证对于防范黑客和垃圾邮件很重要!)
PHP 验证实例见这里----------------http://www.w3school.com.cn/php/php_form_validation.asp
这里有以下几点要注意:
1.textarea为文本框,之前的text为单行文本
2.htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 < 和 > 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。常用在<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">这种语句里面。
3.php的安全性之(XSS)
而通过使用 htmlspecialchars() 函数就能够避免 $_SERVER["PHP_SELF"] 被利用。
4.一个完整例子
<!DOCTYPE HTML> <html> <head> </head> <body><?php $name = $email = $gender = $comment = $website = ""; //所有值都赋空值 if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = test_input($_POST["name"]); $email = test_input($_POST["email"]); $website = test_input($_POST["website"]); $comment = test_input($_POST["comment"]); $gender = test_input($_POST["gender"]); } function test_input($data) { $data = trim($data); //trim函数可以去除用户输入数据中不必要的字符(多余的空格、制表符、换行) $data = stripslashes($data); //stripslashes函数可以删除用户输入数据中的反斜杠(\)
$data = htmlspecialchars($data); //这里再把特殊字符转化成html实体
return $data; } ?>
<h2>PHP 验证实例</h2><form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>
"> 姓名:<input type="text" name="name"> <br><br> 电邮:<input type="text" name="email"> <br><br> 网址:<input type="text" name="website"> <br><br> 评论:<textarea name="comment" rows="5" cols="40"></textarea> //文本框 <br><br> 性别: <input type="radio" name="gender" value="female">女性 //单选按钮 <input type="radio" name="gender" value="male">男性 <br><br> <input type="submit" name="submit" value="提交"> //提交按钮</form><?phpecho "<h2>您的输入:</h2>";echo $name;echo "<br>";echo $email;echo "<br>";echo $website;echo "<br>";echo $comment;echo "<br>";echo $gender;?>
</body></html>