簡體   English   中英

在外部php中登錄用戶joomla

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM