<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; Форма входа]]></title>
	<link rel="self" href="https://forum.readyscript.ru/feed/atom/topic/779/" />
	<updated>2016-07-11T05:31:31Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.readyscript.ru/topic/779/forma-vkhoda/</id>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3913/#p3913" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Ну всё дело в том я так думаю, про то что я говорил, что нужно проверять на флажок приходящий из поста о том, что нужно генерировать пароль. <br />Вы можете свой код закомментировать и попробовать туже схему. Я думаю всё будет как надо. Т.е. Вам не хватает проверок на то, что именно сейчас делается с пользователем. Попробуйте завардампить объекты в Вашем коде и приходящий POST или GET запрос, чтобы проанализировать.</p></blockquote></div><p>Думаю я с этим уже не справлюсь. Давайте&nbsp; тогда по другому решим этот вопрос</p>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>https://forum.readyscript.ru/user/385/</uri>
			</author>
			<updated>2016-07-11T05:31:31Z</updated>
			<id>https://forum.readyscript.ru/post/3913/#p3913</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3900/#p3900" />
			<content type="html"><![CDATA[<p>Ну всё дело в том я так думаю, про то что я говорил, что нужно проверять на флажок приходящий из поста о том, что нужно генерировать пароль. <br />Вы можете свой код закомментировать и попробовать туже схему. Я думаю всё будет как надо. Т.е. Вам не хватает проверок на то, что именно сейчас делается с пользователем. Попробуйте завардампить объекты в Вашем коде и приходящий POST или GET запрос, чтобы проанализировать.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-08T13:53:41Z</updated>
			<id>https://forum.readyscript.ru/post/3900/#p3900</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3898/#p3898" />
			<content type="html"><![CDATA[<p>Заметил следующий баг. Если выйти из профиля и попытатся зайти, пишет неверный e-mail или пароль. А если не вводить пароль то авторизовывает. И это только с теми аккаунтами, которые зарегистрированы данным методом(автоматическим паролем)</p>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>https://forum.readyscript.ru/user/385/</uri>
			</author>
			<updated>2016-07-08T13:07:03Z</updated>
			<id>https://forum.readyscript.ru/post/3898/#p3898</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3895/#p3895" />
			<content type="html"><![CDATA[<p>Он вызывает из этого же класса функцию <strong>checkOpenPassword</strong>, посмотрите что в ней.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-08T12:14:37Z</updated>
			<id>https://forum.readyscript.ru/post/3895/#p3895</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3891/#p3891" />
			<content type="html"><![CDATA[<p>Да, так работает <img src="https://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> И сразу же исчесла проблема с переадрисацией на страницу регистрации. Теперь все как надо, сразу авторизовывает.<br />Только почему то регистрация работает, если только заккоментирована вот эта строчка из <strong>user.inc.php</strong><br /></p><div class="codebox"><pre><code>Checker&#039; =&gt; array(array(__CLASS__, &#039;checkOpenPassword&#039;), &#039;&#039;)</code></pre></div><p>Не хватает какой то проверки?</p>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>https://forum.readyscript.ru/user/385/</uri>
			</author>
			<updated>2016-07-08T10:16:31Z</updated>
			<id>https://forum.readyscript.ru/post/3891/#p3891</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3890/#p3890" />
			<content type="html"><![CDATA[<p>Да точно! здесь же у нас идёт на прямую запись. Я думаю Вот так поможет.<br />изменить<br /></p><div class="codebox"><pre><code>$user[&#039;pass&#039;] = $user::cryptPass(\RS\Helper\Tools::generatePassword(6));</code></pre></div><p>на <br /></p><div class="codebox"><pre><code>$user[&#039;openpass&#039;] = \RS\Helper\Tools::generatePassword(6);
$user[&#039;pass&#039;] = $user::cryptPass();

Ато у нас получается [b]openpass[/b] поэтому и пустой, что нигде не присваивается.</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-08T10:01:41Z</updated>
			<id>https://forum.readyscript.ru/post/3890/#p3890</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3888/#p3888" />
			<content type="html"><![CDATA[<p>Не помогло, все равно не показывает пароль. Единственное что стало, так это два письма приходить<br />Можно конечно сделать так, но им тогда хеш будет зашифрованный пароль присылаться.<br />Какой еще есть вариант?<br /></p><div class="codebox"><pre><code>$user[&#039;openpass&#039;] = $user[&#039;pass&#039;] = $user::cryptPass(\RS\Helper\Tools::generatePassword(6));</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>https://forum.readyscript.ru/user/385/</uri>
			</author>
			<updated>2016-07-08T09:49:22Z</updated>
			<id>https://forum.readyscript.ru/post/3888/#p3888</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3883/#p3883" />
			<content type="html"><![CDATA[<p>Чтобы видеть ошибки, а не 500-ю включите отображение ошибок:<br /><a href="http://readyscript.ru/faq/#faq-errors">http://readyscript.ru/faq/#faq-errors</a></p><div class="codebox"><pre><code> $user = $data[&#039;orm&#039;];
 $flag  = $data[&#039;flag&#039;]; //Флаг insert или update
 if ($flag == self::INSERT_FLAG &amp;&amp; \Setup::$INSTALLED &amp;&amp; !$this[&#039;no_send_notice&#039;]) {
            
 // Уведомление пользователю
 $user = new \Users\Model\Notice\UserRegisterUser;
 $user-&gt;init($this, $this[&#039;openpass&#039;]);
 \Alerts\Model\Manager::send($user); </code></pre></div><p>Что касается уведомления, то Вы переприсвоили переменной <strong>$user</strong>, объект самого уведомления и передали объект самого себя, а не пользователя. Зачем? <br />Вам в Уведомдение нужно передать объект пользователя который вы получаете из объекта $data выше.</p><p>Нужно же так:)<br /></p><div class="codebox"><pre><code> $user = $data[&#039;orm&#039;];
 $flag  = $data[&#039;flag&#039;]; //Флаг insert или update
 if ($flag == $user::INSERT_FLAG &amp;&amp; \Setup::$INSTALLED &amp;&amp; !$user[&#039;no_send_notice&#039;]) {
            
 // Уведомление пользователю
 $user_notice = new \Users\Model\Notice\UserRegisterUser;
 $user_notice-&gt;init($user, $user[&#039;openpass&#039;]);
 \Alerts\Model\Manager::send($user_notice); </code></pre></div>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-08T08:55:35Z</updated>
			<id>https://forum.readyscript.ru/post/3883/#p3883</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3879/#p3879" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Попробуйте в Вашем хуке <strong>beforeWrite</strong> выполнить сразу после установки <strong>openpass</strong><br /></p><div class="codebox"><pre><code>/**
* Действия перед записью объекта пользователя
* 
* @param array $data - Массив  с данными
*/
public static function ormBeforeWriteUsersUser($data){
     /**
     * @var \User\Model\Orm\User
     */
     $user = $data[&#039;orm&#039;];
     $flag  = $data[&#039;flag&#039;]; //Флаг insert или update
     if ($flag==$user::INSERT_FLAG){ //Делаем только на создание (insert)
          $my_autologin = \RS\Http\Request::commonInstance()-&gt;request(&#039;my_autologin&#039;, TYPE_INTEGER, false); //Получаем флаг из запроса
          if ($my_autologin){ //Если флаг стоит

              $user[&#039;pass&#039;] = $user::cryptPass(\RS\Helper\Tools::generatePassword(6));
          }

     }
}</code></pre></div><p>Я думаю, тогда 100% всё будет как надо.</p></blockquote></div><p>Вот сейчас пароль записывается в БД, но на почту поле пароль приходит пустое.</p><p>Что же получается нужен хук после записи обьекта?Вот я его создал, но допустил ошибку и выдает ошибку 500 при регистрации<br /></p><div class="codebox"><pre><code>    /**
    * Действия после записи объекта
    * 
    * @param string $flag - insert или update
    */
public static function ormAfterWriteUsersUser($data){
    /**
     * @var \User\Model\Orm\User
     */
     $user = $data[&#039;orm&#039;];
     $flag  = $data[&#039;flag&#039;]; //Флаг insert или update
             if ($flag == self::INSERT_FLAG &amp;&amp; \Setup::$INSTALLED &amp;&amp; !$this[&#039;no_send_notice&#039;]) {
            
            // Уведомление пользователю
            $user = new \Users\Model\Notice\UserRegisterUser;
            $user-&gt;init($this, $this[&#039;openpass&#039;]);
            \Alerts\Model\Manager::send($user); 
            
        }

} </code></pre></div>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>https://forum.readyscript.ru/user/385/</uri>
			</author>
			<updated>2016-07-08T06:22:55Z</updated>
			<id>https://forum.readyscript.ru/post/3879/#p3879</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3869/#p3869" />
			<content type="html"><![CDATA[<p>Попробуйте в Вашем хуке <strong>beforeWrite</strong> выполнить сразу после установки <strong>openpass</strong><br /></p><div class="codebox"><pre><code>/**
* Действия перед записью объекта пользователя
* 
* @param array $data - Массив  с данными
*/
public static function ormBeforeWriteUsersUser($data){
     /**
     * @var \User\Model\Orm\User
     */
     $user = $data[&#039;orm&#039;];
     $flag  = $data[&#039;flag&#039;]; //Флаг insert или update
     if ($flag==$user::INSERT_FLAG){ //Делаем только на создание (insert)
          $my_autologin = \RS\Http\Request::commonInstance()-&gt;request(&#039;my_autologin&#039;, TYPE_INTEGER, false); //Получаем флаг из запроса
          if ($my_autologin){ //Если флаг стоит

              $user[&#039;pass&#039;] = $user::cryptPass(\RS\Helper\Tools::generatePassword(6));
          }

     }
}</code></pre></div><p>Я думаю, тогда 100% всё будет как надо.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-07T15:29:15Z</updated>
			<id>https://forum.readyscript.ru/post/3869/#p3869</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3866/#p3866" />
			<content type="html"><![CDATA[<p>Вставляю следующий код в свою форму но пароль не записывается в бд. где искать ошибку<br /></p><div class="codebox"><pre><code>             &lt;tr&gt;
                    &lt;td class=&quot;key&quot;&gt;Пароль:&lt;/td&gt;
                    &lt;td class=&quot;value&quot;&gt;
                        &lt;input type=&quot;checkbox&quot; name=&quot;my_autologin&quot; checked value=&quot;1&quot; id=&quot;my-autologin&quot;&gt;
                        &lt;label for=&quot;my-autologin&quot;&gt;Получить автоматически на e-mail&lt;/label&gt;
                        &lt;div class=&quot;help&quot;&gt;Нужен для проверки статуса заказа, обращения в поддержку, входа в кабинет&lt;/div&gt;
                        &lt;div id=&quot;manual-login&quot; style=&quot;display:none&quot;&gt;
                            &lt;div class=&quot;inline f&quot;&gt;
                                &lt;input name=&quot;openpass&quot; value=&quot;&quot; maxlength=&quot;70&quot;  size=&quot;18&quot; type=&quot;password&quot; /&gt;
                                &lt;div class=&quot;help&quot;&gt;Пароль&lt;/div&gt;
                            &lt;/div&gt;
                            &lt;div class=&quot;inline&quot;&gt;
                                &lt;input name=&quot;openpass_confirm&quot; value=&quot;&quot; maxlength=&quot;70&quot;  size=&quot;18&quot; type=&quot;password&quot; /&gt;
                                &lt;div class=&quot;help&quot;&gt;Повтор пароля&lt;/div&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/td&gt;
                &lt;/tr&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>https://forum.readyscript.ru/user/385/</uri>
			</author>
			<updated>2016-07-07T12:50:43Z</updated>
			<id>https://forum.readyscript.ru/post/3866/#p3866</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3865/#p3865" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>значит мне в форму регистрации нужно вставить данный код?<br />а что тогда использовать вместо? &lt;input type=&quot;checkbox&quot; name=&quot;reg_autologin&quot; {if $order.reg_autologin}checked{/if} value=&quot;1&quot; id=&quot;reg-autologin&quot;&gt;</p></blockquote></div><p>Да, только проверка там не нужна на if ведь объекта <strong>$order</strong> просто в том шаблоне у Вас не существует. И сделайте <strong>name</strong> другой например просто <strong>my_autologin</strong>, чтобы не пересеклось ни где. А потом в хуке на него и проверите.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-07T12:23:57Z</updated>
			<id>https://forum.readyscript.ru/post/3865/#p3865</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3864/#p3864" />
			<content type="html"><![CDATA[<p>Потому что в объектах используются функции beforeWrite(перед записью в БД) и afterWrite(После записи в БД) в которых и происходят все дейтсвия. Если вы откроете класс <strong>\Users\Model\Orm\User</strong> (<strong>/modules/users/model/orm/user.inc.php</strong>) и посмотрите в метод <br /><strong>beforeWrite</strong>.<br />То там задаётся сам пароль вот так:<br /></p><div class="codebox"><pre><code>if (!empty($this[&#039;openpass&#039;])) {
      $this[&#039;pass&#039;] = self::cryptPass($this[&#039;openpass&#039;]);
}</code></pre></div><p>Т.е. если задан <strong>openpass</strong>, что Вы и делаете в хуке, то <strong>pass</strong> будет сформирован из него.<br />Мы не храним в открытом виде пароли в БД.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-07T12:21:22Z</updated>
			<id>https://forum.readyscript.ru/post/3864/#p3864</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3863/#p3863" />
			<content type="html"><![CDATA[<p>Да именно так, но если смотреть в var_dump то<br /><strong> [&quot;pass&quot;]=&gt;<br />&nbsp; &nbsp; &nbsp; NULL</strong></p><p>в базу ничего не передается, почему?</p><p>значит мне в форму регистрации нужно вставить данный код?<br />а что тогда использовать вместо? &lt;input type=&quot;checkbox&quot; <span style="color: red"><strong>name=&quot;reg_autologin&quot; {if $order.reg_autologin}checked{/if} value=&quot;1&quot; id=&quot;reg-autologin&quot;&gt;</strong></span><br /></p><div class="codebox"><pre><code>                &lt;tr&gt;
                    &lt;td class=&quot;key&quot;&gt;Пароль:&lt;/td&gt;
                    &lt;td class=&quot;value&quot;&gt;
                        &lt;input type=&quot;checkbox&quot; name=&quot;reg_autologin&quot; {if $order.reg_autologin}checked{/if} value=&quot;1&quot; id=&quot;reg-autologin&quot;&gt;
                        &lt;label for=&quot;reg-autologin&quot;&gt;Получить автоматически на e-mail&lt;/label&gt;
                        &lt;div class=&quot;help&quot;&gt;Нужен для проверки статуса заказа, обращения в поддержку, входа в кабинет&lt;/div&gt;
                        &lt;div id=&quot;manual-login&quot; {if $order.reg_autologin}style=&quot;display:none&quot;{/if}&gt;
                            &lt;div class=&quot;inline f&quot;&gt;
                                {$order.__reg_openpass-&gt;formView([&#039;form&#039;])}
                                &lt;div class=&quot;help&quot;&gt;Пароль&lt;/div&gt;
                            &lt;/div&gt;
                            &lt;div class=&quot;inline&quot;&gt;
                                {$order.__reg_pass2-&gt;formView()}
                                &lt;div class=&quot;help&quot;&gt;Повтор пароля&lt;/div&gt;
                            &lt;/div&gt;
                            &lt;div class=&quot;inline&quot;&gt;
                                &lt;div class=&quot;form-error&quot;&gt;{$order-&gt;getErrorsByForm(&#039;reg_openpass&#039;, &#039;, &#039;)}&lt;/div&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/td&gt;
                &lt;/tr&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Андрей]]></name>
				<uri>https://forum.readyscript.ru/user/385/</uri>
			</author>
			<updated>2016-07-07T12:15:28Z</updated>
			<id>https://forum.readyscript.ru/post/3863/#p3863</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Форма входа]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/3862/#p3862" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>А для чего проверять на это галочку?</p></blockquote></div><p>Потому, что запись в пользователя в БД может происходить и через админку. Вот представьте вы создаёте в админ панели пользователя указываете у него пароль. А он потом не подходит. Для этого и нужна проверка на галочку. Или программно создаёте пользователя, хотите присвоить ему пароль и никак не получается. Проверьте на параметр в посте.</p><div class="quotebox"><blockquote><p>А на каком же тогда этапе пароль должен записываться в поле pass?<br />Не понимаю что то я</p></blockquote></div><p>На этом этапе Вы и передаёте пароль для записи. Просто генерируете его самостоятельно. Ведь Вы же так хотели.</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-07-07T12:12:58Z</updated>
			<id>https://forum.readyscript.ru/post/3862/#p3862</id>
		</entry>
</feed>
