Прокомментируйте код

Статус
Закрыто для дальнейших ответов.

alexander-travin

Новичок
Регистрация
03.11.2008
Сообщения
1
Код:
<?
   if (!isset($_GET['login']) || !isset($_GET['name']) || !isset($_GET['pass1']) || !isset($_GET['pass2']) ||
   $_GET['login'] == "" || $_GET['name'] == "" || $_GET['pass1'] == "" || $_GET['pass2'] == "" )
	{
		echo 'Все поля должны быть заполнены';
		exit;
	}
 
   if (strlen($_GET['login']) > 16 || strlen($_GET['name']) > 16 )
	{
		echo 'Поля логина и имени не могут содержать более 16 символов';
		exit;
	}
 
   if ($_GET['pass1'] !== $_GET['pass2'])
   {
	   echo 'Пароли должны совпадать';
	   exit;
   }
 
   include ("password.php");
   $conn = mysql_connect($server,$login) or die ("Ошибка подключения к серверу");
   $base = mysql_select_db($db) or die ("База данных недоступна");
   $m_sql = mysql_query("select*from users where login = '$_GET[login]'");
   $num_r = mysql_num_rows($m_sql);
 
   if ($num_r>0)
   {
	   echo 'Такой пользователь уже существует';
	   exit;
   }
   
   
   $rec = "insert into users (login,name,pass) values ('".$_GET['login']."','".$_GET['name']."','".$_GET['pass1']."')";
   $record = mysql_query($rec) or die ("Ошибка записи");
 
   if ($rec)
   {
	   echo 'Запись успешно добавлена';
	   exit;
   }
 
 ?>
Это моя первая система регистрации с использованием MySQL. Пожалуйста прокомментируйте данный код, хочется узнать ваше мнение. Подскажите что нужно добавить, а что убрать. Очень надеюсь на вашу поддержку.
 

Period

Member
Регистрация
21.10.2008
Сообщения
10
Типичный нубовский код, не обижайтесь. Самое основное:

Для регистрации используйте не GEt, а POST-запросы. GET для параметров страниц и поиска используются.

$_GET['login'] == "" || $_GET['name'] == "" || $_GET['pass1'] == "" || $_GET['pass2'] == ""
Тримить: ]]>http://ru2.php.net/manual/ru/function.trim.php]]>

if ($_GET['pass1'] !== $_GET['pass2'])
Тримить

$m_sql = mysql_query("select*from users where login = '$_GET[login]'");
Самоубиться. Читайте: ]]>]]>http://www.phpfaq.ru/slashes]]>]]>

$rec = "insert into users (login,name,pass) values ('".$_GET['login']."','".$_GET['name']."','".$_GET['pass1']."')";
Повторно самоубиться.
 

Enso

Well-Known Member
Регистрация
07.08.2007
Сообщения
103
Короче вывод - ваша регистрация находка для доморощенного школьника-взломщика, который начитавшись журналов аля хакер и т.п. возомнил себя кибермонстром и пробует гадить не слишком просвещённым сайтостроителям...
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
я бы сделал по другому проверку:
Код:
function pass($arr)
{
  foreach($arr as $name)
 {
  empty($_POST[$name]) return false;
 }
  return true;
}
if(!pass(array('login','name','pass1','pass2'))) exit('ошибка авторизации');
как то так
 
Статус
Закрыто для дальнейших ответов.
Верх Низ