Joomla-如何在php文件中使用Ajax接收数据后连接到db
我正在为Joomla 1.6构建一个组件 我与数据库的连接有问题 我已经用ajax将数据发送到一个名为rating.php的php文件中;数据被毫无问题地发送到文件中。但是,如果我离开该行,则不会发送数据 defined('_JEXEC') or die('Restricted access'); 定义为(“JEXEC”)或die(“受限访问”); 但我收到一条“限制访问”的信息 其次,即使我注释掉了前面的检查,我也无法连接到这个php文件中的数据库,显然是因为我无法调用文件中的Joomla变量(比如getDBO())。如何解决这两个问题Joomla-如何在php文件中使用Ajax接收数据后连接到db,php,mysql,ajax,joomla,Php,Mysql,Ajax,Joomla,我正在为Joomla 1.6构建一个组件 我与数据库的连接有问题 我已经用ajax将数据发送到一个名为rating.php的php文件中;数据被毫无问题地发送到文件中。但是,如果我离开该行,则不会发送数据 defined('_JEXEC') or die('Restricted access'); 定义为(“JEXEC”)或die(“受限访问”); 但我收到一条“限制访问”的信息 其次,即使我注释掉了前面的检查,我也无法连接到这个php文件中的数据库,显然是因为我无法调用文件中的Joomla变量
谢谢当您通过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”而不是其他文件发出请求。通过这种方式,您可以确保框架已加载,并且在处理请求时可以使用其任何功能。另一个优点是更容易维护(特别是在大型扩展上),因为当所有请求都有相同的入口点时,更容易遵循工作流