有人可以帮我弄这个吗?我觉得我现在已经在墙上撞了两个多小时了.
我已经Apache 2.2.8 + PHP 5.2.6安装在我的机器上,.htaccess下面的代码工作正常,没有错误.
RewriteEngine on
RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
我的托管服务提供商服务器上的相同代码给我一个404错误代码并输出only: No input file specified.index.php就在那里.我知道他们安装了Apache(无法在任何地方找到版本信息),他们正在运行PHP v5.2.8.
我在Windows XP 64-bit,他们正在运行的一些Linux与PHP在CGI/FastCGI模式.任何人都可以建议可能是什么问题?
PS.如果重要的是CodeIgniter使用友好的URL.
UPDATE1:
mod_rewrite 安装并打开.
我注意到的是,如果我RewriteRule改为/index.php?$1(问号而不是正斜杠),它会进入无限循环.无论如何,使用问号不是一个选项,因为CodeIgniter(必需)不会以这种方式工作.
当我直接请求index.php时,主页也可以使用: example.com/index.php
我开始认为可能是apache认为一旦添加了斜杠,它就不再是一个文件了,而是一个文件夹.如何改变这种行为?
更新2:
我错了.
Apache正确处理这些URL.
请求http://example.com/index.php/start/(主页)或任何其他有效地址有效.
似乎Apache只是因为某种原因没有转发查询.
更新3:
只是为了清楚我想要实现的目标.
我想重写这样的地址:
http://www.example.com/something/ => http://www.example.com/index.php/something/ http://www.example.com/something/else/ => http:// www.example.com/index.php/something/else/
我在我的一个控制器中有这个私有会话,用于检查用户是否已登录:
function _is_logged_in() {
$user = $this->session->userdata('user_data');
if (!isset($user)) {
return false;
}
else {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我有多个控制器.如何在其他控制器中使用此功能?在每个控制器中重新定义功能不是很"干".
有任何想法吗?
在config.php中
$config['base_url'] = 'http://localhost/codeigniter/';
Run Code Online (Sandbox Code Playgroud)
在视图中
<link rel="stylesheet" href="<?php base_url(); ?>css/default.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
=> Error: Call to undefined function base_url(); 帮我
我正在使用Codeigniter,而不是错误消息,我只是得到一个空白页面.有没有办法显示PHP错误消息?当我得不到任何反馈时,很难调试.
我的环境是使用Apache的Ubuntu.
正如我在一些资源中所读到的,base_url()并且site_url()函数codeigniter几乎相同,尽管我的codeigniter(2.1.3)版本的config.php文件(在config目录中)中没有site_url().
然而,他们之间是否有任何区别,因为我看到带参数的site_url()并且从未见过base_url()没有?
我试图在应用程序文件夹之外和同一级别有一个临时缓存文件夹.这是为了将图像存储一段时间,然后将它们移到场外.
我试图获取用户的Facebook个人资料图像并将其保存到我的服务器.我有一个图像存储解决方案,需要我拍摄照片,并重命名,然后将其传递到相应的位置进行存储.我的想法正在使用file_get_contents(),file_put_contents()我可以存储此文件一会儿,然后相应地处理它,然后将其复制/移动到我的存储方法.但是我不希望在应用程序文件夹中有临时目录 - 我希望它与应用程序和系统文件夹处于同一级别.我的问题是访问相对路径或绝对路径(在应用程序文件夹的同一级别)而不对其进行硬编码.
使用(__dir__),(__file__)和类似的东西realpath(APPPATH)只能在应用程序文件夹中给出结果.所以我希望别人知道实现这个目标的方法
过去,在CodeIgniter模型中,您无法访问其他模型.
$this->load->model('bar');
$this->bar->something();
Run Code Online (Sandbox Code Playgroud)
这仍然有效,还是他们改变了?
我之前从未使用过CodeIgniter,更不用说任何php框架了,我想我会尝试一下.一切都很顺利,除了我似乎无法从URL中删除index.php并仍然访问我的页面.
我从来没有使用过MVC结构,因此我正在学习,所以请原谅我,如果我做错了.
我试图通过输入localhost/ci/about来访问我创建的名为'about_page.php'的视图,但目前我只能使用localhost/ci/index.php/about来访问它.
页面的控制器:/application/controllers/about.php
页面的型号是:/application/models/about_model.php
和视图的页面是:/application/views/about_page.php
我已经搜索了这个问题的解决方案,但一直找不到.这是我已经搜索过的地方:
CodeIgniter - 删除index.php
Codeigniter - 如何从url中删除index.php?
http://www.farinspace.com/codeigniter-htaccess-file/
CodeIgniter在'application'文件夹中附带一个.htaccess文件,该文件只包含Allow Deny From All.所以我在根目录中创建了一个新的.htaccess文件,http://localhost/ci/.htaccess并将此代码添加到它:
RewriteEngine On
RewriteBase /ci
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
当.htaccess文件位于根目录中时,我收到500内部服务器错误.当我将完全相同的文件复制到应用程序文件夹时,500错误消失,但我仍然无法使用localhost/ci/about访问about页面
我已经更改$config['index_page'] = 'index.php';为$config['index_page'] = '';AND我尝试更改$config['uri_protocol'] = 'AUTO';为$config['uri_protocol'] = 'REQUEST_URI';但我仍然收到内部服务器错误.
我进入了httpd.conf文件并取消注释了mod_rewrite.so模块,因此我知道mod_rewrite处于活动状态.
有没有人有任何想法为什么这不起作用或我怎么能得到这项工作?我知道StackOverflow上有很多关于这个主题的问题,但我找不到回答我问题的问题.
我这样做了吗?我是否应该通过访问localhost/ci/about来访问about页面,或者我是否必须在'application'目录中创建一个'about'目录?
我有来自Codeigniter的以下代码 index.php
我的理解是,
如果/在字符串中的位置$system_folder(在这种情况下CIcore_1_7_1)是false,如果realpath函数存在AND(?)不false,
$system_folder被分配到(?) /$system_folder.其他$system_folder被分配给$system_folder替换\\为/.
Q1.realpath函数意味着什么?
Q2.这是什么意思?
@realpath(dirname(__FILE__))
Run Code Online (Sandbox Code Playgroud)
Q3.我对吗?我有任何误解吗?
Q4.您需要以下哪种情况?
str_replace("\\", "/", $system_folder)
Run Code Online (Sandbox Code Playgroud)
$system_folder = "CIcore_1_7_1";
/*
|---------------------------------------------------------------
| SET THE SERVER PATH
|---------------------------------------------------------------
|
| Let's attempt to determine the full-server path to the "system"
| folder in order to reduce the possibility of path problems.
| Note: We only attempt this if the user hasn't specified a …Run Code Online (Sandbox Code Playgroud) 如何在Codeigniter中构建以下页面?

我想为每个部分创建单独的控制器
排除内容部分(因为此更改取决于左侧导航栏和内容导航栏中用作有点子菜单的链接).所有其他部分保持大致相同
我想过:
Class User_Profile extends Controller
{
function index()
{
$this->load_controller('Left_Nav');
$this->load_controller('Content_Nav');
$this->load_controller('Login_Name');
$this->load_controller('Leaderboard', 'Board');
$this->Left_Nav->index(array('highlight_selected_page' => 'blah'));
$this->load('User');
$content_data = $this->User->get_profile_details();
$this->view->load('content', $content_data);
$this->Login_Name->index();
$this->Board->index();
}
}
Run Code Online (Sandbox Code Playgroud)
显然这load_controller不存在,但这种功能将是有用的.每个部分的控制器从模型中获取所需的数据,然后加载页面$this->view->load()
在新闻,用户,关于我们等所有左侧导航链接中使用此代码可能会令人头疼.但是,然后再次并非每个导航链接都包含所有这些部分,因此我需要将这些部分作为"部分"的灵活性视图"
谁能建议更好的方法呢?