Web后端语言基础——PHP+SQL+Mysql数据库
后台-插件-广告管理-内容页头部广告(手机) |
PHP
PHP 是什么?
- PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
- PHP 脚本在服务器上执行。
- PHP 可免费下载使用。
PHP 文件
- PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
- PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
- PHP 文件的默认文件扩展名是 .php。
PHP 能做什么?
- PHP 可以生成动态页面内容
- PHP 可以创建、打开、读取、写入、关闭服务器上的文件
- PHP 可以收集表单数据
- PHP 可以发送和接收 cookies
- PHP 可以添加、删除、修改您的数据库中的数据
- PHP 可以限制用户访问您的网站上的一些页面
- PHP 可以加密数据
通过 PHP,您不再限于输出 HTML。您可以输出图像、PDF 文件,甚至 Flash 电影。您还可以输出任意的文本,比如 XHTML 和 XML。
基本的 PHP 语法
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束:
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。
PHP echo 和 print 语句
echo 和 print 区别:
- echo - 可以输出一个或多个字符串
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
- print - 只允许输出一个字符串,返回值总为 1
print 同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
注释
//单行注释 /**/多行注释
PHP 变量
与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。
变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。
PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
PHP 语句和 PHP 变量都是区分大小写的。
创建(声明)PHP 变量
PHP 没有声明变量的命令。
变量在第一次赋值给它的时候被创建
- <?php
- $txt="Hello world!";
- $x=5;
- $y=10.5;
- ?>
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
- local
- global
- static
- parameter
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
PHP global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
- <?php
- $x=5;
- $y=10;
- function myTest()
- {
- global $x,$y;
- $y=$x+$y;
- }
- myTest();
- echo $y; // 输出 15
- ?>
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
也可以写成:
- <?php
- $x=5;
- $y=10;
- function myTest()
- {
- $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
- }
- myTest();
- echo $y;
- ?>
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
- <?php
- function myTest()
- {
- static $x=0;
- echo $x;
- $x++;
- echo PHP_EOL; // 换行符
- }
- myTest();
- myTest();
- myTest();
- ?>
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。
PHP EOF(heredoc) 使用说明
PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。
使用概述:
- 1. 必须后接分号,否则编译通不过。
- 2. EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 3. 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 4. 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 5. 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
- <?php
- echo <<<EOF
- <h1>我的第一个标题</h1>
- <p>我的第一个段落。</p>
- EOF;
- // 结束需要独立一行且前后不能空格
- ?>
注意:
1.以 <<
2.开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接,如下:
- <?php
- $name="runoob";
- $a= <<
- "abc"$name
- "123"
- EOF;
- // 结束需要独立一行且前后不能空格
- echo $a;
- ?>
PHP 类型比较
虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。
- 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
- 严格比较:用三个等号 === 比较,除了比较值,也比较类型。
例如,"42" 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 "FALSE" 是一个字符串。
- <?php
- if(42 == "42") {
- echo '1、值相等';
- }
- echo PHP_EOL; // 换行符
- if(42 === "42") {
- echo '2、类型相等';
- } else {
- echo '3、类型不相等';
- }
- ?>
- 1、值相等
- 3、类型不相等
PHP 常量
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的。
注意:自 PHP 7.3.0 开始,定义不区分大小写的常量已被弃用。从 PHP 8.0.0 开始,只有 false 是可接受的值,传递 true 将产生一个警告。
常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用
字符串
PHP 并置运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来。
下面的实例演示了如何将两个字符串变量连接在一起:
- <?php
- $txt1="Hello world!";
- $txt2="What a nice day!";
- echo $txt1 . " " . $txt2;
- ?>
上面的代码将输出:Hello world! What a nice day!
提示:在上面的代码中,我们已经使用了两次并置运算符。这是由于我们需要在两个字符串之间插入一个空格。
PHP strlen() 函数
有时知道字符串值的长度是很有用的。
strlen() 函数返回字符串的长度(字节数)。
下面的实例返回字符串 "Hello world!" 的长度:
- <?php
- echo strlen("Hello world!");
- ?>
PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
下面的实例在字符串 "Hello world!" 中查找文本 "world":
- <?php
- echo strpos("Hello world!","world");
- ?>
上面的代码将输出:6
PHP 运算符(仅补充)
PHP 算术运算符
PHP 赋值运算符
PHP 比较运算符
PHP 逻辑运算符
数组运算符
三元运算符
另一个条件运算符是"?:"(或三元)运算符 。
语法格式
(expr1) ? (expr2) : (expr3)
组合比较符(PHP7+)
PHP7+ 支持组合比较符(combined comparison operator)也称之为太空船操作符,符号为 <=>。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。
语法格式如下:
$c = $a <=> $b;
解析如下:
- 如果 $a > $b, 则 $c 的值为 1。
- 如果 $a == $b, 则 $c 的值为 0。
- 如果 $a < $b, 则 $c 的值为 -1
PHP 条件语句
当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。
在 PHP 中,提供了下列条件语句:
- if 语句 - 在条件成立时执行代码
- if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
- if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
- switch 语句 - 在若干条件之一成立时执行一个代码块
- <?php
- switch (expression) {
- case value1:
- // 代码块1
- break;
- case value2:
- // 代码块2
- break;
- // 更多的 case 语句
- default:
- // 如果没有匹配的值
- }
- ?>
PHP 数组
在 PHP 中创建数组
在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:
- 数值数组 - 带有数字 ID 键的数组
- 关联数组 - 带有指定的键的数组,每个键关联一个值
- 多维数组 - 包含一个或多个数组的数组
PHP 数值数组
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");
人工分配 ID 键:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量):
- <?php
- $cars=array("Volvo","BMW","Toyota");
- echo count($cars);
- ?>
遍历数值数组
遍历并打印数值数组中的所有值,您可以使用 for 循环,如下所示:
- <?php
- $cars=array("Volvo","BMW","Toyota");
- $arrlength=count($cars);
- for($x=0;$x<$arrlength;$x++)
- {
- echo $cars[$x];
- echo "
"; - }
- ?>
PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
遍历关联数组
遍历并打印关联数组中的所有值,您可以使用 foreach 循环:
- <?php
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
- foreach($age as $x=>$x_value)
- {
- echo "Key=" . $x . ", Value=" . $x_value;
- echo "
"; - }
- ?>
PHP - 数组排序函数
PHP 数组排序函数:
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
asort() - 根据数组的值,对数组进行升序排列
- <?php
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
- asort($age);?>
ksort() - 根据数组的键,对数组进行升序排列
下面的实例根据数组的键,对关联数组进行升序排列:
- <?php
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
- ksort($age);?>
PHP 超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
本章节我们将讲解几个常用的超级全局变量,其余变量我们在接下来几个章节会介绍到。
PHP 循环
在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。
在 PHP 中,提供了下列循环语句:
- while - 只要指定的条件成立,则循环执行代码块
- do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
- for - 循环执行代码块指定的次数
- foreach - 根据数组中每个元素来循环代码块
foreach 循环
foreach 循环用于遍历数组。
语法
- foreach ($array as $value)
- {
- 要执行代码;
- }
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
- foreach ($array as $key => $value)
- {
- 要执行代码;
- }
每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。
实例:
- <?php
- $x=array("Google","Runoob","Taobao");
- foreach ($x as $value)
- {
- echo $value . PHP_EOL;
- }
- ?>
PHP 函数
创建 PHP 函数
函数是通过调用函数来执行的。
语法
- <?php
- function functionName()
- {
- // 要执行的代码
- }
- ?>
PHP 函数准则:
- 函数的名称应该提示出它的功能
- 函数名称以字母或下划线开头(不能以数字开头)
PHP 变量函数
变量函数是指在 PHP 中,将一个变量作为函数名来调用的函数。
变量函数可以让我们在运行时动态地决定调用哪个函数。
- <?php
- function foo() {
- echo "In foo()
\n"; - }
- function bar($arg = '')
- {
- echo "In bar(); argument was '$arg'.
\n"; - }
- // 使用 echo 的包装函数
- function echoit($string)
- {
- echo $string;
- }
- $func = 'foo';
- $func(); // 调用 foo()
- $func = 'bar';
- $func('test'); // 调用 bar()
- $func = 'echoit';
- $func('test'); // 调用 echoit()
- ?>

也可以用变量函数的语法来调用一个对象的方法。
- <?php
- class Foo
- {
- function Variable()
- {
- $name = 'Bar';
- $this->$name(); // 调用 Bar() 方法
- }
- function Bar()
- {
- echo "This is Bar";
- }
- }
- $foo = new Foo();
- $funcname = "Variable";
- $foo->$funcname(); // 调用 $foo->Variable()
- ?>

面向对象(与Java相似)
面向对象编程的三个主要特性:
-
封装(Encapsulation):指将对象的属性和方法封装在一起,使得外部无法直接访问和修改对象的内部状态。通过使用访问控制修饰符(public、private、protected)来限制属性和方法的访问权限,从而实现封装。
-
继承(Inheritance):指可以创建一个新的类,该类继承了父类的属性和方法,并且可以添加自己的属性和方法。通过继承,可以避免重复编写相似的代码,并且可以实现代码的重用。
-
多态(Polymorphism):指可以使用一个父类类型的变量来引用不同子类类型的对象,从而实现对不同对象的统一操作。多态可以使得代码更加灵活,具有更好的可扩展性和可维护性。在 PHP 中,多态可以通过实现接口(interface)和使用抽象类(abstract class)来实现。
PHP 类定义
PHP 定义类通常语法格式如下:
- <?php
- class phpClass {
- var $var1;
- var $var2 = "constant string";
- function myfunc ($arg1, $arg2) {
- [..]
- }
- [..]
- }
- ?>
解析如下:
类使用 class 关键字后加上类名定义。
类名后的一对大括号({})内可以定义变量和方法。
类的变量使用 var 来声明, 变量也可以初始化值。
函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
PHP 中创建对象
类创建后,我们可以使用 new 运算符来实例化该类的对象:
- $runoob = new Site;
- $taobao = new Site;
- $google = new Site;
以上代码我们创建了三个对象,三个对象各自都是独立的,接下来我们来看看如何访问成员方法与成员变量。
调用成员方法
在实例化对象后,我们可以使用该对象调用成员方法,该对象的成员方法只能操作该对象的成员变量:
- <?php
- class Site {
- /* 成员变量 */
- var $url;
- var $title;
- /* 成员函数 */
- function setUrl($par){
- $this->url = $par;
- }
- function getUrl(){
- echo $this->url . PHP_EOL;
- }
- function setTitle($par){
- $this->title = $par;
- }
- function getTitle(){
- echo $this->title . PHP_EOL;
- }
- }
- $runoob = new Site;
- $taobao = new Site;
- $google = new Site;
- // 调用成员函数,设置标题和URL
- $runoob->setTitle( "菜鸟教程" );
- $taobao->setTitle( "淘宝" );
- $google->setTitle( "Google 搜索" );
- $runoob->setUrl( 'www.runoob.com' );
- $taobao->setUrl( 'www.taobao.com' );
- $google->setUrl( 'www.google.com' );
- // 调用成员函数,获取标题和URL
- $runoob->getTitle();
- $taobao->getTitle();
- $google->getTitle();
- $runoob->getUrl();
- $taobao->getUrl();
- $google->getUrl();
- ?>

PHP 构造函数
构造函数是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,在创建对象的语句中与 new 运算符一起使用。
PHP 5 允许开发者在一个类中定义一个方法作为构造函数,语法格式如下:
void __construct ([ mixed $args [, $... ]] )析构函数
析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。
PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,其语法格式如下:
void __destruct ( void )继承
PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承,格式如下:
- class Child extends Parent {
- // 代码部分
- }
方法重写
如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
实例中重写了 getUrl 与 getTitle 方法:
- function getUrl() {
- echo $this->url . PHP_EOL;
- return $this->url;
- }
- function getTitle(){
- echo $this->title . PHP_EOL;
- return $this->title;
- }
访问控制
PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。
- public(公有):公有的类成员可以在任何地方被访问。
- protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。
- private(私有):私有的类成员则只能被其定义所在的类访问。
方法的访问控制
类中的方法可以被定义为公有,私有或受保护。如果没有设置这些关键字,则该方法默认为公有。
接口
使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
接口中定义的所有方法都必须是公有,这是接口的特性。
要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。
- <?php
- // 声明一个'iTemplate'接口
- interface iTemplate
- {
- public function setVariable($name, $var);
- public function getHtml($template);
- }
- // 实现接口
- class Template implements iTemplate
- {
- private $vars = array();
- public function setVariable($name, $var)
- {
- $this->vars[$name] = $var;
- }
- public function getHtml($template)
- {
- foreach($this->vars as $name => $value) {
- $template = str_replace('{' . $name . '}', $value, $template);
- }
- return $template;
- }
- }

抽象类
任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。
定义为抽象的类不能被实例化。
被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。
继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的。
- <?php
- abstract class AbstractClass
- {
- // 强制要求子类定义这些方法
- abstract protected function getValue();
- abstract protected function prefixValue($prefix);
- // 普通方法(非抽象方法)
- public function printOut() {
- print $this->getValue() . PHP_EOL;
- }
- }
- class ConcreteClass1 extends AbstractClass
- {
- protected function getValue() {
- return "ConcreteClass1";
- }
- public function prefixValue($prefix) {
- return "{$prefix}ConcreteClass1";
- }
- }
- class ConcreteClass2 extends AbstractClass
- {
- public function getValue() {
- return "ConcreteClass2";
- }
- public function prefixValue($prefix) {
- return "{$prefix}ConcreteClass2";
- }
- }
- $class1 = new ConcreteClass1;
- $class1->printOut();
- echo $class1->prefixValue('FOO_') . PHP_EOL;
- $class2 = new ConcreteClass2;
- $class2->printOut();
- echo $class2->prefixValue('FOO_') . PHP_EOL;
- ?>

PHP 表单和用户输入
PHP 表单处理
有一点很重要的事情值得注意,当处理 HTML 表单时,PHP 能把来自 HTML 页面中的表单元素自动变成可供 PHP 脚本使用。
下面的实例包含了一个 HTML 表单,带有两个输入框和一个提交按钮。
- <html>
- <head>
- <meta charset="utf-8">
- <title>菜鸟教程(runoob.com)</title>
- </head>
- <body>
- <form action="welcome.php" method="post">
- 名字: <input type="text" name="fname">
- 年龄: <input type="text" name="age">
- <input type="submit" value="提交">
- </form>
- </body>
- </html>
当用户填写完上面的表单并点击提交按钮时,表单的数据会被送往名为 "welcome.php" 的 PHP 文件:
- 欢迎<?php echo $_POST["fname"]; ?>!
- 你的年龄是 <?php echo $_POST["age"]; ?> 岁。
表单元素
HTML 表单代码如下所示:
什么是 $_SERVER["PHP_SELF"] 变量?
$_SERVER["PHP_SELF"]是超级全局变量,返回当前正在执行脚本的文件名,与 document root相关。
该表单使用 method="post" 方法来提交数据。
所以, $_SERVER["PHP_SELF"] 会发送表单数据到当前页面,而不是跳转到不同的页面。
PHP表单中需引起注重的地方?
$_SERVER["PHP_SELF"] 变量有可能会被黑客使用!
当黑客使用跨网站脚本的HTTP链接来攻击时,$_SERVER["PHP_SELF"]服务器变量也会被植入脚本。原因就是跨网站脚本是附在执行文件的路径后面的,因此$_SERVER["PHP_SELF"]的字符串就会包含HTTP链接后面的JavaScript程序代码。
什么是 htmlspecialchars()方法?
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
- & (和号) 成为 &
- " (双引号) 成为 "
- ' (单引号) 成为 '
- < (小于) 成为 <
- > (大于) 成为 >
如何避免 $_SERVER["PHP_SELF"] 被利用?
$_SERVER["PHP_SELF"] 可以通过 htmlspecialchars() 函数来避免被利用。
form 代码如下所示:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">htmlspecialchars() 把一些预定义的字符转换为 HTML 实体。现在如果用户想利用 PHP_SELF 变量, 结果将输出如下所示:
<form method="post" action="test_form.php/"><script>alert('hacked')</script>">$_GET 变量
预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。
从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制
- <html>
- <head>
- <meta charset="utf-8">
- <title>菜鸟教程(runoob.com)</title>
- </head>
- <body>
- <form action="welcome.php" method="get">
- 名字: <input type="text" name="fname">
- 年龄: <input type="text" name="age">
- <input type="submit" value="提交">
- </form>
- </body>
- </html>
何时使用 method="get"?
在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中。
注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!
然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。
$_POST 变量
预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。
从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
注释:然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。
- <html>
- <head>
- <meta charset="utf-8">
- <title>菜鸟教程(runoob.com)</title>
- </head>
- <body>
- <form action="welcome.php" method="post">
- 名字: <input type="text" name="fname">
- 年龄: <input type="text" name="age">
- <input type="submit" value="提交">
- </form>
- </body>
- </html>
何时使用 method="post"?
从带有 POST 方法的表单发送的信息,对任何人都是不可见的,并且对发送信息的量也没有限制。
然而,由于变量不显示在 URL 中,所以无法把页面加入书签。
PHP $_REQUEST 变量
预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容。
$_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。
SQL+Mysql数据库(from黑马程序员)
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |