我有一个问题,我的项目在Windows(在Apache服务器上)工作非常好,然后我将我的项目移动到ubuntu 12.04(apache2服务器),但我的项目不工作.
的Apache2
php 5.3.10
mysql 5.5.29-ubuntu0.12.04.2
在萤火虫上:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /frontend/ru/site/login/ was not found on this server.</p>
<hr>
<address>Apache/2.2.22 (Ubuntu) Server at test.local Port 80</address>
</body></html>
Run Code Online (Sandbox Code Playgroud)
但我有URL /frontend/ru/site/login/.
main.php:
// uncomment the following to define a path alias
Yii::setPathOfAlias('site',dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..');
// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'Biotrack Backend',
'language' => 'ru',
'defaultController'=>'company/list', …Run Code Online (Sandbox Code Playgroud) 我试图禁用更新规则模型上的字段,但我有错误.
我试着像:
array('date', 'constraint', 'readOnly'=>true, 'on'=>'update'),
Run Code Online (Sandbox Code Playgroud)
但我有这个错误:
"include(constraint.php):无法打开流:没有这样的文件或目录"
我可以使用htmloptions从视图禁用,但我需要从模型中执行它,因为在更新时我需要禁用超过5个字段.
我怎么能这样做?
thx提前
我有两个模型:项目和用户.在项目中:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
"users"=>array(self::MANY_MANY, 'User',
'projects_users(project_id, user_id)'),
);
}
Run Code Online (Sandbox Code Playgroud)
我想列出实际项目中的所有用户,$ model包含实际项目:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'user-grid',
'dataProvider'=>$model->users,
'columns'=>array(
'ID',
'username',
'displayname',
'firstname',
'lastname',
'email',
/*
'password',
'isAdmin',
*/
array(
'class'=>'CButtonColumn',
'template'=>'{delete}',
),
),
)); ?>
Run Code Online (Sandbox Code Playgroud)
不幸的是我收到了一个错误:
Fatal error: Call to a member function getData() on a non-object in /var/www/vhosts/aevers.com/editor/framework/zii/widgets/CBaseListView.php on line 107
Run Code Online (Sandbox Code Playgroud) yii验证规则存在问题,我创建了一个注册表单,其中包含我的产品的优惠券代码.当用户输入优惠券代码时,我想检查优惠券表中是否存在该值.当用户输入优惠券时,我希望我的验证规则有效,否则,如果用户没有输入代码,则此验证规则不起作用,对于会员注册,我有会员模型,对于优惠券,我有优惠券模型,I我在验证规则中使用此方法.
class MemberSignup extends CActiveRecord
{
public $couponcode;
public function rules(){
array('couponcode', 'isCouponCodeExist'),
}//end rules
public function isCouponCodeExist($attribute, $params)
{
$record = Coupon::model()->findByAttributes(array('couponcode' => $this->couponcode));
if($record === null){
$this->addError($attribute, 'Invalid Coupon');
return false;
}
return true;
}
} //class end
Run Code Online (Sandbox Code Playgroud)
任何suggesstion对我都有帮助
<?php
class MemberSignup extends CActiveRecord
{
public $confPassword;
public $couponcode;
/**
* Returns the static model of the specified AR class.
* @param string $className active record class name.
* @return MemberSignup the static model class
*/
public static …Run Code Online (Sandbox Code Playgroud) 这是突然想到的东西......所以想知道处理和了解主要PHP框架的安全能力的最佳实践是什么.
假设在开发的Web应用程序中有一组用户..(在用户模块中)..每个注册用户将根据其权限和访问级别执行基于特权的任务...
现在,因为我们有许多免费的前端调试程序,如firebug等...我想知道使用firebug如果用户可以获得让我们说超级管理员的ID .....(假设,这作为用户表的user_id为超级管理员用户)这可能是通过引用隐藏的字段值或者从系统的某处......
现在,他(当前用户)可能会使用fire bug将用户ID更改为1(假设'1'是超级用户)并提交某个表单.
ex:一个包含允许用户在系统中执行某些操作的权限的表单..让我说它像'创建帖子'(复选框或下拉列表)然后另一个下拉列表选择用户他是愿意分配(只有系统的一些用户可以看到这个用户分配..因为他是中等特权..所以超级用途不存在)但是现在让我们说他知道那些超级级别的用户ID和他正在改变某个用户的选定值...让我说他选择了一个id = 101的用户...在下拉值中它就像这样...普通用户...现在借助于firebug'101 '被更改为超级用户的id之一.....'1'或'2'或'3'.....所以这允许覆盖,因为我尝试做类似的更改并且感到不安为什么这是可能的...
那么我们如何用最佳实践处理这种情况是我的困境......
我看到唯一的办法是处理这个......
在保存天气之前检查我们在表单提交时收到的数据与我们从加载时获得的数据相同,然后让它们保存或者抛出错误....为此,一些性能将涉及到我不确定是这是一个实际而且最好的事情......
至少我想知道任何PHP框架都能保护这种东西吗?我宁愿说攻击..
请让我知道这一点来自PHP极客...不确定天气这是否可能发生在其他编程语言中...因为我是PHP开发人员我只是想知道与PHP术语有关...
仅供参考,我正在使用Yii框架进行开发工作........并且有时也会使用codeignitor框架.
我是json的新手,我有一个问题,为什么json_decode在<和>的标签之间返回空字符串...这里是我的json字符串
{
"clipboard":
{
"title": " Mozilla Firefox ",
"event": "<MOUSE+Copy/Paste>"
}
}
Run Code Online (Sandbox Code Playgroud)
json_decode到var_dump的输出显示
object(stdClass)#44 (1) { ["clipboard"]=> object(stdClass)#45 (2) { ["title"]=> string(17) " Mozilla Firefox " ["event"]=> string(18) "" } }
Run Code Online (Sandbox Code Playgroud)
为什么它一直在"<"和">"之间删除数据,我在一个在线json编辑器上检查它成功验证了我的json字符串,它确实显示了它的值.但是当我使用deocde_json时,"event"数组元素变为空.
您好,我对Yii框架不是很熟悉,有人可以告诉我如何更改默认的errorSummary消息吗?我已经看过Yii指南,让我很困惑.我需要在模型中添加什么以及在视图中需要什么?谢谢
我对输入字段(名称,位置,位置)没有任何规则,因此我的模型的rules函数返回一个空数组,但是空值将被保存到数据库表中.
public function rules()
{
return array();
}
Run Code Online (Sandbox Code Playgroud)
当我从我的模型中省略rules()函数时
$模型 - )>保存(
返回true但DB表插入空值.
那么如何从我的模型类中省略rules()函数呢?
在CDetailView中,如何将给定值链接到另一个页面?假设我有一本书是图书类别的成员,例如科幻小说.书籍详细信息页面显示以下数据:
Book title: Dune
Author: Frank Herbert
Category: Science Fiction --> link
Run Code Online (Sandbox Code Playgroud)
科幻小说应该是一个链接/category/view,如下面的代码,这对我不起作用:
array(
'label' => 'Category',
'value' => $model->category->name,
'urlExpression'=>'Yii::app()->createUrl("category/view",
array("cid"=>$data->category_id))',
'class'=>'CLinkColumn',
),
我得到的印象是urlExpression不能与CDetailView一起使用.它是类CLinkColumn(»CGridColumn»CComponent)的属性,所以我在这里走错了路.处理这个问题的正确方法是什么?
我有3个名为Site,Ads和Message的控制器.所有控制器都具有验证码操作类定义,并且允许它们存在于每个控制器的访问规则中.
验证码在站点控制器中运行良好,但在其他控制器中验证不起作用.它显示验证码图像和recaptcha也可以,但只是验证不起作用,任何想法调试?
更新:
我已经探究过Yii并找到了一些东西.CCaptcha小部件使用控制器名称作为会话密钥的一部分来存储验证码验证码.
CCaptchaAction.php
protected function getSessionKey(){
return self::SESSION_VAR_PREFIX . Yii::app()->getId() . '.' . $this->getController()->getUniqueId() . '.' . $this->getId();
}
Run Code Online (Sandbox Code Playgroud)
如您所见,$ this-> getController() - > getUniqueId()是会话密钥的一部分.
CCaptchaAction使用此功能生成并验证验证码.
问题是在不同的控制器中发生和验证.
在一个明显的例子假设我们有一个控制器一个和乙.
当在控制器A中生成验证码生成时,print_r($ _ SESSION)类似于:
阵列([Yii.CCaptchaAction.12bd9136.甲 .captcha] => eyntri [Yii.CCaptchaAction.12bd9136.甲 .captchacount] => 1
当在控制器B中发生验证码验证时,验证方法检查是否
新生成并在控制器B中显示代码 === $ _SESSION [Yii.CCaptchaAction.12bd9136.一个 .captcha]是真还是假.
当发电机和验证器控制器不相同时,它们总是不相等!!