2012-12-17 94 views
0

我在做一个Android应用程序,我需要用户登录到属于joomla的数据库。我正在做一个PHP,但它不起作用在外部登录用户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; 

      } 
     } 

    } 

    ?> 

我感谢您的帮助和耐心。

回答

0

Joomla! 1.5使用md5来散列密码。在创建密码时,它们会被附加到密码字符串末尾的32个字符的哈希值散列。密码存储为{TOTAL HASH}:{ORIGINAL SALT}。

要看到这是如何进行认证测试,看看插件/认证/ joomla.php线80-116.use相同的功能乌拉圭回合的应用程序登录

0

的Joomla使用MD5哈希密码,而是使用你无法访问joomla资源的外部文件,因为架构阻止了外部访问。另一种方法是使用用户/密码以编程方式访问joomla基本登录系统来授予访问权限。

0

您可以使用下面的代码来实现您的要求。

在的Joomla标准,你可以用下面的方式

     jimport('joomla.user.helper'); 
      $salt = JUserHelper::genRandomPassword(32); 
      $crypt = JUserHelper::getCryptedPassword($password_choose, $salt); 
      $password = $crypt.':'.$salt; 

你提到你是从外部文件访问(或程序),那么如果你有另一侧安装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(); 

使用此文件在根安装Joomla使用Joomla默认框架的工作,包括框架的Joomla工作,然后创建密码。 您可以使用joomla's登录系统的

$app->login($credentional,$option);

你可以在堆栈溢出很多类似的问题,试图寻找更多..

take look at this 希望这将帮助你..