2015-11-08 22 views
0

因此,我正在学习PHP,并开始使用非常基本的东西。无法从控制器调用index.php中的函数

我想从我的控制器文件夹中的文件调用一个函数,但它不会工作。

我已经成功地将任何输入到URL栏中的东西都回显出来,但它只是不会在我的另一个index.php文件中作为控制器的一部分打印出消息,但当然会继续回显任何消息输入URL。我错过了什么吗?

所以这里就是我已经坐在我的MVC文件夹之外这是一个index.php文件:

<?php 

$url = $_GET['url']; 

echo $url; 

require 'controllers/' . $url . '.php'; 
$controller = new $url; 
?> 

,这里是什么,我在我的index.php文件,我想我的控制器文件夹中拨打:

<?php 

class Index { 

    function __construct(){ 
    echo 'We are in index'; 
    } 
} 

?> 

我的.htaccess文件看起来是这样的:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] 
+0

您使用的是正确的大小写吗?函数名称区分大小写。另外linux是区分大小写的,所以如果你在index.php中有Index类,它将会失败。 – MiDri

+0

对不起,你的意思是什么?是的,我正在使用Linux。 –

+0

你的htaccess文件说:“如果试图访问domain.com/Foo将其变为domain.com/index.php?url=Foo在服务器上”好的url是不区分大小写的,但是linux文件系统不是(你的php是什么脚本正在访问),因此索引和索引是文件系统上的不同位置。此外,函数/类是区分大小写的,所以如果您命名文件index.php并将Index类放入其中,您的脚本将尝试访问错误的文件(如果尝试了Index)或错误的类(如果尝试索引) – MiDri

回答

0

改变你的controller/index.phpcontroller/Index.php如果你在Linux上,然后尝试使用全部小写字母访问索引。

+0

我已经尝试了你提出的两个建议。但我仍然遇到同样的问题。 –

+0

你有什么错误? – MiDri

+0

完全没有错误,它只是不显示我通过Index类写入index.php文件中的内容。 –

相关问题