<MyRusakov.ru />

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

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

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

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

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

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

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

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

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

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

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

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

Создание регистрации с применением ооп
19.10.2011 21:47:41 Создание регистрации с применением ооп Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, вот посмотрите, примерно так выглядит класс регистрации ?


<?php
<?php
class registration {

function Check_data() {

if (isset($_POST['login'])){
$login = $_POST['login'];
}

if (isset($_POST['name'])) {
$name = $_POST['name'];
}

if (isset($_POST['password'])) {
$password=md5($_POST['password']);
}

if (empty($login) or empty($name) or empty($password)) {
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!";
}
}



function Data_processing() {
$login = stripslashes($login);
$login = htmlspecialchars($login);
$name = stripslashes($name);
$name = htmlspecialchars($name);
$password = stripslashes($password);
$password = htmlspecialchars($password);

$login = trim($login);
$name = trim($name);
$password = trim($password);
}


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


function Db_insert() {
$result2 = mysql_query ("INSERT INTO users (id, login, name, password) VALUES('','$login','$name','$password')";
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='/index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Вы не зарегистрированы.";
}
}
}
?>

Профиль Ответить
19.10.2011 22:15:28 Создание регистрации с применением ооп Сообщение #2
Admin

Admin

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

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

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

Сообщений: 3063

В целом, да, но здесь огромное количество логических ошибок, которые показывают Ваш начинающий уровень в ООП. Самое первое, что бросается в глаза - это названия методов. Примерный вид должен быть такой: словоСловоСлово(). То есть разбить на набор слова и соединить их все вместе, причём первое слово должно идти с маленькой буквы.
Также каждый объект должен отвечать только за себя. У Вас же помимо регистрации, почему-то ещё выводятся какие-то информационные сообщения. Эти сообщения должны выводиться тем объектом, который за это отвечает и который вызывает эти методы. В общем, здесь много нюансов, но пока вроде неплохо. Я бы Вам порекомендовал почитать учебники по ООП, чтобы посмотреть, как должен выглядеть грамотный код.
Профиль Ответить
19.10.2011 22:23:11 Создание регистрации с применением ооп Сообщение #3
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Спасибо))) Намотал на ус про названия методов))) Теперь зато понял, как именно строится класс))) Учебник уже читаю, правда незнаю, тот ли. Читаю книгу Гради Буча "Объектно ориентированный анализ и проектирование". Может конечно не то, но книга весьма понятная, с её помощью понял, что ооп из себя представляет))
Если стоит читаль что то другое, подскажите пожалуйста, что именно)))
Заранее спасибо))
С уважением, BrusSENS)))
Профиль Ответить
19.10.2011 22:24:45 Создание регистрации с применением ооп Сообщение #4
Admin

Admin

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

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

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

Сообщений: 3063

Хорошая книга, продолжайте читать.
Профиль Ответить
19.10.2011 22:32:13 Создание регистрации с применением ооп Сообщение #5
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Спасибо))))
Профиль Ответить
19.10.2011 23:08:20 Создание регистрации с применением ооп Сообщение #6
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, вот класс вроде создан, но вот есть проблемма.
Я создаю reg.php, куда отправляются вобщем то данные из формы, затем делаю структуру файла
<?php
require_once 'classes/dbconnect.php';
require_once 'classes/registration.php';
$registr = new registration();
echo $registr->checkData();
echo $registr->dataProcessing();
$sql = new mysql();
echo $sql->dataBaseConnect();
echo $registr->checkExistenceLogin();
echo $registr->dataBaseInsert();
?>

Сама структура файла dbconnect.php
<?php
class mysql {
function dataBaseConnect() {
$host = "localhost";
$usname = "root";
$pass = "";
$dbname = "myproject";
$db = mysql_connect ("$host","$usname","$pass";
mysql_select_db ("$dbname",$db);
}
}
?>

При попытке регистрации выдаёт:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in L:\home\test33.ru\www\classes\registration.php on line 40

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in L:\home\test33.ru\www\classes\registration.php on line 41
Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. Главная страница
В чём может быть ошибка?
Код самого класса:
<?php
class registration {

function checkData() {

if (isset($_POST['login'])){
$login = $_POST['login'];
}

if (isset($_POST['name'])) {
$name = $_POST['name'];
}

if (isset($_POST['password'])) {
$password=md5($_POST['password']);
}

if (empty($login) or empty($name) or empty($password)) {
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!";
}
}



function dataProcessing() {
$login = stripslashes($login);
$login = htmlspecialchars($login);
$name = stripslashes($name);
$name = htmlspecialchars($name);
$password = stripslashes($password);
$password = htmlspecialchars($password);

$login = trim($login);
$name = trim($name);
$password = trim($password);
}


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


function dataBaseInsert() {
$result2 = mysql_query ("INSERT INTO users (id, login, name, password) VALUES('','$login','$name','$password')";
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='/index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Вы не зарегистрированы.";
}
}
}
?>
Профиль Ответить
19.10.2011 23:34:37 Создание регистрации с применением ооп Сообщение #7
Admin

Admin

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

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

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

Сообщений: 3063

Ошибок много и все они одни и те же. Например, здесь:
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);

Переменной $db не существует. Чтобы она существовала, её нужно передавать извне конструктору. Далее эта переменная должна записываться в поле класса, а после должно быть обращение такое: $this->db
Профиль Ответить
19.10.2011 23:35:50 Создание регистрации с применением ооп Сообщение #8
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, почему то сделал вроде всё, но в базе создаются пустые поля, хотя регистрация прошла, в чём дело может быть?
Профиль Ответить
19.10.2011 23:38:32 Создание регистрации с применением ооп Сообщение #9
Admin

Admin

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

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

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

Сообщений: 3063

INSERT INTO users (id, login, name, password) VALUES('','$login','$name','$password')"
id должно идти auto_increment, следовательно, его вообще не нужно указывать, и тем более, пустой строкой.
Профиль Ответить
19.10.2011 23:39:51 Создание регистрации с применением ооп Сообщение #10
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Спасибо, понял, сейчас попробую)))А id у меня в базе идёт как раз AUTO-INCREMENT)))
Профиль Ответить