Contents
  1. 1. PHP笔记
    1. 1.1. 1、常用工具&常用库
      1. 1.1.1. (1)firebug
      2. 1.1.2. (2)livehttpheaders
      3. 1.1.3. (3)YUI、JQuery等UI库
    2. 1.2. 2、环境配置的一些名词
    3. 1.3. 3、显示代码所有错误
    4. 1.4. 4、常用函数
    5. 1.5. 5、数据库相关
    6. 1.6. 6、Javascript相关
    7. 1.7. 安全
    8. 1.8. 问题:
      1. 1.8.1. mysql 创建外键
      2. 1.8.2. mysql MAMP配置文件路径
      3. 1.8.3. mac下安装pecl
      4. 1.8.4. 前端

PHP笔记

1、常用工具&常用库

(1)firebug

firebug是firefox浏览器下面的一个插件(safari上面也有Firebug Lite for Safari),可以用来调试Html、CSS、JS等。

(2)livehttpheaders

捕捉Httpheader的利器。

(3)YUI、JQuery等UI库

可以解决一些浏览器兼容问题。
Dojo、ExtJS、JQuery、MooTools、ProtoType、script aculo us、 YUI
www.quirksmode.org

2、环境配置的一些名词

CNAME、302临时跳转、301永久跳转(重定向)、suphp保护代码、.htaccess文件(分布式配置文件),具体用到是玩。

目录权限:一般公共目录为701或711,php file为600,css 静态Html图片等为644.

报403是因为权限问题。

haproxy可以实现负载均衡和冗余

memcached Daemon

3、显示代码所有错误

<?php
error_reporting(E_ALL);
ini_set(“display_errors”, TRUE);
>

@可以抑制报错 小心使用

4、常用函数

1、htmlspecialchars 去掉html标签 特殊字符

2、session_start 检测服务器发送的HTTP头信息,是否有cookie头信息,有的话是否有某键叫PHPSESSIONID,有的话对应的长传随机值是什么,函数会在文件系统中找到对应文本文件

3、isset 是否已经设置

4、=相当于printecho

5、<?php xx :?>冒号表示退出php模式,http://blog.csdn.net/xin_king/article/details/38274917

6、mysql_real_escape_string这个函数能够防止sql注入 接受用户输入时候调用

7、die($sql)数据库连接失败时调用

8、mysql_num_rows($result)记录行数

9、mysql_fetch_assoc($result)从结果集中返回一个关联数据,如果没有则返回false.

10、select 1 from tablename where xx = “xx”小技巧,这个sql语句可以用来查看是否匹配,如果匹配上会返回1.

11、php json_encode();
eval()
加括号表示是对象
headr(“Content-type: application/json”)

5、数据库相关

1、PASSWORD加密 AED_ENCRYPT加密生成二进制字符串 数据库字段类型。
数据库导出sql文件时,密码字段也许不是我们想要的。将用户输入的密码作为秘钥

2、mysql中id类型一般为无符号整型。

3、inner join 表示内连接需要带条件 如where
cross join 表示交叉连接
left outer join 外连接和左连接,除了条件匹配数据还有左表的非匹配数据,而内连接只有匹配数据

4、数据库中尽量不要使用删除数据,而采用标记的形式

5、InnoDB myisasm(不是很明白)

6、读锁定、写锁定,用事务可以解决竞态条件问题

7、rollback

6、Javascript相关

1、<![CDATA[ 盛大文学疯狂扩展 单季收入过亿
]]> 将其解析为可执行代码 防止一些符号不能识别
某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 “<![CDATA[“ 开始,由 “]]>” 结束:

2、浏览器 从左到右 从上到下阅读代码 注意javascript的载入方式 window.onload = function(){};可以解决javascript 未读完dom时候执行问题 页面执行完后会执行这个函数,用户可以禁用js和cookie

3、小技巧var a = new Array(); 或 var a = []; 定义一个数组
a[0] = “foo” 定义数组
小技巧 a[a.length] = “foo”; a[a.length] = “bar”; 长度变化

4、document.forms 所有表单元素
document.getElementById(“xxid”) 访问元素 jquery 中访问元素$

5、javascript中正则表达式 用/正则/ 包裹 .表示任意字符.+表示很多任意字符.表示真正的.,$表示结束

6、obj.key obj[“key”] var obj = { key : value} json

7、css属性是连字符 javascript中用驼峰式访问 如font-family fontFamily

8、window表示所有内容所在的super structure document是引用服务器端的所有内容;window.setInterval 设置定时器

9、www.jslint.com 校验 静态分析
js压缩工具 JSMin packer shrinkSafe YUI compressor

10、AJAX:
abort 终止当前请求
getAllResponseHeaders
getResponseHeader(header) http 头
open(method,url)
open(method,url,async)
open(method,url,async,user)
open(method,url,async,user, password)
send()
send(data)
setRequestHeader(header,value)

submit后返回true将会跳转页面,返回false将不会
xhr.readyState == 4 为完全加载状态
其他状态
0(unitialized)
1 (open)
2 (sent)
3 (receiving)
4 (loaded)

11、ajax 同源策略 JS只能与同一个域中的页面进行通讯,同源策略主要是浏览器的支持,也有例外 如JSONP技术
由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
同源条件
协议相同(比如都是http://)
端口相同(通常都是80)
域名相同

12、innerHtml innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML。 有安全风险,小心使用
跨站脚本攻击
strip_tag剥离标签

13、强制浏览器打开新的页面 target=“_blank”
滚到上面 — 点击回到顶部
mailto 点击出现邮件客户端

安全

1、Telnet 密码明文 是ssh的鼻祖, ssh是安全shell
网卡混杂模式
ssh 默认TCP端口22 创建隧道
FTP不安全 SFTP安全

2、Validate local HTML 是否符合w3c标准
suPHP / fastCGI
session 有可能放数据库(session粘滞)
session劫持
session cookie http 是明文的,https是加密的
php.ini中可以配置session cookie标记为 secure 这样浏览器就会只在https时发送这个加密session cookie(https) SSL(数字签名证书)是https的安全基础
HTTPS Everywhere Force TLS 客户端改成https
VPN安全

Wireshark 嗅探工具

3、SSL:.key .csr
通配SSL证书 端口443
php apache版本 可以关掉(以防止针对版本漏洞攻击) http head

4、NFS network file system 网络文件系统
iSCSI 文件共享

问题:

mysql 创建外键

alter table hs_order add constraint cust foreign key (cust_id) references hs_customer(cust_id)
注意外键类型必须一致否则报错,做外键关联的时候,一定要保证你关联表的主键是唯一的。

mysql MAMP配置文件路径

Using MySQL command line with MAMP
To use the MySQL command line with MAMP or MAMP PRO,
perform the following steps:
Start MAMP or MAMP PRO
Start the server
Open Terminal (Applications - Utilities)
Type in: (one line)
/Applications/MAMP/Library/bin/mysql —host=localhost -uroot -proot

Now you can use the MySQL command line. For exmaple to show all your databases with show databases;

修改mysql配置文件/etc/my.cnf

sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

MAMP/Library/support-files

sudo vi /etc/my.cnf

[client]部分加入:
default-character-set=utf8
[mysqld]部分加入:
character-set-server=utf8

mac下安装pecl

cd /usr/lib/php
sudo php install-pear-nozlib.phar

Edit:

/etc/php.ini and find the line: ;
include_path = “.:/php/includes”
修改为:
include_path = “.:/usr/lib/php/pear”
sudo pear channel-update pear.php.net
sudo pecl channel-update pecl.php.net
sudo pear upgrade-all

前端

jquery中.xxx表示 class为xxx的所有元素,
#xxx表示id = xxx的第一个元素

js中接收php数组
<?php echo json_encode($customer_list);?>

Contents
  1. 1. PHP笔记
    1. 1.1. 1、常用工具&常用库
      1. 1.1.1. (1)firebug
      2. 1.1.2. (2)livehttpheaders
      3. 1.1.3. (3)YUI、JQuery等UI库
    2. 1.2. 2、环境配置的一些名词
    3. 1.3. 3、显示代码所有错误
    4. 1.4. 4、常用函数
    5. 1.5. 5、数据库相关
    6. 1.6. 6、Javascript相关
    7. 1.7. 安全
    8. 1.8. 问题:
      1. 1.8.1. mysql 创建外键
      2. 1.8.2. mysql MAMP配置文件路径
      3. 1.8.3. mac下安装pecl
      4. 1.8.4. 前端