- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在为 Joomla 编写一个模块,此时我真的需要能够使用 Jfactory 连接到数据库。通常可以简单地使用 $db = JFactory::getDBO();
,但 PHP 错误告诉我 JFactory 类不包括在内。 所以现在我需要知道如何包含这个 JFactory 类。我尝试了一些在互联网上找到的建议,但都没有成功。这是代码(它在独立时完美运行)
<?php
// server info
$server = 'localhost';
$user = 'ss';
$pass = 'oo';
$db = 'ss';
$connection = mysql_connect($server, $user, $pass) or die ("Could not connect to server ... \n" . mysql_error ());
mysql_select_db($db) or die ("Could not connect to database ... \n" . mysql_error ());
if(isSet($_POST['username']))
{
$username = $_POST['username'];
$username = mysql_real_escape_string($username);
$sql_check = mysql_query("SELECT Username FROM users WHERE Username='$username'");
if(mysql_num_rows($sql_check))
{
echo '<font color="#cc0000"><STRONG>'.$username.'</STRONG> is already in use.</font>';
}
else
{
echo 'OK';
}
}
?>
我希望你清楚我的问题。您的帮助将不胜感激。
尝试 1
<?php
include('../../../../configuration.php');
include('../../../../libraries/joomla/factory.php');
$config =& JFactory::getConfig();
// server info
$server2 = $host;
$user2 = $user;
$pass2 = $password;
$db2 = $db;
$connection = mysqli_connect($server2, $user2, $pass2) or die ("Could not connect to server ... \n" . mysqli_error ());
mysqli_select_db($db2) or die ("Could not connect to database ... \n" . mysqli_error ());
if(isSet($_POST['username']))
{
$username = $_POST['username'];
$username = mysql_real_escape_string($username);
$sql_check = mysql_query("SELECT username FROM #__users WHERE username='$username'");
if(mysql_num_rows($sql_check))
{
echo '<font color="#cc0000"><STRONG>'.$username.'</STRONG> is already in use.</font>';
}
else
{
echo 'OK';
}
}
?>
但这也不起作用。
尝试 2(成功)
include('../../../../configuration.php');
$jc = new JConfig();
$table = 'users';
$users = $jc->dbprefix . $table;
// connect to the database
$mysqli = new mysqli($jc->host, $jc->user, $jc->password, $jc->db);
现在一切都如我所愿。现在唯一的事情是:安全。我不太确定这是否是黑客证明。有人可以评论这个吗?谢谢:)
最佳答案
我相信你已经弄明白了,但也许它对其他人有用
要使用 joomla 数据库类(即使您知道不推荐这样做 :))您需要首先定义三个常量,例如:
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', $_SERVER[ 'DOCUMENT_ROOT' ] );
然后你需要包含三个文件,比如:
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
$mainframe =& JFactory::getApplication('site');
编辑
您只能包含两个文件,例如:
define( 'JPATH_BASE', $_SERVER[ 'DOCUMENT_ROOT' ] ); // define JPATH_BASE on the external file
require_once( JPATH_BASE . DS . 'libraries' . DS . 'import.php' ); // framework
require_once( JPATH_BASE . DS . 'configuration.php' ); // config file
最后使用 joomla 类,如:
$db = JFactory::getDBO();
关于php - 在外部 php 文件 Joomla 中包含 Jfactory 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9459430/
我一直在使用 Jumi 在 Joomla 中创建一些模块。所以我可以编写任何 php/javascript 代码并创建一个 Jumi 模块,我可以在我想要的地方显示它。 我这样做已经有一段时间了,没有
我正在尝试从我的 Joomla! 检索数据数据库,但我只想返回今天之后的结果( future 日期)。我一直在尝试以下方法,但不起作用: ->select('*') -
自上次 joomla 更新到 3.8 以来,我无法通过“NON-Joomla-Script”调用以下函数。 $db=JFactory::getDBO(); 我收到以下错误消息: Fatal err
我在几个项目上使用 joomla,但我之前没有在其中任何项目上打开 E_STRICT。自从我昨天这样做以来,严格标准:只有变量应该通过引用赋值 错误被抛出指向当前模板的 index.php 并破坏了我
使用方法: JFactory::getDbo()->insertObject('#__card_bonus', $object); 有重复 key 更新吗? 最佳答案 您有几个选择: 1) 检查实体
鉴于组件,我在 joomla 2.5 viewform.php 中有以下几行 $session = & JFactory::getSession(); if(empty($session->get
鉴于组件,我在 joomla 2.5 viewform.php 中有以下几行 $session = & JFactory::getSession(); if(empty($session->get
我正在为 joomla 网站开发弹出组件,弹出窗口工作得很好,在我的弹出窗口中,我从用户那里获取电话号码,我需要将该电话号码存储到 joomla 数据库,但我无法调用 JFactory::getDBo
我正在为 Joomla 编写一个模块,此时我真的需要能够使用 Jfactory 连接到数据库。通常可以简单地使用 $db = JFactory::getDBO(); ,但 PHP 错误告诉我 JFac
3我有一个在我的网站上开发的表格,但不是 joomla 结构。在表单上,我正在尝试像这样调用事件用户数据: $user = JFactory::getUser(); echo "Your name
我是一名优秀的程序员,十分优秀!