0

ユーザーにメールで送信されるランダムパスワードも生成するカスタム joomla アカウント作成スクリプトを作成しています。アカウントは作成されますが、パスワードは常に機能しません。

私はすでにユーザー、電子メールなどをキャプチャしています。

$password = rand(1000,99999);
 $password2  = md5($password);
$query = "INSERT INTO jos_users          (username,email,name,usertype,sendEmail,gid,params,registerDate,password) 
VALUES (' $username','$email','$name','Registered','1','18','admin_language=
 language=
 editor=
helpsite=
timezone=0',NOW(),'$password2')";   
    $result = mysql_query($query);
     $uid=mysql_insert_id();

ETC................................. ETC

私はこれらのバリエーションを試しました

  sha1($_POST['pword']);

 $password = rand(1000,9999);
 $salt = md5(rand(1000,9999));
 $password2 = md5($password.$salt).":".$salt;

USER $password を送信しても、間違っていてログインできません。私は何かが欠けている可能性があります。

  /////////////////////////////full script just in case///////////////////////////////

  $password = rand(1000,99999);
  $password2  = md5($password);
 die($password2);
 $query = "INSERT INTO jos_users     (username,email,name,usertype,sendEmail,gid,params,registerDate,password) 
 VALUES (' $username','$email','$name','Registered','1','18','admin_language=
language=
editor=
helpsite=
timezone=0',NOW(),'$password2')";   
    $result = mysql_query($query);
     $uid=mysql_insert_id();


    $query = "INSERT INTO #__spcClient (clientID,GSM,StartingUnits,Units) VALUES ('$uid','$GSM','$units','$units')";    
    $myfunctions->dbquery($query);

    $query = "INSERT INTO jos_core_acl_aro (section_value,value,name) VALUES ('users','$uid','$name')";
    $result = mysql_query($query);
     $uid2=mysql_insert_id();
    //$rowcount = $db->getAffectedRows($result);
    $query = "INSERT INTO jos_core_acl_groups_aro_map (group_id,aro_id) VALUES ('18','".$uid2."')";
    $result = mysql_query($query);

//////////////////////////////////////////////////////////////////////////

4

2 に答える 2

2

これらすべてのバリエーションを試した理由はわかりませんが、Joomla での今後の参考のために! /libraries/joomla/user/特にhelper.php、メソッドが含まれているものを確認することができますgetCryptedPassword()。デフォルトの暗号化 (「md5-hex」) は、次のコードに切り替わります。

case 'md5-hex' :
default :
    $encrypted = ($salt) ? md5($plaintext.$salt) : md5($plaintext);
    return ($show_encrypt) ? '{MD5}'.$encrypted : $encrypted;

送信されたデータをバインドし、パスワード配列 (salt と暗号化されたパスワードを含む) を作成するbind()方法も検討する価値があります。user.php

$array['password'] = $crypt.':'.$salt;
于 2013-02-08T22:26:44.307 に答える
0

あなたは私を正しい方向に転がらせました。ありがとう。joomlaにはバグがあると思います。挿入後にデータベースの更新を実行しましたが、機能しました。pwdを自分自身にリセットしました!

           '$query  = 'UPDATE #__users'
            . ' SET password = '.$db->Quote($password)
            . ' , activation = ""'
            . ' WHERE id = '.(int) $id
            . ' AND block = 0';

    $db->setQuery($query);

    // Save the password
    $db->query();'
于 2013-02-09T09:29:47.243 に答える