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

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

14.02.2018, 22:23. Показов 704. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru