Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

Recommended Posts

PHP变量规则

  • 变量以$符号开头,其后是变量的名称;
  • 变量名称必须已字母或者下划线开头;
  • 变量名称不能以数字开头;
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9以及 _ );
  • 变量名称对大小写敏感($y和$Y是两个不同的变量)

注释:PHP变量名称对大小写敏感

创建PHP变量

PHP变量没有创建变量的命令。变量会在首次为其赋值时被创建。

PHP是一门类型松散的语言

注意我们不必告知PHP变量的数据类型。

PHP根据它的值,自动把变量转换为正确的数据类型。

在诸如C和C++以及Java之类的语言中,程序员必须在使用变量之前声明他的名称和类型。

PHP变量作用域

  • local(局部)
  • global(全局)
  • static(静态)

PHP global关键词

global关键词用于在函数内访问全局变量,即可以在函数内部变量前面使用global关键词。

PHP同时在名为$GLOBALS[index]的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。如:

image-20220713121144073

image-20220713121215734

PHP static关键词

通常在函数完成/执行后,会删除所有的变量。不过,有时我需要不删除某个局部变量,可以在函数内首次声明变量时使用static关键词。

PHP echo和print语句

  • echo 能够输出一个以上的字符串;
  • print 只能输出一个字符串,并始终返回1。

PHP数据类型

var_dump() 返回变量的数据类型和值。

PHP数组的数据类型:

image-20220715115951540

PHP字符串函数

strlen():返回字符串的长度。

str_word_count() : 对字符串中的 单词进行计数。

strrev() : 反转字符串。

strpos() :用于检索字符串内指定的字符或者文本,如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。

str_replace() 函数用一些字符串替换字符串中的另一些字符。

PHP常量

常量名称前面没有$符号,与变量不同,常量贯穿整个脚本是自动全局的。

如需设置常量,请使用 define() 函数 - 它使用三个参数:

  1. 首个参数定义常量的名称
  2. 第二个参数定义常量的值
  3. 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。

image-20220715121110644

PHP字符串运算符

image-20220715175041212

PHP比较运算符

PHP比较运算符用于比较两个值(数字或者字符串):

image-20220715185911815

image-20220715190016037

PHP数组运算符

image-20220715190213269

PHP foreach循环

foreach循环只适用于数组,并用于便利数组中的每一个键/值对。

每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。

PHP函数

函数名对大小写不敏感。

PHP数组

在 PHP 中,有三种数组类型:

  • 索引数组 - 带有数字索引的数组

    image-20220716183048179

  • 关联数组 - 带有指定键的数组

image-20220716183127190

  • 多维数组 - 包含一个或多个数组的数组

count()函数用于返回数组的长度。

PHP中数组的排序函数

  • sort() - 以升序对数组排序
  • rsort() - 以降序对数组排序
  • asort() - 根据值,以升序对关联数组进行排序
  • ksort() - 根据键,以升序对关联数组进行排序
  • arsort() - 根据值,以降序对关联数组进行排序
  • krsort() - 根据键,以降序对关联数组进行排序

PHP全局变量——超全局变量

超全局变量在PHP4.1.0中引入,是在全部作用域中始终可用的内置变量。在函数或方法中无需执行 global $variable; 就可以访问它们。https://www.w3school.com.cn/php/php_superglobals.asp

  • $GLOBALS

$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。

PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。

  • $_SERVER 保存关于报头、路径和脚本位置的信息。

  • $_REQUEST 用于收集 HTML 表单提交的数据。

  • $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。

  • $_GET 可用于收集提交 HTML 表单 (method="get") 之后的表单数据; 也可以收集 URL 中的发送的数据。

  • $_FILES

  • $_ENV

  • $_COOKIE

  • $_SESSION

PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)。

GET vs. POST

GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。

GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域 - 无需任何特殊代码,您能够从任何函数、类或文件访问它们。

$_GET 是通过 URL 参数传递到当前脚本的变量数组。

$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

何时使用 GET?

通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大约 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。

GET 可用于发送非敏感的数据。

何时使用 POST?

通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制

此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。

不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。

什么是 $_SERVER["PHP_SELF"] 变量?

$_SERVER["PHP_SELF"] 是一种超全局变量,它返回当前执行脚本的文件名。该变量能够被黑客利用进行XSS攻击。

因此,$_SERVER["PHP_SELF"] 将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就能够在表单页面获得错误提示信息。

image-20220724205301402

什么是 htmlspecialchars() 函数?

htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 < 和 > 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。

image-20220724205138758

在用户提交该表单时,我们还要做两件事:

  1. (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
  2. (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\)

我们可以创建一个test_input() 函数,用于检查每个 $_POST 变量

image-20220724205412992

preg_match() 函数

检索字符串的模式,如果模式存在则返回 true,否则返回 false。例如检查输入的字段是否包含字母和空格。

以下的代码用于验证URL:

image-20220724213223236

PHP ——如何在用户提交表单后保留输入字段中的值

image-20220724213830873

(PHP基础教程和PHP表单部分到此结束!!!)

Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...