标签: codeigniter

CodeIgniter活动记录,在 - > select()函数中添加IF语句

我有这个问题:

$this->db->select("
    IF(predicts.predict_owner = votes.vote_user_id , IF(judges.judge_did_accept = 1 , True , False) , 'NotExists' )" , 'user_judgement');
Run Code Online (Sandbox Code Playgroud)

我得到语法错误

  `'NotExists'` )
Run Code Online (Sandbox Code Playgroud)

如果我直接在数据库中运行查询,它工作正常...
有没有办法阻止CI自动添加标志?

谢谢

php activerecord codeigniter

6
推荐指数
1
解决办法
2万
查看次数

PHP/CodeIgniter - 在__construct()中设置变量,但不能从其他函数访问它们

我很高兴有一个变量范围问题.也许我只需要更多咖啡......

这是我的(简化)代码 - 这是在CodeIgniter 2中:

class Agent extends CI_Controller {     

public function __construct()
{
    parent::__construct();

    $this->load->model('agent_model');

    // Get preliminary data that will be often-used in Agent functions
    $user   = $this->my_auth_library->get_user();
    $agent  = $this->agent_model->get_agent($user->id);
}

public function index()
{       
    $this->template->set('info', $this->agent_model->get_info($agent->id));

    $this->template->build('agent/welcome');
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我运行索引函数时,我被告知:

A PHP Error was encountered

Severity: Notice
Message: Undefined variable: agent
Filename: controllers/agent.php
Line Number: 51
Run Code Online (Sandbox Code Playgroud)

第51行是索引函数的第一行.出了什么问题?这是范围问题还是其他问题?

谢谢!

php variables scope codeigniter

6
推荐指数
2
解决办法
2万
查看次数

在codeigniter中的Cron工作

我正在尝试使用CodeIgniter构建的站点执行cron作业 - 我可以访问CPanel cron功能,任何人都可以建议使用CPanel设置cron作业的最佳方法吗?

我正在使用CodIgniter所以无法确定如何在cron作业中调用控制器?

例如 http://admin.com/sites/publish/

如何使用cron作业访问站点控制器中的此发布功能?

php cron codeigniter cpanel

6
推荐指数
2
解决办法
1万
查看次数

如何在CodeIgniter中清除页面缓存

我使用CodeIgniter.总是我的页面的一部分是缓存,不要Ctrl+F5在浏览器中删除.当我在视图中更改名称页面时它工作.!?

如何清除CodeIgniter中的页面缓存?

php caching codeigniter

6
推荐指数
3
解决办法
4万
查看次数

jquery ajax返回错误但是成功

我有以下JS

function change_ajaxarea1(){
navigator.notification.activityStart();
$('#ajaxarea1').load('http://server.net/droiddev/backbone1/index.php/welcome/', function(){

navigator.notification.activityStop();
$('#ajaxarea1').css("height","auto");
//$('#ajaxarea1').css("overflow","hidden");
});

//navigator.notification.activityStart();
}


function postarticle(){

 $.post("http://server.net/droiddev/backbone1/", { headline: "John", article: "2pm" } );

 }


function addarticle(){

var headlinetemp=$('#headline').val();
var articletemp=$('#article').val();
$.ajax({
type:'POST',
dataType:'json',
url: "http://server.net/droiddev/backbone1/index.php/welcome/addarticle/",
data: { 'headline': headlinetemp, 'article': articletemp},
success:function(){
alert('success');
},
error:function(xhr){
alert(xhr.status);
}



});



}
Run Code Online (Sandbox Code Playgroud)

和以下控制器代码:

  <?php 

class Welcome extends CI_Controller {


    public function index()
    {

    $data['query']=$this->site_model->get_last_ten_articles();
$this->load->view('partial1',$data);

    }

    public function addarticle(){

    $headline=$this->input->post('headline');
    $article=$this->input->post('article');
    $this->site_model->insert_entry($headline,$article);



    }
}
Run Code Online (Sandbox Code Playgroud)

addarticle()javascript ajax工作并将vars发布到服务器和db,然而,javascript将运行错误函数而不是成功函数.http响应代码是200,我认为它会使它运行Success函数.有什么建议?

ajax jquery codeigniter cordova

6
推荐指数
1
解决办法
9486
查看次数

CodeIgniter中的Fat Model Skinny Controller

我已经使用CodeIgniter一段时间了,并且对MVC,PHP等有很好的了解.

但是,我发现很难坚持Fat Model Skinny Controller的精神.

我已经看过很多了; 包括要包含在每个文件中的伪代码,但没有实际的例子.(如果我错过任何明显的文章,请链接到一些文章!)

我发现很难将表单逻辑移动到模型中.例如,我正在为我的auth系统使用自定义库,它有自己的模型.我是否应该建立一个站点用户模型来登录用户?或者我应该制作一个网站模型来做到这一点?还是表格模型?

为了帮助我,任何人都可以告诉我如何皮肤化这个控制器?我意识到这是很多代码,但简单的指针会很棒.(请注意,我刚刚编写了这段代码,所以它没有经过多次重构,但它应该是我的一些方法失控的一个很好的例子.)

public function register()
{
    session_start();
    if ($this->tf_login->logged_in())
    {
        redirect('profile');
    }
    if ($_GET['oauth'] == 'true')
    {
        $type = $_GET['type'];
        try 
        {
            $token = $this->tf_login->oauth($type, '', 'email');
        }
        catch (TFLoginCSRFMismatchException $e)
        {
            $this->tf_assets->add_data('error_message', $e->getMessage());
        }
        catch (TFLoginOAuthErrorException $e)
        {
            $this->tf_assets->add_data('error_message', $e->getMessage());
        }
        if ($token)
        {
            $user_details = $this->tf_login->call('https://graph.facebook.com/me?fields=email,first_name,last_name,username&access_token=' . $token);
            $user_details_decoded = json_decode($user_details);
            if ($user_details_decoded->email)
            {
                try 
                {
                    $id = $this->tf_login->create_user($user_details_decoded->username,
                    md5($user_details_decoded->username . time()),
                    $user_details_decoded->email,
                    '',
                    TRUE,
                    TRUE);
                }
                catch (TFLoginUserExistsException $e)
                { …
Run Code Online (Sandbox Code Playgroud)

php model-view-controller codeigniter

6
推荐指数
1
解决办法
1691
查看次数

可能的黑客企图.如何判断我的数据库是否已被泄露

我的日志文件中有以下几秒钟.我假设某些东西试图找到我的数据库或管理页面或其他东西,但我不确定.

我应该担心这个问题,如何判断我的数据库是否已被泄露?

ERROR - 2011-09-23 20:51:42 --> 404 Page Not Found --> muieblackcat
ERROR - 2011-09-23 20:51:46 --> 404 Page Not Found --> PMA
ERROR - 2011-09-23 20:51:46 --> 404 Page Not Found --> admin
ERROR - 2011-09-23 20:51:47 --> 404 Page Not Found --> dbadmin
ERROR - 2011-09-23 20:51:48 --> 404 Page Not Found --> mysql
ERROR - 2011-09-23 20:51:48 --> 404 Page Not Found --> myadmin
ERROR - 2011-09-23 20:51:48 --> 404 Page Not Found --> phpmyadmin2
ERROR …
Run Code Online (Sandbox Code Playgroud)

sql database security codeigniter

6
推荐指数
1
解决办法
1284
查看次数

Codeigniter:Paypal IPN和csrf_protection

我正在使用codeigniter-paypal-ipn并启用了csrf_protection.这似乎阻止了从Paypal到我的IPN控制器的访问.如果我禁用csrf_protection它工作正常,启用csrf_protection,paypal IPN服务会抛出500内部服务器错误.

有没有办法在不禁用csrf_protection的情况下解决这个问题?如果没有,我可以为该控制器禁用csrf_protection吗?

谢谢.

codeigniter paypal paypal-ipn codeigniter-2

6
推荐指数
2
解决办法
2304
查看次数

注销codeigniter

我在codeigniter中有一个注销控制器:

<?php

class Logout extends MY_Controller {

    function index()
    {

        $this->session->sess_destroy();
        redirect('index.php');
    }
}
Run Code Online (Sandbox Code Playgroud)

这会让我退出,但是当我在登录后调用另一个控制器时,比如"/ site/addnewpost",这只会让我再次登录,好像之前没有销毁过sassion.为什么会这样?

php codeigniter

6
推荐指数
1
解决办法
4万
查看次数

在Codeigniter中,如何将第三个参数传递给回调(表单验证)?

我目前正在使用Form Validation类(在Codeigniter上)和设置规则.

它有两个参数(codeigniter.com/user_guide/libraries/form_validation.html):

$this->form_validation->set_rules('username', 'Username', 'callback_test[abc]');
Run Code Online (Sandbox Code Playgroud)

但是第三个参数呢?还有第四个......?可能吗?

validation codeigniter callback validationrules codeigniter-2

6
推荐指数
1
解决办法
1万
查看次数