<MyRusakov.ru />

WordPress 4. Пример создания блога

WordPress 4. Пример создания блога

Видеокурс "WordPress 4. Пример создания блога" научит Вас создавать любые сайты на самой популярной CMS - WordPress.

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

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

Курс очень простой и проходится за один вечер, а знания останутся с Вами навсегда.

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

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

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

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

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

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

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

Проблема с авторизацией
25.10.2011 23:21:01 Проблема с авторизацией Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Михаил, вот теперь начал разбираться с авторизацией, только вот почему то выдаёт ошибку, в чём может быть дело?
Что косается класса, то регистрация и авторизация в одном классе, отвечает за вход функция public function insertDataAuth().
Вот код
registration.php
<?php
class registration {
public $log;
public $pass;
public $repeatpass;
public function __construct($log, $pass, $repeatpass) {
$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']==$this->pass) {
//если пароли совпадают, то запускаем пользователю сессию!
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];
echo "Вы успешно вошли на сайт! <a href='/index.php'>Главная страница</a>";
}
else {
//если пароли не сошлись

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


}


}

?>

login.php
<?php
session_start();
require_once "classes/dbconnect.php";
require_once "classes/registration.php";
$registr = new registration($_POST['login'], md5($_POST['password']));
echo $registr->checkDataLoginRegAuth();
echo $registr->checkDataPassLog();
echo $registr->insertDataAuth();
?>

Ошибка
Warning: Missing argument 3 for registration::__construct(), called in L:\home\test33.ru\www\login.php on line 5 and defined in L:\home\test33.ru\www\classes\registration.php on line 6
Извините, введённый вами login или пароль неверный.
Профиль Ответить
25.10.2011 23:23:34 Проблема с авторизацией Сообщение #2
Admin

Admin

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

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

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

Сообщений: 3063

Там, где Вы делаете вызов конструктора, Вы передаёте только 2 параметра, а требуется 3 параметра.
Профиль Ответить
25.10.2011 23:30:59 Проблема с авторизацией Сообщение #3
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Сделал передачу третьего параметра, но всё равно почему то выдаёт, что логин или пароль не верный, хотя всё введено правильно
Профиль Ответить
25.10.2011 23:37:51 Проблема с авторизацией Сообщение #4
Admin

Admin

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

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

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

Сообщений: 3063

Зачем здесь нужны эти $_POST? Они же содержатся в полях класса:
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 ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!";
}
}
Профиль Ответить
25.10.2011 23:43:18 Проблема с авторизацией Сообщение #5
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Вот, переделал вот так
public function checkDataPassLog() {
if (isset($this->pass)) { if ($this->pass =='') { unset($this->pass);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($this->log) or empty($this->pass)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!";
}
}

Но всё равно не могу авторизоваться, пишет тоже самое
Профиль Ответить
25.10.2011 23:53:00 Проблема с авторизацией Сообщение #6
Admin

Admin

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

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

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

Сообщений: 3063

Но всё равно не могу авторизоваться, пишет тоже самое

А мы ещё не дошли до решения этой проблемы. Теперь ищите ошибку так. Смотрите, почему выводится "неверный пароль". Посмотрите значения переменных. Проверьте условия, посмотрите, что приходит из базы. Проверяйте через echo каждую переменную, которая влияет на вывод "неверный пароль". Учитесь искать ошибки - это очень важно!
Теоретическая база здесь: http://myrusakov.ru/php-finderror.html
Профиль Ответить
25.10.2011 23:54:32 Проблема с авторизацией Сообщение #7
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Спасибо, буду искать)))
Профиль Ответить
27.10.2011 03:06:56 Проблема с авторизацией Сообщение #8
brussens

brussens

Мега-мастер

Мега-мастер

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

Сообщений: 438

Спасибо, Михаил, нашёл))) Вся проблема была в том, что несколько пользователей с одинаковым логином, но с разными паролями были в базе))))
Профиль Ответить