0

私は 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;

            }
        }

    }

    ?>

ご理解とご協力をお願いいたします。

4

3 に答える 3

0

次のコードを使用して、要件を達成できます。

joomla標準では、次の方法を使用してパスワードを作成できます

                     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();

ルートjoomlaのインストールでこのファイルを使用し、joomlaフレームワークを含めてから、パスワードを作成します。joomla'sを使用できます

$app->login($credentional,$option);ログインシステム用。

あなたはスタックオーバーフローで多くの同様の質問を見つけることができますもっと検索してみてください。

これを見て くださいこれがあなたを助けることを願っています。

于 2012-12-18T02:16:19.987 に答える
0

ジュムラ!1.5 は md5 を使用してパスワードをハッシュします。パスワードが作成されると、パスワード文字列の末尾に追加される 32 文字のソルトでハッシュされます。パスワードは {TOTAL HASH}:{ORIGINAL SALT} として保存されます。

これが認証のためにどのようにテストされているかを確認するには、plugins/authentication/joomla.php 行 80-116 を見てください。アプリのログインに同じ機能を使用します。

于 2012-12-17T18:00:19.627 に答える
0

Joomla はパスワードに md5 ハッシュを使用しますが、アーキテクチャが外部アクセスを防止するため、外部ファイルを使用すると joomla リソースにアクセスできません。逆に、ユーザー /password を使用して joomla 基本ログイン システムにプログラム的にアクセスし、アクセスを許可します。

于 2012-12-17T19:43:50.100 に答える