[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форма регистрации
10ozoz
Написал скрипт ... проблема в том что при первом запуске скрипт выводи сообщение что пароль должен быть более 6 символов и повторить попытку .. мне нужно убрать её что она выводилась после ввода если есть ошибки при вводе .
 
<?php
session_start();
require_once ("config/config.php");
require_once ("function/my_html.php");
require_once ("function/function.php");
do_html_header ("Регистрация | ");
do_html_avrezats ();
do_html_menu ();
?>




<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<
div id="masvivod">
<
table border="0" cellpadding="2" cellspacing="2" style="margin-left:12px;">

<
tr><td colspan="2"><img src="./images/catalog3.png" style="vertical-align:top; margin: 0px 20px 0 0; float:left;"/><h1>Регистрация :</h1></td></tr>

<
tr><td valign="top"><div id="blorange2">Логин:<font color="red">*</font></div></td><td><label for="namefirm"><em></em></label><input id="namefirm" type="text" style="width:260px" name="username" value="" size="40"/></td></tr>

<
tr><td valign="top"><div id="blorange2">Пароль:<font color="red">*</font></div></td><td><label for="namefirm"><em></em></label>
<
input id="namefirm2" type="password" style="width:260px" name="passwd" value="" size="40"/></td></tr>

<
tr><td valign="top"><div id="blorange2">Повторить пароль:<font color="red">*</font></div></td><td><label for="namefirm"><em></em></label><input id="namefirm" type="password" style="width:260px" name="passwd2" value="" size="40"/></td></tr>

<
tr><td valign="top"><div id="blorange2">Ваш E-Mail:<font color="red">*</font></div></td><td><label for="namefirm"><em></em></label><input id="namefirm" type="email" style="width:260px" name="email" value="" size="40"/></td></tr>

<
tr><td style="width:260px"></td><td><img src="./kcaptcha/index.php?<?php echo session_name()?>=<?php echo session_id()?>"></td></tr>
<
tr><td valign="top"><div id="blorange2">Код подтверждения:<font color="red">*</font></div></td><td><input type="text" name="keystring" style="width:260px"></td></tr>

<
tr><td style="width:260px"></td><td><input type="submit" value="Регистрация" class="searchbut1" style="width: 140px;"></td></tr>
</
table>
</
div>

</
form>
<?php
if(isset($_POST) && count($_POST) > 0)
{
$email= $_POST['email'];
$passwd= $_POST['passwd'];
$passwd2= $_POST['passwd2'];
$username= $_POST['username'];
$keystring = $_POST['keystring'];

reg_info ($email,$passwd,$passwd2,$username,$keystring);
}


function reg_info ($email,$passwd,$passwd2,$username,$keystring) {

try
{
if (!filled_out($_POST)) {throw new Exception ("Вы не заполнили корректно форму ." );}
if (!valid_email($email)) {throw new Exception ("Недопустимый адрес электронной почты .");}
if (!valid_name($username)){throw new Exception ("Недопустимые символы в логине .");}
if ($passwd != $passwd2) {throw new Exception ("Введённые пароли не совпадают .");}
if (strlen($passwd) < 6) {throw new Exception ("Пароль должен иметь не менее 6 символов .");}
if (strlen($username) < 3) {throw new Exception ("Имя пользователя должно иметь не менее 3 символов .");}
if (strlen($username) > 16){throw new Exception ("Имя пользователя должно иметь не более 16 символов .");}
if ($_SESSION['captcha_keystring'] && $_SESSION['captcha_keystring'] != $keystring ){
throw new Exception ("Код подтверждения введён не правильно .");
}

register ($username , $email , $passwd);
$_SESSION['valid_user'] = $username ;
print ("Ваша регистрация прошла успешно .");
}
catch (Exception $e)
{
echo $e->getMessage()." Пожалуйста , вернитесь на форму и повторите попытку.";
unset($_SESSION['captcha_keystring']);
exit();
}
}

do_html_footer();
?>
</body>
</
html>

Я больше грешу на вот этот код , где проверка поста идёт .
if(isset($_POST) && count($_POST) > 0)
{
$email= $_POST['email'];
$passwd= $_POST['passwd'];
$passwd2= $_POST['passwd2'];
$username= $_POST['username'];
$keystring = $_POST['keystring'];

reg_info ($email,$passwd,$passwd2,$username,$keystring);
}




Спустя 4 минуты, 48 секунд (11.10.2011 - 14:23) h234 написал(а):

if (strlen($passwd) < 6) {throw new Exception ("Пароль должен иметь не менее 6 символов .");}

Дак у вас изначально strlen($passwd) < 6.
Инициалицируйет переменную или измените условие

Спустя 53 секунды (11.10.2011 - 14:24) 10ozoz написал(а):
Не понял ? можно поточнее .

Спустя 21 секунда (11.10.2011 - 14:24) alex12060 написал(а):

if(isset($_POST['regme']))
{
$email= $_POST['email'];
$passwd= $_POST['passwd'];
$passwd2= $_POST['passwd2'];
$username= $_POST['username'];
$keystring = $_POST['keystring'];

reg_info ($email,$passwd,$passwd2,$username,$keystring);
}



<tr><td style="width:260px"></td><td><input type="submit" name="regme" value="Регистрация" class="searchbut1" style="width: 140px;"></td></tr>

Спустя 3 минуты, 29 секунд (11.10.2011 - 14:28) h234 написал(а):
Дак при первой загрузке то
name="passwd" value=""

Напишите что то типа того:

if (($passwd !='')&&(strlen($passwd) < 6)) {throw new Exception ("Пароль должен иметь не менее 6 символов .");}

Спустя 1 минута, 29 секунд (11.10.2011 - 14:29) 10ozoz написал(а):
alex12060
Спасибо помогло ! благодарю ... я с этим постом затупил .. спасибо ещё раз .

Спустя 1 минута, 27 секунд (11.10.2011 - 14:31) 10ozoz написал(а):
h234
Вам тоже спасибо за помошь , но код был рабочий .. я как раз выделил что - что то с постом косякнул ...
ЕЩЁ раз благодарю за поддержу и быструю помощь !
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.