Меня смущает следующий код на странице регистрации:
// обрабатывае пришедшие данные функцией mysql_real_escape_string перед вставкой в таблицу БД
$login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : '';
$password = (isset($_POST['password'])) ? mysql_real_escape_string($_POST['password']) : '';
после которого следует проверка ошибок:
$error = false;
$errort = '';
if (strlen($login) < 2)
{
$error = true;
$errort .= 'Длина логина должна быть не менее 2х символов.<br />';
}
if (strlen($password) < 6)
{
$error = true;
$errort .= 'Длина пароля должна быть не менее 6 символов.<br />';
}
То есть сначала экранируются данные, а потом начинается их анализ на корректность. На мой взгляд это не правильно. Сначала должно быть получение данных из POST, потом необходимая проверка и только потом экранирование с добавлением в базу данных.