簡體   English   中英

Joomla-在PHP文件中使用Ajax接收數據后如何連接到db

[英]Joomla - How to connect to db after receiving data with Ajax in php file

我正在為Joomla 1.6構建組件。

我有一個關於數據庫連接的問題。

我已經使用ajax將數據發送到名為rating.php的php文件中; 數據毫無問題地發送到文件。 但是,如果我離開該行,則不會發送數據

defined('_JEXEC') or die('Restricted access');

但我收到“限制訪問”消息。

其次,即使我注釋掉了先前的檢查,也無法連接到此php文件中的數據庫,這顯然是因為我無法在文件中調用Joomla變量(如getDBO())。 如何解決這兩個問題?

謝謝

當您通過index.php瀏覽站點時,Joomla只會設置_JEXEC。 換句話說,Joomla不會對Joomla的“外部”文件執行任何操作。 _JEXEC將不會被設置,並且數據庫將不會被連接。

為了解決該問題,我將包含一個Joomla頁面,以便將數據庫加載:

<?php
ob_start();
require 'index.php';
ob_end_clean();
// Rating code
?>

此代碼包括您網站的主頁,並使用輸出緩沖來實際不輸出您的網站。 您不需要檢查_JEXEC,因為使用它的唯一原因是確保某人在不通過Joomla的情況下不會直接訪問文件。 就您而言,_JEXEC是無關緊要的。

為了使您的腳本更快,請使用內容最少的內頁鏈接替換index.php。 主頁往往比內部頁面慢。

我尚未測試此代碼,但它應該可以工作。

如果要開發組件,最好通過“ index.php”而不是其他文件進行請求。 這樣,您可以確定框架已加載,並且可以在處理請求時使用其任何功能。 另一個優點是易於維護(尤其是在大型擴展上),因為當所有請求都具有相同的入口點時,遵循工作流程會更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM