Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla-如何在php文件中使用Ajax接收数据后连接到db_Php_Mysql_Ajax_Joomla - Fatal编程技术网

Joomla-如何在php文件中使用Ajax接收数据后连接到db

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变量

我正在为Joomla 1.6构建一个组件

我与数据库的连接有问题

我已经用ajax将数据发送到一个名为rating.php的php文件中;数据被毫无问题地发送到文件中。但是,如果我离开该行,则不会发送数据

defined('_JEXEC') or die('Restricted access'); 定义为(“JEXEC”)或die(“受限访问”); 但我收到一条“限制访问”的信息

其次,即使我注释掉了前面的检查,我也无法连接到这个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”而不是其他文件发出请求。通过这种方式,您可以确保框架已加载,并且在处理请求时可以使用其任何功能。另一个优点是更容易维护(特别是在大型扩展上),因为当所有请求都有相同的入口点时,更容易遵循工作流