<MyRusakov.ru />

Финансовая грамотность от А до Я

Финансовая грамотность от А до Я

Данный курс в кратчайшие сроки обучит Вас финансовой грамотности. Эти знания позволят Вам получить, как минимум, серьёзную финансовую стабильность, а, как максимум, финансовую независимость.

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

Помимо самого курса Вас ждёт ещё бесплатный ценный Бонус: «Ранний выход на пенсию». В рамках этого Бонуса Вы узнаете, какой должен быть капитал конкретно в Вашем случае, варианты его получения, а также какие есть стратегии вывода капитала на пенсии и где их можно протестировать.

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

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

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

Подписавшись по 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)))
Профиль