<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Проблемма в скрипте регистрации
02.12.2012 18:19:16 Проблемма в скрипте регистрации Сообщение #1
dima9595

dima9595

Продвинутый

Продвинутый

Дата регистрации:
02.12.2012 18:14:26

Сообщений: 57

Доброго времени суток Михаил!
Я недавно начал изучать PHP, и столкнулся с проблеммой...

Написал скрипт регистрации для пользователей, а при заходе на эту страницу, браузер, показывает ошибку. В чём может быть проблемма?

Код:

<?php
session_start();
?>

<!DOCTYPE html>
<html>

<head>
<title>EnigmaShifr - Регистрация</title>
<?php include("templates/Default/head.tpl" ?>
</head>

<body>
<?php include("templates/Default/header.tpl" ?>

<div class="container-fluid">
<div class="row-fluid">

<?php include("templates/Default/leftmenu.tpl" ?>

<?php include("templates/Default/register.tpl" ?>

</div>
</div>

<?php include("templates/Default/footer.tpl" ?>

<?php include("templates/Default/foot.tpl" ?>

</body>

</html>

<?php

$login = $_POST['login'];
$password = $_POST['password'];

//Заносим переменные, если они пустые, то удаляем их и выводим ошибку
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if empty($login) or empty ($password)
{
echo "Вы не ввели логин или пароль";
}

//Проверим, есть ли различные HTML теги, если есть, то удаляем их
$login = htmlspecialchars($login);
$login = stripslashes($login);
$password = htmlspecialchars($password);
$password = stripslashes($password);

//Введённый пароль шифрируем в md5
$password = md5($password);

//Подключаемся к базе данных
include ("db.php";

//Проверяем, есть ли пользователь в базе данных, а если есть, то выводим ошибку
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id']))
{
echo ("Пользователь с логином $login уже зарегистрировался.";
}

//А если такого пользователя нет, то сохраняем
$result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')";

//Если есть ошибки, то выводим их, а если нет, выводим сообщение об успешной регистрации
if ($result2)
{
echo "Вы успешно зарегистрировались!";
}
else
{
echo "К сожалению вы не зарегистрировались. Возможно вы некорректно ввели логин или пароль.";
}

?>
Профиль Ответить
02.12.2012 18:48:08 Проблемма в скрипте регистрации Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

http://myrusakov.ru/php-finderror.html
Профиль Ответить
02.12.2012 19:07:06 Проблемма в скрипте регистрации Сообщение #3
dima9595

dima9595

Продвинутый

Продвинутый

Дата регистрации:
02.12.2012 18:14:26

Сообщений: 57

А не могли бы вы сами ответить!?
Профиль Ответить
02.12.2012 21:25:49 Проблемма в скрипте регистрации Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Рыться в чужом коде - не уважать самого себя. Учитесь сами искать ошибки, иначе забудьте о дальнейшем развитии. Здесь учатся, а если нужен готовый скрипт, то ищите здесь специалиста: http://free-lance.ru
Профиль Ответить
03.12.2012 19:09:45 Проблемма в скрипте регистрации Сообщение #5
dima9595

dima9595

Продвинутый

Продвинутый

Дата регистрации:
02.12.2012 18:14:26

Сообщений: 57

Ладно, спасибо, посмотрю...
Профиль Ответить
04.12.2012 15:14:17 Проблемма в скрипте регистрации Сообщение #6
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

if empty($login) or empty ($password)


Внимательно на эту строчку посмотри!
И в алгоритме ничего не понял.
Сначала задаются переменные логина и пароля, потом проверяются, потом снова назначаются.
Если пустые, то разустонавливаются.
И вообще, зачем делать регистрацию, если при ошибке в логине просто создастся новый пользователь.
Так база раздуется до огромных размеров.
В общем бред.
Профиль Ответить
04.12.2012 20:23:11 Проблемма в скрипте регистрации Сообщение #7
dima9595

dima9595

Продвинутый

Продвинутый

Дата регистрации:
02.12.2012 18:14:26

Сообщений: 57

Ошибка скрипта была в этом:
if empty($login) or empty ($password)

Как нужно было:
if (empty($login) or empty ($password))

Завтра придётся писать новый код...надеюсь он будет без багов=)
Профиль Ответить
06.12.2012 02:13:51 Проблемма в скрипте регистрации Сообщение #8
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

Еще внимательнее на эту строчку посмотри.
Хороший алгоритм авторизации.
Начинаем сессию.
Принимаем данные с формы, проверяем на ненужные символы.
Формируем запрос к базе, есть ли там введенный логин. Если нет сообщаем что введены ошибочные данные и записываем в файл сессии1 ошибку.
Если логин в базе есть, вытаскиваем пароль, сравниваем. При совпадении здороваемся и уважаем. В противном случае опять записываем ошибку в сессию2 и собщаем что опять не угадал.
Проверяем колличество ошибок в сессиях и если ошибок в сессии1 больше допустимого, просим покинуть сайт, блокируем айпи или предлагаем зарегистрироваться (тут на любителя). Если ошибки в сессии 2 предлагаем востановить пароль.

И это скрипт обработчик, никаких тегов разметки не нужно.
Профиль Ответить