2015-11-08 18 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文件中的內容。 –

相關問題