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

Сессии на php и вход в админку

24.09.2013, 22:24. Показов 3202. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
<?php session_start();
if(!$_SESSION['login']) header('Location: login.html'); ?>
Этим кодом проверяю сессию если есть то отображаю страницу, если нет то отправляют на логин html

PHP
1
2
<?php session_start();
if(!$_SESSION['login'] == 'admin') header('Location: login.html'); ?>
но не работает

так создается сессия и проходит авторизация
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
40
41
42
43
44
45
<script type="text/javascript">
window.location = "new.php"
</script><?php
    session_start();//  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
$password = stripslashes($password);
    $password = htmlspecialchars($password);
//удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
// подключаемся к базе
    include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
 
$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); //извлекаем из базы все данные о пользователе с введенным логином
    $myrow = mysql_fetch_array($result);
    if (empty($myrow['password']))
    {
    //если пользователя с введенным логином не существует
    exit ("Извините, введённый вами login или пароль неверный.");
    }
    else {
    //если существует, то сверяем пароли
    if ($myrow['password']==$password) {
    //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
    $_SESSION['login']=$myrow['login']; 
    $_SESSION['id']=$myrow['id'];
//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
    echo "Вы успешно вошли на сайт! <a href='new.php'>Главная страница</a>";
    }
 else {
    //если пароли не сошлись
 
    exit ("Извините, введённый вами login или пароль неверный.");
    }
    }
    ?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.09.2013, 22:24
Ответы с готовыми решениями:

Вход в админку!
Доброго времени суток!Такая проблема!При входе в админку ввожу логин и пароль окошко ввода просто обновляется и всё!Пробовал заходить с...

Вход в админку WP
Вообщем на главной странице сайта вылезла какая-то дрянь, она же и не дает зайти в админку... Переименовывал plugins &amp; themes,...

Вход в админку
Добрый день, не знаю куда писать, прошу помощи. Создал сайт джумла 3, год назад, поставил защиту скрывать админку ( слово пароль) теперь...

3
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.09.2013, 23:30
Цитата Сообщение от iptips Посмотреть сообщение
PHP
1
if(!$_SESSION['login'] == 'admin')
и о чем мы думаем при составлении такого?
Что произойдет здесь:
1. Т.к. стоит символ ! (отрицание) перед $_SESSION['login'], то ее значение приведется к булеву типу и изменится на противоположное (т.е., если там есть какое-то непустое значение, то приведется в true, а затем изменится на false). Про пустые значения при приведении к булеву можете почитать здесь
2. Таким образом, первым аргументом может быть только true или false. True - если значение "пустое", False - если там что-то есть.
3. Дальше у нас идет сравнение булева со строкой. Идем сюда http://www.php.net/manual/ru/l... arison.php, смотрим вторую таблицу. Видим "нашу" строку
Тип операнда 1Тип операнда 2Результат
bool или nullчто угодноПреобразуется в bool, FALSE < TRUE
Ведь у нас как раз тип операнда 1 - boolean (true/false).
4. Исходя из таблицы, строка "admin" преобразуется в булев тип. Что на выходе даст true.
5. Получаем условия следующего вида:
а) при существующей сессиии
PHP
1
if(false == true) { ..... }
б) при не существующей сессии или сессии с "пустым" значением
PHP
1
if(true == true) { ..... }
А решение - простое до невозможности, просто убрать восклицательный знак.. Уж не буду говорить, что лучше сначала проверить значение на существование
0
0 / 0 / 1
Регистрация: 16.09.2013
Сообщений: 16
24.09.2013, 23:44  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
и о чем мы думаем при составлении такого?
Что произойдет здесь:
1. Т.к. стоит символ ! (отрицание) перед $_SESSION['login'], то ее значение приведется к булеву типу и изменится на противоположное (т.е., если там есть какое-то непустое значение, то приведется в true, а затем изменится на false). Про пустые значения при приведении к булеву можете почитать здесь
2. Таким образом, первым аргументом может быть только true или false. True - если значение "пустое", False - если там что-то есть.
3. Дальше у нас идет сравнение булева со строкой. Идем сюда http://www.php.net/manual/ru/l... arison.php, смотрим вторую таблицу. Видим "нашу" строку
Тип операнда 1Тип операнда 2Результат
bool или nullчто угодноПреобразуется в bool, FALSE < TRUE
Ведь у нас как раз тип операнда 1 - boolean (true/false).
4. Исходя из таблицы, строка "admin" преобразуется в булев тип. Что на выходе даст true.
5. Получаем условия следующего вида:
а) при существующей сессиии
PHP
1
if(false == true) { ..... }
б) при не существующей сессии или сессии с "пустым" значением
PHP
1
if(true == true) { ..... }
А решение - простое до невозможности, просто убрать восклицательный знак.. Уж не буду говорить, что лучше сначала проверить значение на существование
но если просто убрать ! то тогда просто отображается страница всем желающим независимо имеют ли они сессию или нет, или я опять что-то не понял
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.09.2013, 23:47
PHP
1
2
3
4
5
if( !isset($_SESSION['login']) || $_SESSION['login'] != 'admin' )
{
    header(.....);
    exit;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2013, 23:47
Помогаю со студенческими работами здесь

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

Отсутствует вход в админку
Люди, спасите! Нет входа в админку на работающем сайте (просто белое поле и никаикх сообщений о возможных ошибках). Сайту всего несколько...

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

Вход в админку Joomla
Доброго времени суток. Имеются проблемы со входом в админку Joomla. Вот уже несколько дней не могу туда зайти. Адрес сайта -...

Не могу найти вход в админку
Здравствуйте, купил сайт. Он написан на yii фреймворке, от него есть все доступы и база данных, но человек не скинул адрес входа в админку...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
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
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами 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 из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru