[英]login user joomla in external php
我正在制作一個Android應用程序,我需要用戶登錄到屬於joomla的數據庫。 我正在制作php,但無法正常工作
您如何看待代碼? 你會改變嗎?
<?php
/**
* Database config variables
*/
define("DB_HOST", "localhost");
define("DB_USER", "root");//cambiar por el nombre de usuario definido en la configuracion de la BD.
define("DB_PASSWORD", "");//Modificar por el password elegido
define("DB_DATABASE", "gestorrecursos");//Nombre de la base de datos reemplazar si se utilizo otro diferente al mencionado en el tutorial.
<?php
class funciones_BD {
private $db;
// constructor
function __construct() {
require_once 'connectbd.php';
// connecting to database
$this->db = new DB_Connect();
$this->db->connect();
}
// destructor
function __destruct() {
}
/**
* agregar nuevo usuario
*/
public function adduser($username, $password,$id) {
$result = mysql_query("INSERT INTO ocbup_users(username,password,id) VALUES('$username', '$password',$id)");
// check for successful store
if ($result) {
return true;
} else {
return false;
}
}
/**
* Verificar si el usuario ya existe por el username
*/
public function isuserexist($username) {
$result = mysql_query("SELECT username from ocbup_users WHERE username = '$username'");
$num_rows = mysql_num_rows($result); //numero de filas retornadas
if ($num_rows > 0) {
// el usuario existe
return true;
} else {
// no existe
return false;
}
}
public function login($user,$passw){
$result=mysql_query("SELECT COUNT(*) FROM ocbup_users WHERE username='$user' AND password='$passw' ");
$count = mysql_fetch_row($result);
/*como el usuario debe ser unico cuenta el numero de ocurrencias con esos datos*/
if ($count[0]==0){
return true;
}else{
return false;
}
}
}
?>
感謝您的幫助和耐心。
Joomla! 1.5使用md5哈希密碼。 創建密碼后,會使用32個字符的鹽對它們進行哈希處理,並在密碼字符串的末尾附加鹽。 密碼存儲為{TOTAL HASH}:{ORIGINAL SALT}。
要查看如何對此進行身份驗證測試,請查看plugins / authentication / joomla.php第80-116行。使用與您的應用登錄相同的功能
Joomla使用md5哈希作為密碼,但是通過使用外部文件,您無法訪問joomla資源,因為該體系結構阻止了外部訪問。 另一種方法是使用用戶/ password以編程方式使用joomla基本登錄系統來授予訪問權限。
您可以使用以下代碼來滿足您的要求。
在joomla standard中,您可以使用以下方式創建密碼
jimport('joomla.user.helper');
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($password_choose, $salt);
$password = $crypt.':'.$salt;
您提到要從外部文件(或程序)進行訪問,那么如果在另一側安裝了joomla,則可以從joomla結構外部進行訪問。
使用joomla默認框架是這樣的
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );//this is when we are in the root
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
在root joomla安裝中使用此文件,並包含joomla框架,然后創建密碼。 您可以使用joomla的
$app->login($credentional,$option);
用於登錄系統。
您可以在堆棧溢出中找到許多類似的問題,嘗試進行更多搜索。
看看這個希望對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.