swfupload上传无session的解决方法

swfuplaod在上传时,会新开一个进程,和原来的进程不一致,要解决这个问题,需要指定session_id

实例化上传插件的时候:

post_params: {“PHPSESSID”: “<?php echo session_id(); ?>”}//注意要先session_start();

php文件中

if (isset($_POST[“PHPSESSID”])) {
session_id($_POST[“PHPSESSID”]);
}

yii框架中的处理方式,是在入口或者在公用的控制器中添加以下代码:

if(isset($_POST[‘PHPSESSID’]))
$_COOKIE[‘PHPSESSID’] = $_POST[‘PHPSESSID’];

yii前台与后台不同步退出的方法

public function actionLogout()
{
Yii::app()->user->logout(false);//退出的时候只需要将logout中的参数设置为false即可;
$this->redirect(Yii::app()->homeUrl);
}

yii通过模型验证时指定场景的2种方式

在模型中需要通过验证规则的on参数指定此条验证规则在什么场景中适用,如:

array(‘email’, ‘email’,’on’=>array(‘register’,’forget’),’message’=>’请输入正确的电子邮件’),
array(‘email’, ‘required’,’on’=>’register’,’message’=>'{attribute}不能为空’),

以user模型为例:

1、$model = new User(‘register’); //指定在注册场景

2、$model = new User();

$model->scenario=’register';//通过属性指定

用css在容器之前或者之后添加内容

在a标签的容器之后添加逗号:

a:after { content:” ,”; }

在a标签的容器之前添加逗号:

a:before { content:” ,”; }

php函数无法使用

Warning: scandir() has been disabled for security reasons in

出现这种情况,一般是你的服务上禁用了相关的函数,打开php.ini找到disable_functions将禁用的函数删除即可。

注意:修改配置文件后需要重启apache或者nginx服务,若还是不能使用,则需要重启服务器。

yii配置语言包

1、将framework下message目录下的config.php复制到应用程序的message目录下。如:

cp yii/framework/message/config.php test/protected/message/config.php
2、修改config.php文件,如需要需要英语
<?phpcd test/protected
./yiic message “../protected/messages/config.php”
/**
* This is the configuration for generating message translations
* for the Yii framework. It is used by the ‘yiic message’ command.
*/
return array(
‘sourcePath’=>dirname(__FILE__).DIRECTORY_SEPARATOR.’..’,
‘messagePath’=>dirname(__FILE__).DIRECTORY_SEPARATOR.’..’.DIRECTORY_SEPARATOR.’messages’,
‘languages’=>array(‘es’),
‘fileTypes’=>array(‘php’),
‘exclude’=>array(
‘.svn’,
‘yiilite.php’,
‘yiit.php’,
‘/i18n/data’,
‘/messages’,
‘/vendors’,
‘/web/js’,
),
);
3、使用yii message将抓取语言包
cd test/protected
./yiic message “../protected/messages/config.php”
4、main.php中配置
‘language’ => ‘zh_cn’,