<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

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

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

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

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

Какая тема Вас интересует больше?

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

Осваиваю ООП на практике
19.12.2012 11:15:56 Осваиваю ООП на практике Сообщение #1
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

Здравствуйте всем!!! Я всё таки решил попрактиковаться с ООП и помоему ничего не получается, скажите пожалуйста про мой первый класс в жизни... скажите где ошибки и как их исправить, скаижте где нормально написано... Для меня очяень важно мнение знающих ООП так как я не смогу двигаться дальше если не буду знать где ошибки и как их исправить. Помогите пожалуйста
<?php
class User {
public $mysqli;
public $error;
public function getError($error) {
return $this->error = $error;
}
public function connectDB() {
return $this->mysqli;
}
public function registerUser ($login, $password) {
$login = trim(htmlspecialchars($login));
$password = trim(htmlspecialchars($password));
if (empty($login) AND strlen($login) > 3) {
unset($login);
return $this->getError('Вы не ввели Логин');
}
if (empty($password) AND strlen($password) > 6) {
unset($password);
return $this->getError('Вы не ввели Пароль');
}
if (isset($login) AND isset($password)) {
//$mysqli = new mysqli("localhost", "Admin", "udiram04", "oop";
$mysqli = $this->connectDB();
$isset_login = $mysqli->query("SELECT `login` FROM `reg` WHERE `login` = '".$login."'";
$arr_isset = $isset_login->fetch_assoc();
if (!$arr_isset['login'] == "" {
return $this->getError("Такой логин существует";
}
$mysqli->query("INSERT INTO `reg` (`login`, `password`, `date`) VALUES ('".$login."', '".$password."', UNIX_TIMESTAMP())";
$id = $mysqli->insert_id;
$result = $mysqli->query("SELECT * FROM `reg` WHERE `id` = '$id'";
$arr = $result->fetch_assoc();
return "Ваш логин: ".$arr['login']."<br />Ваш пароль: ".$arr['password']."<br />Дата регистрации: ".date("d:m:y h:s", $arr['date']);
}
}
public function deleteUser($id_user) {
$mysqli = $this->connectDB();
$delete_user = $mysqli->query("SELECT `id` FROM `reg` WHERE `id` = '$id_user'";
$arr_del_user = $delete_user->fetch_assoc();
if (empty($arr_del_user['id'])) {
return $this->getError("Такого пользователя нет";
}
else {
$del_user = $mysqli->query("DELETE FROM `reg` WHERE `id` = '$id_user' LIMIT 1";
if ($del_user === true) {
return $this->getError("Пользователь успешно удалён";
}
}
}
}
?>


<?php
require_once "register.php";
if (isset($_POST['submit'])) {
$mysqli = new mysqli("localhost", "Admin", "udiram04", "oop";
$user = new User();
$user->mysqli = $mysqli;
echo $user->registerUser($_POST['login'], $_POST['password']);
}
echo <<<TXT
<form action = "" method = "post">
<input type = "text" name = "login" />
<input type = "password" name = "password" />
<input type = "submit" name = "submit" />
</form>
TXT;
?>
Профиль
19.12.2012 12:08:06 Осваиваю ООП на практике Сообщение #2
Admin

Admin

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

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

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

Сообщений: 3063

Всё достаточно неплохо, но слишком много обязанностей у одного объекта: и пользователей регистрировать, и ошибки выдавать, и ещё с базой данных работать. За всё это должны отвечать отдельные классы.
Профиль
19.12.2012 12:26:46 Осваиваю ООП на практике Сообщение #3
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

А можете подсказать как использовать класс ошибок, или как его написать если ошибки бывают разные... помогите пожалуйста.

P.S. За мнение спасибо
Профиль
19.12.2012 13:14:54 Осваиваю ООП на практике Сообщение #4
Admin

Admin

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

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

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

Сообщений: 3063

А что должен делать класс ошибок? Зависит всё от задачи. Иногда достаточно парсить какой-нибудь ini-файл с различными сообщениями и возвращать информацию, например, о некорректном логине. Иногда требуется, чтобы при возникновении особых ошибок отправлялся e-mail администратору об этом, для этого потребуется ещё один класс, занимающийся отправкой e-mail.
Профиль
19.12.2012 13:31:43 Осваиваю ООП на практике Сообщение #5
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

Всё ясно, нужно каждое действие которое вызывается не один раз помещать в отдельный класс... А вы можете выложить класс для работы с бд? Просто брать левый класс в котором куча мусора не охота... Выложите пожалуйста класс и его использование. ОООчень прошу
Профиль
19.12.2012 17:00:07 Осваиваю ООП на практике Сообщение #6
Admin

Admin

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

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

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

Сообщений: 3063

Нужно писать каждый раз отдельный класс для работы с базой данных. Если всё время копировать одно и то же, то получится как раз та самая мусорка, где 90% вообще не используется. В данном курсе http://srs.myrusakov.ru/php создавался подобный класс под конкретные задачи самого сайта.
Профиль