簡體   English   中英

Joomla-PHP注冊腳本

[英]Joomla - PHP registration script

我有一個登錄和注冊腳本,可以從android和iOS進行身份驗證。 注冊代碼有效,我可以注冊表單應用程序,並且可以看到用戶進入joomla數據庫。 問題是進入Joomla門戶時,我使用了激活郵件,而當我從腳本中創建用戶時,會收到錯誤的郵件。 郵件具有以下對象:COM_USERS_EMAIL_ACCOUNT_DETAILS,此文本:COM_USERS_EMAIL_register_WITH_ACTIVATION_BODY。

這是注冊腳本:

<?php
if( $_POST["name"] || $_POST["email"] || $_POST["username"] || $_POST["password"] ){
     define( '_JEXEC', 1 );
     define('JPATH_BASE', dirname(__FILE__) );
     define( 'DS', DIRECTORY_SEPARATOR );

     require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
     require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

     $app = JFactory::getApplication('site');
     $app->initialise();
     require_once(JPATH_BASE.DS.'components'.DS.'com_users'.DS.'models'.DS.'registration.php');

     $model = new UsersModelRegistration();
     jimport('joomla.mail.helper');
     jimport('joomla.user.helper');

     $username = $_POST['username'];
     $name = $_POST['name'];
     $email =  $_POST['email'];
     $password =  $_POST['password'];
     $block = '0';
     $sendEmail = '1';
     $activation = '';
     $data = array( 'username' => $username,
     'name' => $name,
     'email1' => $email,
     'password1' => $password, // First password field
     'password2' => $password, // Confirm password field
     'sendEmail' => $sendEmail,
     'activation' => $activation,
     'block' => 0 );
      echo $model->register($data);
}
?>

如果我強制“激活”陣營,則Joomla會用激活代碼覆蓋。 與阻止和sendEmail相同。

如何禁用郵件(僅來自應用程序)或發送正確的郵件?

謝謝!

由於您使用的是用戶模型來保存記錄,因此很難不發送電子郵件。 您可能需要編寫自己的代碼來保存用戶,或者擴展和覆蓋模型。

更簡單的方法是只確保已加載com_users語言文件,以便將那些大寫的字符串替換為正確的文本,如下所示:

$lang = JFactory::getLanguage();
$extension = 'com_users';
$base_dir = JPATH_SITE;
$language_tag = 'en-GB';
$reload = true;
$lang->load($extension, $base_dir, $language_tag, $reload);

我將其放在加載模型的require_once之后,您應該會很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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