[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форма регистрации
Gigabit
Народ помощь нужна!
создал файл с формой регистрации regi.php и его обработчик res_regi.php вроде бы все верно но выдает ошибку! Товарищи эксперты помогите найдите причину ошибка
Parse error: syntax error, unexpected T_ELSE in Z:\home\test1.ru\www\regi\res_regi.php on line 51

файл regi.php

<form action="res_regi.php" method="post">
<table
width="699" height="362" align="center" class="regi_fon">
<tr>
<td
width="691" height="356" align="center" valign="top"><table width="689">
<tr>
<td
width="681" align="center" class="regi_text">Регистрация пользователя</td>
</tr>
<tr>
<td
align="center"> </td>
</tr>
</table>
<table
width="689" align="center">
<tr>
<td
height="82" colspan="2"> </td>
</tr>
<tr>
<td
width="332" class="login_pass">введите свой логин:</td>
<td
width="345"><label>
<input
name="username" type="text" class="forma_vhoda" id="username">
</label></td>
</tr>
<tr>
<td
class="login_pass">введите пароль(не менее 6 и не более 16 символов): </td>
<td><label>
<input
name="passwd" type="password" class="forma_vhoda" id="passwd">
</label></td>
</tr>
<tr>
<td
class="login_pass">повторите пароль:</td>
<td><input
name="passwd2" type="password" class="forma_vhoda" id="passwd2"></td>
</tr>
<tr>
<td
colspan="2" align="center"> </td>
</tr>
<tr>
<td
colspan="2" align="center"><input name="submit" type="submit" class="buton" id="submit" value="Зарегистрироваться"></td>
</tr>
</table>
<p>
 </p></td>
</tr>
</table>
</form>






и файл regi.php
<? session_start(); ?>
<link href="../css/registr.css" rel="stylesheet" type="text/css">

<?
// Подключаемся к базе
include"../blocks/bd.php";


//заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['username'])) { $username = $_POST['username']; if ($username == '') { unset($username);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (isset($_POST['passwd'])) { $passwd= md5($_POST['passwd']); if ($passwd =='') { unset($passwd);} }
if (isset($_POST['passwd2'])) { $passwd2=$_POST['passwd2']; if ($passwd2 =='') { unset($passwd2);} }
//если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
if (empty($username) or empty($passwd))
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}

//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$username = stripslashes($username);
$username = htmlspecialchars($username);
$passwd = stripslashes($passwd);
$passwd = htmlspecialchars($passwd);

//удаляем лишние пробелы
$username = trim($username);
$passwd = trim($passwd);


// проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT id FROM users WHERE username='$username'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
}


// провверяем ввел ли пользователь пароль меньше 16 и больше 6 символов
if (strlen($passwd)<6 || strlen ($passwd) >16 );
{
$result2 = mysql_query ("INSERT INTO users (username,passwd) VALUES('$username','$passwd')");
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
}

}


else
{
echo "<table width='403' height='276' align='center' class='stop_fon'>
<tr>
<td width='395' height='270' valign='middle'><p> </p>
<p class='stop_text'> Вы ввели не правильный пароль !<br>повторите попытку<br>
<a href='../regi/regi.php'>Регистрация</a></p></td>
</tr>
</table>"
;
}


?>




Спустя 16 минут, 55 секунд (17.12.2009 - 23:41) Romms написал(а):
убери ";"
if (strlen($passwd)<6 || strlen ($passwd) >16 );

Спустя 10 минут, 10 секунд (17.12.2009 - 23:51) Gigabit написал(а):
Супер! спасибо! Вот еще что оцените код на прочность мне нужно еще что нибудь там проверять?

Спустя 12 минут, 26 секунд (18.12.2009 - 00:04) Romms написал(а):
первое что бросилось в глаза:
Цитата
$username = stripslashes($username);
$username = htmlspecialchars($username);

зачем удалять экранированные символы?
и канешно надо делать ещё и так:
$username = mysql_real_escape_string($username);

Спустя 14 минут, 13 секунд (18.12.2009 - 00:18) Gabriel написал(а):
if (isset($_POST['username'])) { $username = $_POST['username']; if ($username == '') { unset($username);} } 

Папоффф:)
Зы почему мне кажеться что попов по дримвиверу програмить учился?

Спустя 2 минуты, 27 секунд (18.12.2009 - 00:20) Romms написал(а):
Цитата
Зы почему мне кажеться что попов по дримвиверу програмить учился?

Спустя 16 минут, 19 секунд (18.12.2009 - 00:37) Gabriel написал(а):
Romms
спасиб я поповым и его творениями не болею smile.gif

Спустя 2 часа, 2 минуты, 12 секунд (18.12.2009 - 02:39) VolCh написал(а):
А что за Попов, о котором все говорят?

Спустя 53 минуты, 48 секунд (18.12.2009 - 03:33) NewBePhp написал(а):
Gigabit
осмелюсь предложить вот что... огроничить доступ тех символов которые согласно безопастности скрипта могут навредить ходу работ сайта... и обходится лишь экранированием... ну на мой взгляд не айс... есть такое не официальное правило в таких ситуациях как рега... ммм... вроде так...
чем жеще фильтрация данных поступающих от пользователя тем меньше вероятность получ проблем в безопастности... лично я придерживаюсь таких рекомендации скажем пропускать лишь те символы которые четко и ясно отражают имя пользователя... КОЛЯ ВАСЯ и так далее... но не как ~!@#$%^ ???!!!!(<--- к примеру) думаю тут понятно... и согласитесь что выглядит не ахти... скажем такой диапозон символов [0-9a-zA-Zа-яА-Я ~_*] думаю он будет куда достаточно давать информации при реге... хотя скрипт в объеме может и стать куда объемнее но безопастности как говорится мало не бывает... (не по русски написал rolleyes.gif ) а за принебрежение заплатишь куда больше!!!

Спустя 3 минуты, 6 секунд (18.12.2009 - 03:36) Gabriel написал(а):
VolCh
лутше тебе этого незнать
NewBePhp
паранойя?
или жестко ограничиваем количество пользователей?

Спустя 7 часов, 6 минут, 19 секунд (18.12.2009 - 10:42) NewBePhp написал(а):
Gabriel
извращенно мыслишь

Спустя 14 минут, 49 секунд (18.12.2009 - 10:57) Gigabit написал(а):
так что все же лучше?

Спустя 1 час, 20 минут, 12 секунд (18.12.2009 - 12:17) Gabriel написал(а):

Спустя 14 часов, 10 минут, 17 секунд (19.12.2009 - 02:27) DEATH написал(а):
mysql_real_escape_string нужен для работы при активном конекте к бд и учитывает кодировку соединения.

mysql_real_escape_string('...', $db_connects);

где сообсвенно $db_connect подключение mysql_connect();

В инных случаях mysql_escape_string достаточно.

Спустя 19 часов, 54 минуты, 28 секунд (19.12.2009 - 22:22) Gabriel написал(а):
насчет mysql_real_escape_string
если второй параметр не указан использует последнее соединение.
a насчет mysql_escape_string
просто скопипастим с php.net и все станет ясно
This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.
Быстрый ответ:

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