php

require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

Session

session_start(); 开始记录
$_SESSION['views'] 根据名字获取session
unset(¥SESSION['views']) 或 session_destroy() 销毁session

Exception

抛出异常 try 中throw
抓包异常 catch
set_exception_handler() 设置所有未定义的错误抛出

过滤器

"filter" 制定方法
"options" 过滤条件

  • 过滤多个输入
    filter_input_array() 函数来过滤三个 GET 变量。
  • Filter Callback
    调用自己的函数,array("options"=>"xxx")

接口

声明一个接口以及内部的方法,但不需要具体内容。
interface iTemplate
{
}
实现接口
class Template implements iTemplate

Mysql

创建连接 new mysqli($servername, $username, $password);
检测连接 $conn->connect_error
关闭连接 $conn->close(); mysqli_close($conn);
SQl语句 $conn->query()

PDO

开启扩展 extension=php_pdo.dll
初始化新对象 $dbh = new PDO($dsn, $user, $pass);
错误对象 PDOException

  • 预处理
    mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);

SQL语句

php中sql语句拼接,$sql="SELECT * FROM Websites WHERE id = '".$q."'";
'".$q."'

AJAX

能够默写出
XMLHttpRequest 对象用于和服务器交换数据, open() 和 send() 方法

open

xmlhttp.open("GET/POST",服务器上的文件,async:true(异步)或 false(同步));
如果需要使用,必须true异步,必须确定onreadystatechange 事件中的就绪状态时执行的函数;如果小型请求中false同步,不需要onreadystatechange 函数 ,获取的代码放到 send() 语句后面即可:
常用GET,以下使用POST:

  • 无法使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(POST 没有数据量限制)
  • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
  1. 在open()中传入的php文件, 如果不加参数常使用的缓存文件,可以将文件后参数添加改成
    demo_get.php?t=" + Math.random()
  2. GET 方法发送信息,向 URL 添加信息:

send

xmlhttp.send(); 仅为post请求

  1. 像 HTML 表单 POST 数据,使用 setRequestHeader() 来添加 HTTP 头。在 send() 方法中规定发送的数据:
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("fname=Henry&lname=Ford");
    其中 setRequestHeader(header,value)

response

.responseText; 字符串形式
.responseXML 解析为xml

onreadystatechange

  • readyState 属性存有 XMLHttpRequest 的状态信息,判断改变时触发onreadystatechange 函数,数字代表:
    0: 请求未初始化
    1: 服务器连接已建立
    2: 请求已接收
    3: 请求处理中
    4: 请求已完成,且响应已就绪
  • status数字代表:
    1xx:信息响应类,表示接收到请求并且继续处理
    2xx:处理成功响应类,表示动作被成功接收、理解和接受 200: "OK"
    3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
    4xx:客户端错误,客户请求包含语法错误或者是不能正确执行 404: 未找到页面
    5xx:服务端错误,服务器不能正确执行一个正确的请求

所以 readyState 等于 4 且状态为 200 时,表示响应已就绪。
首先判断输入框是否有数据,没有即为空,有即执行:

//创建XMLHttpRequest对象
if (window.XMLHttpRequest)
    {
        // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码
        xmlhttp=new XMLHttpRequest();
    }
else
    {    
        //IE6, IE5 浏览器执行的代码
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
//创建在服务器响应就绪时执行的函数
xmlhttp.onreadystatechange=function()
    {
        //state:  satus:
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
    }
//向服务器上的文件发送请求,添加到 URL 末端的参数(q)(包含输入框的内容)
    xmlhttp.open("GET","gethint.php?q="+str,true);
    xmlhttp.send();

浏览器:创建xmlhttprequest对象,发送httprequest 给
Internet:处理httprequest并返回数据 给
浏览器:JS处理返回的数据 ,更新内容
简单来说,创建XMLHttpRequest,open以后send给onreadystatechange中

回调函数

以参数形式传递给另一个函数的函数。将存在的多个AJAX函数引向同一个function

var xmlhttp;
function loadXMLDoc(url,cfunc)
{
  if (window.XMLHttpRequest)
  {// IE7+, Firefox, Chrome, Opera, Safari 代码
      xmlhttp=new XMLHttpRequest();
  }
  else
  {// IE6, IE5 代码
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=cfunc;
  xmlhttp.open("GET",url,true);
  xmlhttp.send();
}
function myFunction()
{
    loadXMLDoc("/try/ajax/ajax_info.txt",function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
    });
}

跨域 Access-Control-Allow-Origin

在A域名下的server.php中添加头部,

  1. 指定某域名
    header('Access-Control-Allow-Origin:B域名');
  2. 允许多个域名访问
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';    
$allow_origin = array(  
    B域名
    C域名
);    
if(in_array($origin, $allow_origin)){  
    header('Access-Control-Allow-Origin:'.$origin);       
} 

3、允许所有域名访问
header('Access-Control-Allow-Origin:*');

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容

  • 这里讲的是原生的ajax数据请求,也是比较基础的,适合新手去看 一.效果图 HTML: <!DOCTYPE> 实时...
    九尾74阅读 1,544评论 0 1
  • 1、谈谈你对php、mysql、apache的认识 (评分标准:4-3-3) PHP:是一种通用开源脚本语言。语法...
    3hours阅读 440评论 0 2
  • 之前我写过一篇《多Web服务器之间共享Session的解决方案》,今天在网络上看到一篇PHP高手Nio写的文章,觉...
    galenv阅读 390评论 2 1
  • 属于简易版,比较适合没有后台基础的初学者入门,使用Ajax响应php对mysql数据库进行操作,将网站搭建在xam...
    dovlie阅读 939评论 0 5
  • 创建XMLHttpRequest 对象 所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及...
    Miracle_6e4f阅读 443评论 0 0