Помощь Авторизация и регистрация на одной странице

Тема в разделе "DLE", создана пользователем sidor, 12 апр 2009.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. sidor

    sidor

    Регистр.:
    7 июн 2006
    Сообщения:
    220
    Симпатии:
    14
    DLE: 7,5
    NULLED: mid-team

    Нужно сделать авторизацию и регистрацию пользователя на одной странице.
    Выглядит все это примерно так:
    [​IMG]

    Код файла registration.tpl примерной такой:
    HTML:
    <div class="news_head">Учетная запись пользователя</div>
    <div class="news_line"><img src="{THEME}/images/news_up.gif" /></div>
    <div class="usercp">
    	<div class="autentification">
    		<div class="name">Войти</div>
    		<div class="login">Логин&nbsp;&nbsp;<input type="text" name="login_name" class="textbox" /></div>
    		<div class="password">Пароль&nbsp;&nbsp;<input type="password" name="login_password" class="textbox" /></div>
    		<div class="enter"><input onclick="submit();" name="image" type="image" src="{THEME}/images/enter.gif" onmouseover=src="{THEME}/images/enter_hover.gif" onmouseout=src="{THEME}/images/enter.gif" value="войти" /><input name="login" type="hidden" id="login" value="submit" /></div>
    		<div class="lost_password"><a href="{$link_lost}">Забыли пароль?</a></div>
    	</div>
    	<div class="registration">
    		<div class="name">Регистрация</div>
    		<div class="login">Логин&nbsp;&nbsp;<input type="text" name="name" id='name' size="28" /></div>
    		<div class="password">Пароль&nbsp;&nbsp;<input type="password" name="password1" size="28" /></div>
    		<div class="password2">Подтверждение пароля&nbsp;&nbsp;<input type="password" name="password2" size="28" /></div>
    		<div class="email">e-mail&nbsp;&nbsp;<input type="text" name="email" size="28"/></div>
    		<div class="reg"><input name="image2" type="image" src="{THEME}/images/reg.gif" onmouseover=src="{THEME}/images/reg_hover.gif" onmouseout=src="{THEME}/images/reg.gif" class="button" /></div>
    	</div>
    </div>
    Проблема в том что при нажатии любой кнопки, авторизация и регистрация проходят одновременно :) соответственно, если авторизируюсь, то авторизируется, но показывает ошибку регистрации и наоборот.

    Подскажите пожалуйста как быть.
     
  2. antiterror

    antiterror xProgramming

    Регистр.:
    22 авг 2007
    Сообщения:
    343
    Симпатии:
    135
    Попробуй использовать Форму <form action="autentification.php"> код autentification </form> и <form action="registration.php"> код registration </form>, но ты должен иметь для registration и autentification php сайт с нужным кодом, тогда должно сработать!

    вот взял с самого login.tpl
    HTML:
    <form method="post" onsubmit="javascript:showBusyLayer()">
    	<div class="autentification">
    		<div class="name">Войти</div>
    		<div class="login">Логин&nbsp;&nbsp;<input type="text" name="login_name" class="textbox" /></div>
    		<div class="password">Пароль&nbsp;&nbsp;<input type="password" name="login_password" class="textbox" /></div>
    		<div class="enter"><input onclick="submit();" name="image" type="image" src="{THEME}/images/enter.gif" onmouseover=src="{THEME}/images/enter_hover.gif" onmouseout=src="{THEME}/images/enter.gif" value="войти" /><input name="login" type="hidden" id="login" value="submit" /></div>
    		<div class="lost_password"><a href="{$link_lost}">Забыли пароль?</a></div>
    	</div>
    </form>
    HTML:
    <form  method="post" name="registration" id="registration" action="http://сайт/index.php?do=register">
    <div class="registration">
    		<div class="name">Регистрация</div>
    		<div class="login">Логин&nbsp;&nbsp;<input type="text" name="name" id='name' size="28" /></div>
    		<div class="password">Пароль&nbsp;&nbsp;<input type="password" name="password1" size="28" /></div>
    		<div class="password2">Подтверждение пароля&nbsp;&nbsp;<input type="password" name="password2" size="28" /></div>
    		<div class="email">e-mail&nbsp;&nbsp;<input type="text" name="email" size="28"/></div>
    		<div class="reg"><input name="image2" type="image" src="{THEME}/images/reg.gif" onmouseover=src="{THEME}/images/reg_hover.gif" onmouseout=src="{THEME}/images/reg.gif" class="button" /></div>
    	</div>
    </form>
    Попробуй должно сработать!
     
    XXXepypG нравится это.
  3. kwin

    kwin

    Регистр.:
    22 авг 2007
    Сообщения:
    413
    Симпатии:
    167
    попрятай в отдельную форму

    в /modules/register.php


    найди внизу

    PHP:
    $tpl->copy_template "<form  method=\"post\" name=\"registration\" enctype=\"multipart/form-data\" action=\"".$PHP_SELF."\">\n".$tpl->copy_template."
    <input name=\"submit_val\" type=\"hidden\" id=\"submit_val\" value=\"submit_val\">
    <input name=\"do\" type=\"hidden\" id=\"do\" value=\"register\">
    <input name=\"doaction\" type=\"hidden\" id=\"doaction\" value=\"validating\">
    <input name=\"id\" type=\"hidden\" id=\"id\" value=\"
    {$_REQUEST['id']}\">
    </form>"
    ;
    убери
    PHP:
    <form  method=\"post\" name=\"registration\" enctype=\"multipart/form-data\" action=\"".$PHP_SELF."\">
    выше этого блока добавь
    PHP:
    $tpl->set('{reg_form}'"<form  method=\"post\" name=\"registration\" enctype=\"multipart/form-data\" action=\"".$PHP_SELF."\">");

    а в registration.tpl сделай

    HTML:
    
    
    <form method="post" action="/">
    <div class="news_head">Учетная запись пользователя</div>
    <div class="news_line"><img src="{THEME}/images/news_up.gif" /></div>
    <div class="usercp">
    	<div class="autentification">
    		<div class="name">Войти</div>
    		<div class="login">Логин&nbsp;&nbsp;<input type="text" name="login_name" class="textbox" /></div>
    		<div class="password">Пароль&nbsp;&nbsp;<input type="password" name="login_password" class="textbox" /></div>
    		<div class="enter"><input onclick="submit();" name="image" type="image" src="{THEME}/images/enter.gif" onmouseover=src="{THEME}/images/enter_hover.gif" onmouseout=src="{THEME}/images/enter.gif" value="войти" /><input name="login" type="hidden" id="login" value="submit" /></div>
    		<div class="lost_password"><a href="{$link_lost}">Забыли пароль?</a></div>
    	</div>
    </form>
    {reg_form}
    	<div class="registration">
    		<div class="name">Регистрация</div>
    		<div class="login">Логин&nbsp;&nbsp;<input type="text" name="name" id='name' size="28" /></div>
    		<div class="password">Пароль&nbsp;&nbsp;<input type="password" name="password1" size="28" /></div>
    		<div class="password2">Подтверждение пароля&nbsp;&nbsp;<input type="password" name="password2" size="28" /></div>
    		<div class="email">e-mail&nbsp;&nbsp;<input type="text" name="email" size="28"/></div>
    		<div class="reg"><input name="image2" type="image" src="{THEME}/images/reg.gif" onmouseover=src="{THEME}/images/reg_hover.gif" onmouseout=src="{THEME}/images/reg.gif" class="button" /></div>
    	</div>
    </div>
     
    sidor нравится это.
  4. antiterror

    antiterror xProgramming

    Регистр.:
    22 авг 2007
    Сообщения:
    343
    Симпатии:
    135
    такая проблема в дле 7.0, когда нажимаю на кнопку Проверить имя:
    Warning: in_array(:( Wrong datatype for second argument in /home/public_html/engine/ajax/registration.php on line 142 ? ?? ???? ?? ? ? ???/font>

    Сама страка:
    if ( in_array( strtolower($name), $user_filter['name'] ) )

    я взял модуль Быстрая регистрация (с кодом безопасности)
    h**p://4dle.ru/2007/06/12/bystraja_registracija_s_kodom_bezopasnosti.html

    в чём может быть проблема?
     
  5. Germango

    Germango

    Регистр.:
    25 авг 2008
    Сообщения:
    153
    Симпатии:
    27
    А не проще сделать так?:
     

    Вложения:

    • login.rar
      Размер файла:
      769 байт
      Просмотров:
      5
    • screen_login.jpg
      screen_login.jpg
      Размер файла:
      37 КБ
      Просмотров:
      29
  6. sidor

    sidor

    Регистр.:
    7 июн 2006
    Сообщения:
    220
    Симпатии:
    14
    Germango, не легче. Потому что не у всех может работать. Это во-первых. А во-вторых, зачем люди дизайн рисовали? наверное, что бы было красиво ;)

    вообщем, я сделал примерно как сказал kwin. Только у него в сообщении неточности. Там указана форма валидации, а не регистрации нового пользователя. Ну а так идею понял и сделал все как нужно. Единственное, что не работает валидация: я уже и так пытался и эдак, но не записываются данные в базу и все :(
     
Статус темы:
Закрыта.