标签: codeigniter

CodeIgniter的重写不起作用

我已经安装了一个干净的Apache2(加上PHP和MySQL)服务器并启用mod_rewrite了apache配置.我添加了.htaccess文件以从URL中删除index.php,如CodeIgniter wiki中所述.

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

我把这个文件放在网站的根目录下.

当我尝试访问该URL时,mydomain.local/index.php/welcome我得到CodeIgniter的默认页面.但是当我尝试访问同一页面时,mydomain.local/welcome我得到了404页面.

如何检查整个重写规则是否有效?为什么它不起作用?

mod-rewrite codeigniter apache2

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

Codeigniter加密密钥

假设我已将此设置为我的加密密钥,并且我已在autoload上安装了加密库:

$config['encryption_key'] = 'bjA{<ATCs1w5?,8N(bJvgO3CW_<]t?@o';

如何在加密功能中使用它?

function s()
{
    $something = $this->encrypt->encode('eoaighaeg',$key);
    echo $this->encrypt->decode($something, $key); 
}
Run Code Online (Sandbox Code Playgroud)

^非工作示例给你一个想法.

php encryption codeigniter

5
推荐指数
1
解决办法
8809
查看次数

我的模特看起来都一样

我注意到我的所有模型看起来非常相似.他们中的大多数倾向于遵循一种模式,在这种模式中,它们是包含活动记录代码的方法集合,这些代码只是彼此之间的微小变化 这是一个例子:

class Site extends CI_Model {

    public function get_site_by_id($id)
    {
        // Active record code to get site by id
    }

    public function get_sites_by_user_id($user_id)
    {
        // ...
    }

    // ...

    public function get_site_by_user_id_and_url_string($user_id, $url_string)
    {
        // ...
    }

    // Non active record methods and business logic
    // ...

}
Run Code Online (Sandbox Code Playgroud)

这种方法对我来说很好,但我想知道是否有更优雅的解决方案.我似乎不应该每次需要以新的方式查找数据时创建一个新方法.这是常见做法还是我错过了重构这种方法的方法?

php oop refactoring codeigniter

5
推荐指数
1
解决办法
292
查看次数

CodeIgniter:分页没有问号?

下面的代码使用查询字符串生成分页.但是,没有领先优势?.所以,我得到这样的东西:http://localhost/index.php/search/&limit=10.有什么想法吗?

this->load->library('pagination');

$config                   = array();
$config['base_url']       = 'http://localhost/index.php/search/';
$config['total_rows']     = 200;
$config['per_page']       = 10;
$config['num_links']      = 4;

$config['full_tag_open']  = '<ol>';
$config['full_tag_close'] = '</ol>';

$config['first_link']      = 'First';
$config['first_tag_open']  = '<li>';
$config['first_tag_close'] = '</li>';

$config['last_link']      = 'Last';
$config['last_tag_open']  = '<li>';
$config['last_tag_close'] = '</li>';

$config['next_link']      = 'Next';
$config['next_tag_open']  = '<li>';
$config['next_tag_close'] = '</li>';

$config['prev_link']      = 'Previous';
$config['prev_tag_open']  = '<li>';
$config['prev_tag_close'] = '</li>';

$config['cur_tag_open']  = '<li class="active">';
$config['cur_tag_close'] = '</li>';

$config['num_tag_open']  = '<li>';
$config['num_tag_close'] = '</li>';

$this->pagination->initialize($config);
echo ($this->pagination->create_links()); …
Run Code Online (Sandbox Code Playgroud)

codeigniter codeigniter-2

5
推荐指数
1
解决办法
2309
查看次数

创建简单的Codeigniter库

对于我目前的项目,我决定为一些常见的功能创建一个库.

例如:Login_check,get_current_user等.

凭借我的小知识,我创造了一个简单的但不幸的是它不起作用.

我的图书馆:

FileName:Pro.php和位于application/libraries

class Pro{

    public function __construct()
    {

       parent::_construct();
        $CI =& get_instance();
       $CI->load->helper('url');
       $CI->load->library('session');
       $CI->load->database();
    }

    function show_hello_world()
    {
        $text = "Hello World";
        return $text;
    }
}

?> 
Run Code Online (Sandbox Code Playgroud)

我试图在我的控制器上加载它:

<?php
class Admin extends CI_Controller
{
    function __construct()
    {     
        parent::__construct();
        $this->load->database();
        $this->load->library(array('session'));
        $this->load->library("Pro");
    }
    function index()
    {
        echo($this->Pro->show_hello_world());
    }
}

?>
Run Code Online (Sandbox Code Playgroud)

我看不到任何错误...但我得到一个空白页面.

我怎么了?

谢谢 .

编辑:我收到此错误:

Call to a member function show_hello_world() on a non-object in C:\wamp\www\Project\application\controllers\admin.php on line 13
Run Code Online (Sandbox Code Playgroud)

php codeigniter class

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

从PHP发送邮件 - 是我的错误还是邮件服务器?

我正在尝试通过我的PHP脚本通过SMTP发送电子邮件,通过CodeIgniter运行.

请参阅下面的调试输出.这是用PHP(Unable to send email using PHP SMTP)还是在他们的末尾指示我的问题(hello: 250-parrot.email-provider.co.uk- 这意味着它已连接到他们的服务器,因为我输入的实际SMTP服务器是mail2.email-provider.co.uk,所以它似乎连接并重定向到这个parrot东西).

我的SMTP详细信息我已经确认是正确的,但仍然说它无法验证密码 - 即使相同的密码在我的本机邮件客户端中有效.

我已经更改了我的网站名称和提供商的名称(如果这是我的错,我不想说出耻辱!):

220 parrot.email-provider.co.uk ESMTP Postfix 
hello: 250-parrot.email-provider.co.uk
250-PIPELINING
250-SIZE 512000000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Failed to authenticate password. Error: 535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6 
from: 250 2.1.0 Ok
to: 554 5.7.1 : Relay access denied
The following SMTP error was encountered: 554 5.7.1 : Relay access denied 
to: 554 5.7.1 : …
Run Code Online (Sandbox Code Playgroud)

php email smtp codeigniter

5
推荐指数
1
解决办法
5111
查看次数

Codeigniter - 显示数组字段的单个错误消息

每个客户都有各自的详细信息.这是一个非常简单的例子.

<input type="text" name="customer_names[]" />

在codeigniter中,每个customer_name都是必需的
$this->form_validation->set_rules('customer_names[]','Customer Names','required');

如果任何客户名称为空,则validation_errors();显示整个阵列的一条消息.

如何为该客户获取个别错误消息?

注意: echo form_error('customer_names[0]');我正在尝试实现customer_name 0留空的位置.

validation html5 codeigniter validationerror

5
推荐指数
1
解决办法
2326
查看次数

Codeigniter:order子句中的列'id'是不明确的

我正在使用CodeIgniter的Active Record Classes,我正在使用以下代码检索错误:

$this->db->select("*");
$this->db->order_by("id");
$this->db->limit($limit, $offset);
$this->db->from("atoms");
$this->db->join("atommeta", "atommeta.atom_id = atoms.atom_id");

$query  = $this->db->get();
Run Code Online (Sandbox Code Playgroud)

它会产生以下错误:

Error Number: 1052

Column 'id' in order clause is ambiguous

SELECT * FROM (`atoms`) JOIN `atommeta` ON `atommeta`.`atom_id` = `atoms`.`atom_id` ORDER BY `id` LIMIT 10

Filename: /Applications/MAMP/htdocs/atom/models/atom_model.php

Line Number: 197
Run Code Online (Sandbox Code Playgroud)

197行: $query = $this->db->get();

任何想法为什么?这似乎与...有关order_by

php mysql activerecord codeigniter

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

Facebook cookie和oauth 2.0发生了变化

这个功能曾经为我工作,直到有一天facebook决定强制执行一些更改.

    function get_facebook_cookie() {
    $app_id             = '[MyAppID]';
    $application_secret = '[MyAppSecrect]';

    if(isset($_COOKIE['fbs_' . $app_id])){
        $args = array();
        parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
        ksort($args);
        $payload = '';
        foreach ($args as $key => $value) {
                if ($key != 'sig') {
                $payload .= $key . '=' . $value;
                }
        }
        if (md5($payload . $application_secret) != $args['sig']) {
                return null;
        }
        return $args;
        } else {
         return null;
        }
}
Run Code Online (Sandbox Code Playgroud)

我能够轻松获得FB用户访问令牌

$cookie['access_token']
Run Code Online (Sandbox Code Playgroud)

现在似乎我不能再检索此信息了.

我成功(轻松)能够对我的javascript代码进行必要的更改,但我有点难以在php端.作为一个快速的说明我正在使用codeigniter,我在尝试使用FB PHP SDK发挥得很好时遇到了很多麻烦,我也没有看到任何将PHP 3 SDK集成到codeigniter中的例子所以我是寻找一个快速而肮脏的解决方案,这将允许我从cookie获取访问令牌,从而允许我使用以下调用Facebooks API:

'https://api.facebook.com/method/friends.getAppUsers?access_token=' . $cookie['access_token'];
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.

php facebook codeigniter oauth-2.0

5
推荐指数
1
解决办法
3772
查看次数

使用版本控制时,在codeigniter应用程序中要忽略哪些文件夹

在CodeIgniter框架上开发的项目上使用版本控制时,我应该忽略哪些文件夹?

我已经忽略了application/cache文件夹,但还有其他吗?

php version-control codeigniter

5
推荐指数
1
解决办法
2895
查看次数