Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Система регастрации пользователя на сайте, задача в создани системы регастрации.... 
:(
    Опции темы
AcidSlayer
  Дата 12.10.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.8.2007
Где: UA

Репутация: нет
Всего: нет



Задача в созднии системы регистрации пользователей на сайте!
я скал примеров мало, какие и находил неподходят! у меня есть своя версия, но я немогу понять почему он неработает!

Код

<html><body>

<?
echo'<div align="CENTER"><font class="top">Выберите тип регистрации:</font><br>
<a href=index.php?mod=reg&type=user>Пользователь</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href=index.php?mod=reg&type=club>Клуб</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href=index.php?mod=reg&type=dj>Dj</a>
</div>
<hr>
';
if(@$_GET["type"]=="user" && !isset($_POST["submit"]))
{
echo'
<form action="index.php?mod=reg" method="post">
<table cellpadding="0" cellspacing="0">
<tr>
<td align="RIGHT">Логин: </td><td>&nbsp;<input type="TEXT" name="login"></td>
</tr>
<tr>
<td align="RIGHT">Пароль: </td><td>&nbsp;<input type="TEXT" name="password"></td>
</tr>
<tr>
<td align="RIGHT">Пароль еще раз: </td><td>&nbsp;<input type="TEXT" name="password2"></td>
</tr>
<tr>
<td align="RIGHT">E-mail: </td><td>&nbsp;<input type="TEXT" name="email"></td>
</tr>
<tr>
<td align="RIGHT">Дата рождения: </td><td>&nbsp;<input type="TEXT" name="Date"></td>
</tr>
<tr>
<td align="RIGHT">Страна: </td><td>&nbsp;<input type="TEXT" name="country"></td>
</tr>
<tr>
<td align="RIGHT">Город: </td><td>&nbsp;<input type="TEXT" name="city"></td>
</tr>
<tr>
<td align="RIGHT">Отображаемое имя: </td><td>&nbsp;<input type="TEXT" name="nick"></td>
</tr>
</table>
<input type="HIDDEN" name="type" value="'.$_GET["type"].'">
<input type="BUTTON" name="submit" value="Зарегистрироваться">
</form>';

}
if(isset($_POST["submit"]))
{
if($_POST["password"]==$_POST["password2"])
{
if($_post["type"]=="user")
{
$type="user";
mysql_query("insert into dj values('','".$_POST["login"]."','".md5($_POST["password"])."','".$_POST["email"]."','".$_POST["date"]."','".$_POST["country"]."'
,'".$_POST["city"]."','','','','".$_POST["nick"]."','','','','','','".$type."','1','','')");
}
}
else
{
echo "Пароли не совподают.";
}
}
if(@$_GET["type"]=="dj" && !isset($_POST["submit"]))
{
echo'
<form action="index.php?mod=reg" method="post">
<table cellpadding="0" cellspacing="0">
<tr>
<td align="RIGHT">Логин: </td><td>&nbsp;<input type="TEXT" name="login"></td>
</tr>
<tr>
<td align="RIGHT">Пароль: </td><td>&nbsp;<input type="TEXT" name="password"></td>
</tr>
<tr>
<td align="RIGHT">Пароль еще раз: </td><td>&nbsp;<input type="TEXT" name="password2"></td>
</tr>
<tr>
<td align="RIGHT">E-mail: </td><td>&nbsp;<input type="TEXT" name="email"></td>
</tr>
<tr>
<td align="RIGHT">Дата рождения: </td><td>&nbsp;<input type="TEXT" name="Date"></td>
</tr>
<tr>
<td align="RIGHT">Страна: </td><td>&nbsp;<input type="TEXT" name="country"></td>
</tr>
<tr>
<td align="RIGHT">Город: </td><td>&nbsp;<input type="TEXT" name="city"></td>
</tr>
<tr>
<td align="RIGHT">Я предпочиаю музыку в стилях: </td><td>&nbsp;<input type="TEXT" name="Style"></td>
</tr>
<tr>
<td align="RIGHT">Отображаемое имя: </td><td>&nbsp;<input type="TEXT" name="nick"></td>
</tr>
</table>
<input type="HIDDEN" name="type" value="'.$_GET["type"].'">
<input type="BUTTON" name="submit" value="Зарегистрироваться">
</form>';

}
if(isset($_POST["submit"]))
{
if($_POST["password"]==$_POST["password2"])
{
if($_post["type"]=="user")
{
$type="user";
mysql_query("insert into dj values('','".$_POST["login"]."','".md5($_POST["password"])."','".$_POST["email"]."','".$_POST["date"]."','".$_POST["country"]."'
,'".$_POST["city"]."','','','','".$_POST["nick"]."','','','','','','".$type."','1','','')");
}
}
else
{
echo "Пароли не совподают.";
}
}
if(@$_GET["type"]=="club" && !isset($_POST["submit"]))
{
echo'
<form action="index.php?mod=reg" method="post">
<table cellpadding="0" cellspacing="0">
<tr>
<td align="RIGHT">Логин: </td><td>&nbsp;<input type="TEXT" name="login"></td>
</tr>
<tr>
<td align="RIGHT">Пароль: </td><td>&nbsp;<input type="TEXT" name="password"></td>
</tr>
<tr>
<td align="RIGHT">Пароль еще раз: </td><td>&nbsp;<input type="TEXT" name="password2"></td>
</tr>
<tr>
<td align="RIGHT">E-mail: </td><td>&nbsp;<input type="TEXT" name="email"></td>
</tr>
<tr>
<td align="RIGHT">Дата рождения: </td><td>&nbsp;<input type="TEXT" name="Date"></td>
</tr>
<tr>
<td align="RIGHT">Страна: </td><td>&nbsp;<input type="TEXT" name="country"></td>
</tr>
<tr>
<td align="RIGHT">Город: </td><td>&nbsp;<input type="TEXT" name="city"></td>
</tr>
<tr>
<td align="RIGHT">Отображаемое имя: </td><td>&nbsp;<input type="TEXT" name="nick"></td>
</tr>
</table>
<input type="HIDDEN" name="type" value="'.$_GET["type"].'">
<input type="BUTTON" name="submit" value="Зарегистрироваться">
</form>';

$conn_id=@mysql_connect("localhost","root","") or die("Ошибка при подключении к БД!");
@mysql_select_db($conn_id);

}
if(isset($_POST["submit"]))
{
if($_POST["password"]==$_POST["password2"])
{
if($_post["type"]=="user")
{
$type="user";
mysql_query("insert into dj values('','".$_POST["login"]."','".md5($_POST["password"])."','".$_POST["email"]."','".$_POST["date"]."','".$_POST["country"]."'
,'".$_POST["city"]."','','','','".$_POST["nick"]."','','','','','','".$type."','1','','')");
}
}
else
{
echo "Пароли не совподают.";
}
}
?>
</body></html>



форма почемуто нехочет пользоватея добавлять

Это сообщение отредактировал(а) AcidSlayer - 12.10.2007, 18:29
PM MAIL WWW ICQ   Вверх
webevt
Дата 12.10.2007, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 5.5.2005

Репутация: нет
Всего: 3



Не по PHP, но этого нельзя не заметить:
Цитата(AcidSlayer @  12.10.2007,  18:19 Найти цитируемый пост)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Используй отступы  smile 


Цитата(AcidSlayer @  12.10.2007,  18:19 Найти цитируемый пост)
форма почемуто нехочет пользоватея добавлять

Просто так ничего не бывает. Ошибки какие выводятся?

Советы:
1) Следи за чистотой кода. Твой код нечитабелен, в нем трудно разобраться
2) Раздели на сколько возможно HTML от PHP
3) Проверяй результаты работы функций.
Цитата(AcidSlayer @  12.10.2007,  18:19 Найти цитируемый пост)
Код

mysql_query("insert into dj values('','".$_POST["login"]."','".md5($_POST["password"])."','".$_POST["email"]."','".$_POST["date"]."','".$_POST["country"]."'
,'".$_POST["city"]."','','','','".$_POST["nick"]."','','','','','','".$type."','1','','')");

В запросе INSERT, чтоб не мучаться с values ( ... ), используй просто SET field='', filed2=''
4) "Никогда не доверяй тому, что приходит от пользователя." Проверяй и фильтруй все, что получил.

Это сообщение отредактировал(а) webevt - 12.10.2007, 18:51
PM MAIL   Вверх
AcidSlayer
Дата 12.10.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.8.2007
Где: UA

Репутация: нет
Всего: нет



А может ктото примеры кинуть? 
только не те что есть а винграде!

PM MAIL WWW ICQ   Вверх
webevt
Дата 13.10.2007, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 5.5.2005

Репутация: нет
Всего: 3



AcidSlayer, Великий Гугл тебе в помощь. И вот еще - http://www.rumv.net/. Это сборник скриптов, там есть примеры регистрации.
PM MAIL   Вверх
AcidSlayer
Дата 13.10.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.8.2007
Где: UA

Репутация: нет
Всего: нет



на googl нету, а если есть то знач я смотрел!
PM MAIL WWW ICQ   Вверх
Vaulter
Дата 13.10.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



Код

    /** регистрация пользователя
    * 1. вывод формы
    * 2. проверка уникальности логина
    * 3. вставка
    * 4. email активации
    */
    function registration(&$params = null)
    {
        if(!$this->can('auth/registration',ACL_READ,true)) return;
        $regform = new page($this,'registr_form');
        $reqfields= $GLOBALS['db']->execute("SELECT * FROM `%s` WHERE `public` = 1 AND `requered` = 1 ORDER BY `pos`",
            $this->tables['auth/profile']);
        //BUILD PROFILE FIELDS THAT REQUERED
        $profile = new page($this,'registr_profile_fields');
        /** добавляем поля в форму */
        while($field = $GLOBALS['db']->fetch($reqfields    ))
        {
            $html = formbuilder::field2html($field);
            $profile->ibl('fields', array(
                'alias'=>$field['alias'],
                'fieldhtml'=> $html,
                'name'=>$field['name']));
        }
        $profile->build();
        $regform->add('profile',$profile->compiled);
        $regform->build();
        
        /** сейчас форма содержит разметку с валидацией, надо постороить ее еще раз */
        $rebuild = new page($this,null,$regform->compiled);
        $rebuild->build('reg-form');
        $page = new page($this,'registration');//страница - обертка

        if( $regform->valid() && $rebuild->valid('reg-form') )
        {//INSERT SOME NONACTIVE USER AND SEND EMAIL
            //check
            //echo 'sdgsd';
            //echo '<pre>';print_r($_POST);echo '</pre>';exit;
            $newuser['login'] = getvar('email',VALID_STRING);
            //$al = $this->search( array('login'=> $newuser['login']) );
            //echo '<pre>';print_r($al);echo '</pre>';

            if($this->search(array('login'=> $newuser['login'])))
            {
                session::message('Пользователь с таким логином уже существует');//HOW TO DO LINK TO LOST PASSWORD
                //$page->add('registr-message','Пользователь с таким логином уже существует');
                page::redirect(page::makeurl(null,true));
                //exit;
            }
            else
            {
                /** @todo здесь взять согласно определению профайла, а не жестко */
                //$newuser['gender'] = getvar('gender',VALID_NUMBER);
                //GET PROFILES FIELD FROM FORM
                $nuser = $this->adduser($newuser);
                if( $nuser['groupid']!= ROLE_USER )
                {//activate
                    $mess = 'Успешная регистрация! По адресу '.$nuser['login'].' выслана информация для активации Вашего аккаунта';
                    //email to user
                    $email = new page($this,'email/activate');
                    $nextstep = page::makeurl(array('auth','activate','uid'=> $nuser['uid']));
                }
                else
                {
                    $mess = 'Успешная регистрация! По адресу '.$nuser['login'].' выслана информация для входа в Ваш аккаунт';
                    $email = new page($this, 'email/new_account_info');
                    $nextstep = page::makeurl(array('auth','login'));

                }
                //echo '<pre>';print_r($nuser);echo '</pre>';

                $email->add($nuser);
                $email->build();
                //USE MAIL CLASS HERE
                emailer::send( array('to'=>$nuser['login'], 'subject'=> 'Активация', 'message'=> $email->compiled));
                session::message($mess);//HOW TO DO LINK TO LOST PASSWORD
                //$page->add('registr-message',$mess);
                page::redirect($nextstep);
                //echo $nextstep;
            }
        }
        $rebuild->build();
        $page->add('registr-form', $rebuild->compiled);
        $page->out();
    }


Добавлено через 2 минуты и 44 секунды
[code=php]
    /** регистрация пользователя
    * 1. вывод формы
    * 2. проверка уникальности логина
    * 3. вставка
    * 4. email активации
    */
    function registration(&$params = null)
    {
        if(!$this->can('auth/registration',ACL_READ,true)) return;
        $regform = new page($this,'registr_form');
        $reqfields= $GLOBALS['db']->execute("SELECT * FROM `%s` WHERE `public` = 1 AND `requered` = 1 ORDER BY `pos`",
            $this->tables['auth/profile']);
        //BUILD PROFILE FIELDS THAT REQUERED
        $profile = new page($this,'registr_profile_fields');
        /** добавляем поля в форму */
        while($field = $GLOBALS['db']->fetch($reqfields    ))
        {
            $html = formbuilder::field2html($field);
            $profile->ibl('fields', array(
                'alias'=>$field['alias'],
                'fieldhtml'=> $html,
                'name'=>$field['name']));
        }
        $profile->build();
        $regform->add('profile',$profile->compiled);
        $regform->build();
        
        /** сейчас форма содерж

Добавлено через 2 минуты и 55 секунд
[code=php]
    /** регистрация пользователя
    * 1. вывод формы
    * 2. проверка уникальности логина
    * 3. вставка
    * 4. email активации
    */
    function registration(&$params = null)
    {
        if(!$this->can('auth/registration',ACL_READ,true)) return;
        $regform = new page($this,'registr_form');
        $reqfields= $GLOBALS['db']->execute("SELECT * FROM `%s` WHERE `public` = 1 AND `requered` = 1 ORDER BY `pos`",
            $this->tables['auth/profile']);
        //BUILD PROFILE FIELDS THAT REQUERED
        $profile = new page($this,'registr_profile_fields');
        /** добавляем поля в форму */
        while($field = $GLOBALS['db']->fetch($reqfields    ))
        {
            $html = formbuilder::field2html($field);
            $profile->ibl('fields', array(
                'alias'=>$field['alias'],
                'fieldhtml'=> $html,
                'name'=>$field['name']));
        }
        $profile->build();
        $regform->add('profile',$profile->compiled);
        $regform->build();
        
        /** сейчас форма содерж
PM MAIL WWW ICQ   Вверх
AcidSlayer
Дата 13.10.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 15.8.2007
Где: UA

Репутация: нет
Всего: нет



Пля.... нашол http://www.codingcity.net/index.php?showtopic=15&st=0 но она тоже недобавляет юзера!
Помогите мне написать эту долбаную форму

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0628 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.