<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

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

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

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

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

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

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

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

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

Правильный ли код
24.10.2011 23:40:20 Правильный ли код Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Михаил, здравствуйте, вот хотел бы узнать, возможно ли сделать что нибудь в этом духе?

<?php
class Registration {
$log = $_POST['login'];
$pass = $_POST['password'];
function __construct ($log, $pass){
$this->log = $log;
$this->pass = $pass;
}
function verifyDataLogin() {
if (isset($this->log)){
if (empty($this->log))
exit ('');
}
}
}








?>



Профиль Ответить
24.10.2011 23:52:02 Правильный ли код Сообщение #2
Admin

Admin

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

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

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

Сообщений: 3063

Нет, здесь, во-первых, множество ошибок, во-вторых, так никто не делает. Каждый объект должен отвечать только сам за себя! Поэтому $_POST["log"] должен передаваться в конструктор извне. Да и какой смысл в присвоении свойствам $_POST["log"], если потом они в конструкторе переопределяются?
Профиль Ответить
25.10.2011 00:10:17 Правильный ли код Сообщение #3
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Просто дело в том, что я сделал класс для регистрации, но проблема в том, как задать один раз $_POST['login']?
Я так понимаю её надо задать уже при построении класса?

$reg = new Registration ($_POST['login']);


Примерно так её надо объявлять получается?
Профиль Ответить
25.10.2011 00:16:32 Правильный ли код Сообщение #4
Admin

Admin

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

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

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

Сообщений: 3063

Да, именно так правильно. Тоже самое и с паролем.
Профиль Ответить
25.10.2011 00:44:09 Правильный ли код Сообщение #5
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Спасибо, понял, работаю дальше)))
Профиль Ответить
25.10.2011 00:56:43 Правильный ли код Сообщение #6
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Михаил, здравствуйте, вот хотел бы узнать, возможно ли сделать что нибудь в этом духе?

<?php
class Registration {
$log = $_POST['login'];
$pass = $_POST['password'];
function __construct ($log, $pass){
$this->log = $log;
$this->pass = $pass;
}
function verifyDataLogin() {
if (isset($this->log)){
if (empty($this->log))
exit ('');
}
}
}








?>



Профиль Ответить
25.10.2011 01:04:45 Правильный ли код Сообщение #7
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Вот сделал, но теперь ошибка вылетает при регистрации
registration.php
<?php
class registration {
$log;
$pass;
$repeatpass;
function __construct() {
$this->log = $log;
$this->pass = $pass;
$this->repeatpass = $repeatpass;
}
function checkDataLoginRegAuth() {
if (isset($this->log)) {
if ($this->log == '') {
unset($this->log);
}
}
}
function checkDataPassLog() {
$log = $_POST['login'];
if (isset($_POST['password'])) { $pass=md5($_POST['password']); if ($pass =='') { unset($pass);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($log) or empty($pass)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!";
}
}

function checkDataPassReg() {
if (isset($this->pass)) {
if ($this->repeatpass == $this->pass) {
if (($this->pass == '') || ($this->repeatpass == '')) {
exit ("Введите данные заново";
}
}
else {
exit ("Пароли не совпадают!";
}
}
if ((empty($this->log)) || (empty($this->pass))) {
exit ("Обязательные поля должны быть заполнены!";
}

}

function insertDataReg() {
$name = $_POST['name'];
$insert = mysql_query ("INSERT INTO users (login, name, password) VALUES('$this->log', '$name', '$this->pass')";
if ($insert == 'TRUE')
{
echo "Вы успешно зарегистрированы!";
}
else {
echo "Ошибка при регистрации!";
}
}

function insertDataAuth() {
$result = mysql_query("SELECT * FROM users WHERE login='$this->log'"; //извлекаем из базы все данные о пользователе с введенным логином
$myrow = mysql_fetch_array($result);
if (empty($myrow['password']))
{
//если пользователя с введенным логином не существует
exit ("Извините, введённый вами login или пароль неверный.";
}
else {
//если существует, то сверяем пароли
if ($myrow['password']==$pass) {
//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
echo "Вы успешно вошли на сайт! <a href='/index.php'>Главная страница</a>";
}
else {
//если пароли не сошлись

exit ("Извините, введённый вами login или пароль неверный.";
}
}


}


}

?>

reg.php
<?php
require_once "classes/dbconnect.php";
require_once "classes/registration.php";
$registr = new registration($_POST['login'], $_POST['login']);
echo $registr->checkDataLoginRegAuth();
echo $registr->checkDataPassReg();
echo $registr->insertDataReg();
?>


Сама ошибка вот
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in L:\home\test33.ru\www\classes\registration.php on line 3
Профиль Ответить
25.10.2011 11:15:16 Правильный ли код Сообщение #8
Admin

Admin

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

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

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

Сообщений: 3063

Нужно перед свойством ставить модификатор доступа (public, private или protected).
Профиль Ответить
25.10.2011 21:22:57 Правильный ли код Сообщение #9
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Спасибо, сейчас исправлю)
Профиль Ответить
25.10.2011 23:05:46 Правильный ли код Сообщение #10
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Вот я поставил уровень доступа, только есть проблемма. Не проходит выполнение функция public function checkDataPassReg(), пишет, что не все данные введены, хотя введено всё, в чём может быть ошибка?
registration.php
<?php
class registration {
public $log;
public $pass;
public $repeatpass;
public function __construct() {
$this->log = $log;
$this->pass = $pass;
$this->repeatpass = $repeatpass;
}
public function checkDataLoginRegAuth() {
if (isset($this->log)) {
if ($this->log == '') {
unset($this->log);
}
}
}
public function checkDataPassLog() {
$log = $_POST['login'];
if (isset($_POST['password'])) { $pass=md5($_POST['password']); if ($pass =='') { unset($pass);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($log) or empty($pass)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!";
}
}

public function checkDataPassReg() {
if (isset($this->pass)) {
if ($this->repeatpass == $this->pass) {
if (($this->pass == '') || ($this->repeatpass == '')) {
exit ("Введите данные заново";
}
}
else {
exit ("Пароли не совпадают!";
}
}
if ((empty($this->log)) || (empty($this->pass))) {
exit ("Обязательные поля должны быть заполнены!";
}

}

public function insertDataReg() {
$name = $_POST['name'];
$insert = mysql_query ("INSERT INTO users (login, name, password) VALUES('$this->log', '$name', '$this->pass')";
if ($insert == 'TRUE')
{
echo "Вы успешно зарегистрированы!";
}
else {
echo "Ошибка при регистрации!";
}
}

public function insertDataAuth() {
$result = mysql_query("SELECT * FROM users WHERE login='$this->log'"; //извлекаем из базы все данные о пользователе с введенным логином
$myrow = mysql_fetch_array($result);
if (empty($myrow['password']))
{
//если пользователя с введенным логином не существует
exit ("Извините, введённый вами login или пароль неверный.";
}
else {
//если существует, то сверяем пароли
if ($myrow['password']==$pass) {
//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
echo "Вы успешно вошли на сайт! <a href='/index.php'>Главная страница</a>";
}
else {
//если пароли не сошлись

exit ("Извините, введённый вами login или пароль неверный.";
}
}


}


}

?>

reg.php
<?php
require_once "classes/dbconnect.php";
require_once "classes/registration.php";
$registr = new registration($_POST['login'], $_POST['password'], $_POST['repeatpass']);
echo $registr->checkDataLoginRegAuth();
echo $registr->checkDataPassReg();
echo $registr->insertDataReg();
?>
Профиль Ответить