2014年2月

PHP 关于传值:GET与POST

事实上,这不应该属于PHP的部分而更应该说是HTTP协议(?)所以说我还得去补一补协议的说……

传值分为GET和POST,POST相对比较保险,因为内容不可见的,想传什么也可以加个hidden传过去(唔,如果有人篡改表单会怎么样),GET的实现比较容易,网址后面加个?xxx=yyy,那么我们就能用$_GET['xxx']这个超全局变量获取到yyy了,可是更不好,万一有人改了这个就很混乱了=A=

所以光学PHP还是不大够啊,目前我的大多数内容都是用GET来传值的=_=因为GET更容易,POST我的能力内只有提交表单才能POST一下=A=

javascript 返回上一页

用到的时候就搜索系列:

javascript:history.go(-1)

加在button上加点击时间就可以当传送门,实际上也就相当于浏览器的后退按钮:

    <button type="button" onclick="javascript:history.go(-1)">返回</button>

MYSQL 限制输出列与偏移

如果要限制输出1行 怎么办?其实用LIMIT就能搞定了

用法大概酱紫:

SELECT * FROM table LIMIT 1

那么如果要偏移,也就是取第三行呢:(offset是第一个参数,limit是第二个)

SELECT * FROM table LIMIT 2, 1

当然还找到了一个更酷的用法:

//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: 
SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.

通过limit和offset的连用就能实现分页功能了

不扩展的阅读:http://www.phpweblog.net/peiyinjin/archive/2008/04/15/3199.html

SQL 关联查找-LEFT JOIN

这是我初期的一大问题,两个表之间怎么建立关联,实际上,有个东西叫做JOIN,然后还有INNER JOIN,RIGHT JOIN,LEFT JOIN

我基本上用的都是LEFT JOIN,那么RIGHT JOIN大家懂得=A=其他我也没用过

不同的参考:

JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行

- 阅读剩余部分 -

PHP 创建数组坑一枚

关于这点的详细阅读:http://php.net/manual/zh/language.types.array.php

5.4 起可以使用短数组定义语法,用 [] 替代 array()

我们必须在意的地方是:从5.4开始,不注意就死了,因为现在主流虚拟主机用的还是5.3之类的,版本不够新,导致所有的数组定义方式都得改成老版,这神坑害我把整个项目的array都重写了=A=,虽然短数组定义比起array()好,但是兼容性问题也不可以忽略,尤其是=A=当你买不起VPS或者这货要给好多人用的时候。

CSS 元素位置小结

M-Show时用bootstrap想把copyright的部分放在导航右下,一直习惯用margin,padding,导致忽略了另一个东西,那就是left,right,top,bottom,这四个货直接决定位置啊……设成absolute以后就能直接定位了=A=当然,因为本身用paddingmargin的关系还要清零才能达到最右的效果=A=

所以效果就在上面的链接,相关代码:

#copyright {
    position: absolute;
    bottom: 3%;
    padding: 0px;
    margin: 0px;
    text-align: right;
    right: 10%;
}

PHP 关于文本框过滤避免XSS攻击

其实这是一个很二的故事OTZ

我当时在想,用htmlspecialchars()可以把一些字符转义,这样就避免了很多问题,可是这样<br/>不是也被转了吗=A=

结果其实只是htmlspecialchars()放在nl2br()前面=A=

nl2br()其实就是把\n变成<br/>来换行,我觉得这两货是非常有爱的CP

htmlspecialchars()扩展阅读:http://www.w3school.com.cn/php/func_string_htmlspecialchars.asp
nl2br()扩展阅读:http://www.w3school.com.cn/php/func_string_nl2br.asp

curl获取QQ头像并缓存

这是M-Show中用到的一个最神奇的东西,其实我至今还是不会用,只是网上找到了类似的改了一下,顺便伪造来路这样防盗链机制就失效了=A=

演示

演示部分不包括缓存,所以载入会慢,为了良好的载入速度和不吃CPU(小新说的),缓存非常有必要,缓存的方法其实就是存到本地,判断是否已经获取,缓存完毕的重定向到本地的位置就好了=A=

- 阅读剩余部分 -

网页重定向/跳转的几种方法

这次在做两个project都多少用到了,JS什么的暂时是记不住了,所以这里先mark一下,PHP的方法似乎比较好(是在书上看到的=A=),至于框架还有框架的方法=A=.htacess也有它的方法什么的我已经不想说什么啦=A=

JS:

<script>window.location.href='http://codesky.me';</script>

PHP:

header('Location: http://codesky.me/');

总之差不多一个意思=A=