Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.02.2018
Сообщений: 26

Нерабочая авторизация пользователя

14.02.2018, 22:23. Показов 741. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, столкнулась с проблемой в виде нерабочей авторизации пользователей.

passage.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html>
<head><meta charset='utf-8'>
<title>Авторизация</title></head>
<body>
Вход:
<br>
<br>
 
<form action="login.php" method="POST"><table>
<tr>
<td>Логин:</td>
<td><input type="text" name="login"></td>
</tr>
 
<tr>
<td>Пароль:</td>
<td><input type="password" name="password"></td>
</tr>
 
<tr>
<td colspan="2"><input type="submit" value="Войти" name="submit"></td>
</tr>
</table></form>
 
<a href="registration.php">Регистрация</a>
</body>
</html>
login.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
include_once("bd.php");
?>
<?php
if (isset($_POST['login'])){
    $login = $_POST['login']; 
    if ($login == '') {
        unset($login);
        exit ("Введите имя персонажа");
    } 
}
if (isset($_POST['password'])){
    $password = $_POST['password']; 
    if ($password == '') {
        unset($password);
        exit ("Введите пароль");
    }
}
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
 
$login = trim($login);
$password = trim($password);
$password = md5($password);
$user = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'");
$id_user = mysql_fetch_array($user);
if (empty($id_user['id'])){
    exit ("Введеный вами логин или пароль неверный.");
}
else {
    $_SESSION['password'] = $password; 
    $_SESSION['login'] = $login; 
    $_SESSION['id'] = $id_user['id']; 
    echo "<meta http-equiv='Refresh' content='0; URL=index.php'>";
}
 
?>
Переправляет на главную страницу, да, но там такой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<head><meta charset='utf-8'>
<title>Главная</title></head>
<body>
<?
if (empty($_SESSION['login']) or empty($_SESSION['password'])) {
echo "Вам следует войти, прежде чем смотреть данный контент.";
}
else {
echo "Привет, ".$login."
<a href='exit.php'>Выход</a>
<a href='profile.php?id=$id_user'>Мой профиль</a>";
}
?></body>
</html>
Выводит только то <<Вам следует войти, прежде чем смотреть данный контент>>, даже если вошла и перенаправило на главную. Регистрация нормально работает, бд есть, не спрашивайте.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2018, 22:23
Ответы с готовыми решениями:

Авторизация пользователя
Всем добра! Народ поставили такую задачу, нужно сделать автоматическую авторизацию. Объясню Вообщем когда пользователь заходит на...

Авторизация пользователя ПК
можно ли с помощью php/html..etc узнать имя пользователя ПК? т.е. это нужно для того чтоб ограничить доступ к странице, например : ...

Авторизация пользователя
Есть код авторизации: &lt;? session_start(); error_reporting(E_ALL); if(isset($_SESSION)){ Header('Location: index.php'); ...

7
 Аватар для Vetrox
9 / 9 / 6
Регистрация: 08.10.2012
Сообщений: 266
14.02.2018, 22:42
mysql_query - это старая функция, вашего персонажа будет не сложно взломать.
так или иначе надо перестраиваться на PDO,
про регистрацию попробуйте посмотреть вот этот пример здесь:
https://obninsksite.ru/blog/ph... ration-php
урок 40 минут длится
0
0 / 0 / 0
Регистрация: 14.02.2018
Сообщений: 26
14.02.2018, 22:53  [ТС]
Спасибо, но хочу понять свой косяк с кодом. Не знаете, что нужно исправить?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
14.02.2018, 23:11
Цитата Сообщение от _NightmareDream Посмотреть сообщение
но хочу понять свой косяк с кодом
http://phpfaq.ru/debug

Цитата Сообщение от _NightmareDream Посмотреть сообщение
PHP
1
2
3
4
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
Зачем?
0
0 / 0 / 0
Регистрация: 14.02.2018
Сообщений: 26
14.02.2018, 23:15  [ТС]
Да нет, ошибок не выводит, просто делает не то что нужно.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
14.02.2018, 23:56
Цитата Сообщение от _NightmareDream Посмотреть сообщение
Да нет, ошибок не выводит, просто делает не то что нужно.
Про включение ошибок 1 маленький абзац. Про "просто делает не то что нужно" довольно большая статья, и я сомневаюсь что ее прочесть и выполнить предложенные рекомендации за 4 минуты.

Добавлено через 38 минут
Используется механизм сессий, а вызова session_start я не вижу
0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
15.02.2018, 12:13
_NightmareDream, Зачем в сессии хранить логин и пароль? Одного ид разве не достаточно?
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
15.02.2018, 12:42
Цитата Сообщение от _NightmareDream Посмотреть сообщение
Выводит только то <<Вам следует войти, прежде чем смотреть данный контент>>, даже если вошла и перенаправило на главную. Регистрация нормально работает, бд есть, не спрашивайте.
наверное вы переводите в мd5 хеш -а базе у вас не хеш?

Добавлено через 4 минуты
stripslashes вам вроде не нужно вам
и можно писать так

PHP
1
$login = stripslashes(htmlspecialchars($login));
Добавлено через 2 минуты
PHP
1
$password = md5($password);
это можно применить прям с SELECT
AND password=MD5('$password')") вроде так, точно не помню

Добавлено через 3 минуты
Цитата Сообщение от _NightmareDream Посмотреть сообщение
if (isset($_POST['login'])){
$login = $_POST['login'];
if ($login == '') {
unset($login);
exit ("Введите имя персонажа");
}
}
if (isset($_POST['password'])){
$password = $_POST['password'];
if ($password == '') {
unset($password);
exit ("Введите пароль");
}
}
это лучше сделать так
PHP
1
2
3
4
5
6
7
8
9
10
if (isset($_POST['password']) AND isset($_POST['login'])){
 if(!empty($_POST['login']) AND !empty( $_POST['password']) ) {//если не пустое
 $login = $_POST['login']; 
 $password = $_POST['password']; 
}//если не пустое
else {
 exit ("Введите имя или пароль для персонажа");
}
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2018, 12:42
Помогаю со студенческими работами здесь

Авторизация пользователя
Всем доброго времени суток! Изучаю php недавно. Необходимо сделать авторизацию пользователя на страницу администратора. Чудным образом...

авторизация пользователя
Помогите пожалуйста,у меня есть форма: function identification_admin() { $admin=&quot;&quot;; $admin.=&quot;&lt;form action=index.php...

Авторизация пользователя
Добрый день, учу php сейчас и задался вопросом об авторизации, почитал в инете что лучше делать через сессии, а не через куки, но проблема...

Авторизация пользователя
Добрый день. Я сделала регистрацию и вход на сайте. Но теперь хотелось бы сделать чтобы при авторизации пользователя он попадал на главную...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru