文章标签 ‘笔记’
转载时请标明文章原始出处和作者信息, 作者: lostsnow.http://www.lsproc.com/blog/cakephp_note/
1. 自定义 layout
在 cakephp 中 layout 默认指向 /app/views/layouts/default.thtml
如果要自定义 layout,需要在 controller 中定义:
var $layout = 'mydefault';
layout 则指向了 /app/views/layouts/mydefault.thtml
2. 创建不使用数据库表的 model 或者改变 model 对应的表名
我需要创建一个不使用任何表的model。例如,我想通过 $validate 数组方便底验证输入数据,保持model逻辑的正确性。但创建 model 时对应的表不存在,CakePHP 就会报错。通过在 model 中加入以下代码可以解决这个问题:
var $useTable = false;
你也可以通过这种方法改变model对应的表名。
var $useTable = 'some_table';
3. 快速创建后台管理
如果你需要创建后台管理程序,并且希望所有管理action都位于某个特定文件夹下,那么打开 config/core.php 并将下面这一行的注释去掉:
define('CAKE_ADMIN', 'admin');
这样所有以"admin_"开头的action都可以通过 /admin/yourcontroller/youraction 来访问。例如,如果在 posts controller 中创建了名为 "admin_add" 的 action,那么可以通过 www.example.com/admin/posts/add 访问这个action。这样就可以方便地为 admin 目录设置密码以避免他人随意访问。
4. 自定义404页面
如果你需要自定义404页面,只需创建 /app/views/errors/error404.thtml。
5. 让controller使用其他model
如果你的controller需要调用来自不同model的数据,只要在controller开头使用如下代码:
class [...]
转载时请标明文章原始出处和作者信息, 作者: lostsnow.http://www.lsproc.com/blog/php_mysql_study_4/
1. 如何禁用 select 下拉列表中的某一项
<select>
<option selected>——请选择——</option>
<optgroup label="分类一">
<option>——子类一</option>
<option>——子类二</option>
</optgroup>
<optgroup label="分类二">
<option>——子类一</option>
<option>——子类二</option>
</optgroup>
</select>
2. EMS SQL Manager中文显示乱码
打开EMS SQL Manager点击那个数据库出现了许多属性
选择database registration info中有一个client charset
选择gb2312简体中文
3. Mysql 乱码
MySQL数据库字符集为utf8
并且网页通过UTF-8编码发送
这时存入数据库的仍然是乱码
需要做以下设置:
@mysql_connect($dbhost,$dbuser,$dbpassword);
加上下面这行
$this->query("SET NAMES 'utf8'");
在每次发送sql查询前设定字符集为utf-8
4. 正则表达式
Email匹配
if(!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$email))
{
echo "邮件格式不正确";
}
5. PHP5中时间相差八小时的解决办法
<?php
date_default_timezone_set('Asia/Shanghai');
echo date('Y-m-d H:i:s');
?>
6. PHP防止SQL注入攻击的简单方法
1.修改PHP的配置文件 php.ini ,将display_errors的值设为Off,这样保证PHP脚本在出错之后不会在页面中显示错误信息。
2.在Mysql函数前加错误抑制符 @ ,避免输出mysql错误。
3.对所有用户输入的数据进行转义并进行类型检查。
7. 返回GD函数版本号
function gd_version() {
if (function_exists('gd_info')) {
$GDArray = gd_info();
$gd_version_number = $GDArray['GD [...]
转载时请标明文章原始出处和作者信息, 作者: lostsnow.http://www.lsproc.com/blog/php_mysql_study_3/
1. mysql 定界符(反引号`)
当标示符是一个受限的词或包含特殊的字符时使用
select * from `select` where `select`.id >100;
create table orders(`my orders` varchar(100)...);
2. 数据库的大小写
linux下的数据库和表名的大小写是敏感的
其他的数据库对象不区分大小写
3. mysql 分组语句和嵌套子查询
员工表 emp( empno, name, tel, deptno, sal )
部门表 dept( deptno, dname, addr )
显示每个部门收入最高的职工信息
select * from emp
where sal in (
select max(sal)
from emp
group by deptno
);
4. mysql 查询排序 ( SQL Order By )
SELECT "栏位名"
FROM "表格名"
[WHERE "条件"]
ORDER BY "栏位名" [ASC, DESC]
ASC 代表结果会以由小往大的顺序列出,而 [...]
转载时请标明文章原始出处和作者信息, 作者: lostsnow.http://www.lsproc.com/blog/php_mysql_study_2/
1. 值参和变参
值参:
<?php
function swap($a, $b) {
$temp = $a;
$a = $b;
$b = $temp;
}
$x = 100;
$y = 1;
swap($x, $y);
echo "x = $x<br />y = $y";
?>
输出结果为:
x = 100
y = 1
这里 $x, $y 只是一个值的拷贝
变参:
<?php
function swap(&$a, &$b) {
$temp = $a;
$a = $b;
$b = $temp;
}
$x = 100;
$y = 1;
swap($x, $y);
echo "x = $x<br />y = $y";
?>
输出结果为:
x = 1
y = 100
2. [...]
转载时请标明文章原始出处和作者信息, 作者: lostsnow.http://www.lsproc.com/blog/php_mysql_study_1/
1. 单引号串和双引号串
<?php
$a = 5;
$b = 10;
echo "a=$a\n";
echo 'b=$b';
?>
输出结果为:
a=5 b=$b
变量和转义字符要放到双引号里
2. 变量和函数的大小写区分
变量是严格区分大小写的
$a, $A 是不一样的
函数不区分大小写
3. 变量的变量
<?php
$a = "Hello";
$$a = "world"; //$Hello = "world"
echo "$a, $Hello\n"; //Hello, world
echo "$a, ${$a}\n"; //也是 Hello world
echo "$a, $$a"; //Hello, $Hello
?>
4. 赋值运算符
<?php
$a = 200;
$a += 10; //$a = $a + 10, 即 $a = 210
$a -= 10; //$a = $a - 10, 即 $a = 200
$a *= [...]
