Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2009, 15:36   #1
alexa463
Новичок
Джуниор
 
Регистрация: 02.10.2009
Сообщений: 1
По умолчанию Помогите разобраться: как убрать звено подтверждения регистрации на сайте ( php )

Уважаемые профессионалы, помогите чайнику.

Мой сайт автоматом отпавляет письмо о подтверждении регистрации, пользователь переходит по ссылке и автозалогинивается в свою анкету (в настройки). Как убрать ступень - подтверждение email пользователя, отправку письма, чтоб пользователь сразу попадал в анкету в настройки. Огромное спасибо всем кто откликнулся.

Вот исходник файла

<?php
lmb_require('src/controller/lmbController.class.php');
lmb_require('limb/validation/src/rule/lmbMatchRule.class.php');
lmb_require('src/validation/rule/CaptchaRule.class.php');
lmb_require('limb/mail/src/lmbMailer.class.php');

class RegistrationController extends lmbController
{
protected $_form_name = 'registration_form';
protected $in_popup = false;
protected $ajax = false;

protected $title = 'Регистрация';
protected $user;

function __construct()
{
parent :: __construct();

$this->user = $this->toolkit->getCmsUser();

$this->in_popup = $this->request->has('popup');
if($this->isAjaxRequest())
{
$this->in_popup = true;
$this->ajax = true;
}
}

function doDisplay()
{
if($this->ajax)
{
$this->_form_name = 'ajax_registration_form';
$this->setTemplate('registration/_ajax/display.html');
}

$this->title = 'Регистрация';

$this->useForm($this->_form_name);
$this->setFormDatasource($this->request);

// do register
if($this->request->hasPost())
{
$form_data = $this->_getFilteredFormData();

$user = new User();
$company = new Company();
$user->import($form_data);
$user->setRoleId(Roles :: USER);
$user->setReceiveMails(true);
$user->setCompany($company);
$company->import($form_data);

if(!$this->_validateRegistrationForm($user, $company))
{
$this->request->set('code', '');
return;
}

if(!$user->trySave($this->error_list))
{
$this->request->set('code', '');
return;
}

/*$this->_sendConfirmationEmail($user);*/

$redirect_url = '/registration/success';

if($this->ajax)
$redirect_url .= '?is_ajax=1';
$this->redirect($redirect_url);
}
}

function doSuccess()
{
if($this->ajax)
$this->setTemplate('registration/_ajax/success.html');

$this->title = 'Регистрация прошла успешно';
}

function doConfirm()
{
if(!$code = $this->request->get('code'))
return;

if(!$user = User :: findByConfirmCode($code))
return;

$user->activate();

//autologin
$this->user->import($user);
$this->user->setIsNew(false);
$this->user->setLoggedIn(true);

$this->redirect('/my/profile');
//$this->confirmed = true;
}

/* protected functions */
protected function _getFilteredFormData()
{
$source_data = $this->request->getPost();

$filter_array = array('login', 'password', 'verify_password', 'email', 'type', 'name',
'country_id', 'region_id', 'city_id', 'new_city', 'address',
'full_name','web_site', 'about', 'phones', 'faxes');

foreach($source_data as $key => $value)
{
if(!in_array($key, $filter_array))
unset($source_data[$key]);
}

return $source_data;
}

protected function _validateRegistrationForm($user, $company)
{
$user->validate($this->error_list);
$company->validate($this->error_list);

$validator = new lmbValidator();
$validator->addRequiredRule('code');
$validator->addRule(new CaptchaRule('code'));
$validator->addRequiredRule('agreement', 'Необходимо согласиться с условиями соглашения');
$validator->setErrorList($this->error_list);
$validator->validate($this->request);

return $this->error_list->isValid();
}

protected function _sendConfirmationEmail($user)
{
$site_name = $_SERVER['HTTP_HOST'];

$template = new lmbWactView('_mails/registration/confirmation_mail.html');
$template->setCacheDir(LIMB_VAR_DIR . '/compiled/');
$template->set('site_name', $site_name);
$template->set('user', $user);
$template->set('confirm_code', $user->getConfirmCode());
$template->set('confirm_url', 'http://' . $site_name . '/registration/confirm');

$email_body = $template->render();

$mailer = new lmbMailer();
//uses: sendHtmlMail($recipients, $sender, $subject, $html, $text = null, $charset = 'utf-8')
$mailer->sendHtmlMail($user->getEmail(),
array('address' => INFO_EMAIL, 'name' => 'Администрация ' . $site_name),
"Подтверждение регистрации на " . $site_name,
$email_body);
}
}

Последний раз редактировалось alexa463; 02.10.2009 в 16:39.
alexa463 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с PHP Nykone PHP 13 12.04.2011 09:52
проблема с контроллером 1st_fom@ Помощь студентам 3 27.07.2009 22:36
Обновление программы по http протоколу без открытия браузера и подтверждения The Best Работа с сетью в Delphi 9 21.07.2009 16:57
Помогите разобраться со связкой PHP+SOAP+WSDL bobadd PHP 9 03.11.2007 12:58