Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Закрытие страницы от просмотра

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
imya
Отправлено: 29 Января, 2013 - 12:58:25
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




Добрый день, уважаемые знатоки. Понадобилось закрыть страницу от глаз посторонних на сайте.
Есть страничка входа вида site.ru/enter.php
В которой вводятся логин и пароль и делается проверка на корректность, если ввелось верно, то делается запись в переменную сессии имени и переброс на нужную страницу вида site.ru/admin

Хотелось бы, чтобы нельзя было просто так зайти на site.ru/admin, если человек предварительно не ввёл свои данные на страничке enter.php
Подозреваю, что нужно юзать сессию, но вот только не совсем корректно работает, даже при неверном написании имени/пароля - всё равно можно перейти в admin, если прописать в адресной строке.
Как можно реализовать данную ситуацию?


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
EuGen Администратор
Отправлено: 29 Января, 2013 - 13:13:19
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




imya пишет:
Подозреваю, что нужно юзать сессию, но вот только не совсем корректно работает, даже при неверном написании имени/пароля - всё равно можно перейти в admin, если прописать в адресной строке.
Как можно реализовать данную ситуацию?

PHP:
скопировать код в буфер обмена
  1. if(!isset($_SESSION['user']))
  2. {
  3.    header('Location: enter.php');
  4. }

?
- и, разумеется, читайте статьи по аутентификации на php. Как минимум, о сессиях, а можно еще и пример пример авторизации (делаем скидку на давность).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
imya
Отправлено: 29 Января, 2013 - 13:16:24
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




EuGen пишет:


Авторизацию делал уже, благодарю.

Я проверял на наличие сессии и либо выполнял код либо ошибку выбивал.

Спасибо за ответ.



(Добавление)
Не работает такой вариант.

говорит, что сессия пустая, а на страницу заходит всё равно.


В страничке входа делается проверка

PHP:
скопировать код в буфер обмена
  1. if ($name === 'admin' && $pass === 'admin')
  2.                 {
  3.                         header("Location:/admin/index.php");
  4.                         $_SESSION['user'] = $name;
  5.                 }


А в admin/index.php

PHP:
скопировать код в буфер обмена
  1.  if (!isset($_SESSION['user']))
  2.         {
  3.         header("Location: /base.php");
  4.         }


Не редиректит при заходе через адресную строку.

Даже сделал уже ссылку для удаления сессии




всё равно...

з.ы. заранее извиняюсь за некий быдлокод Растерялся
(Добавление)
Что, никто не знает решения || причины ?

(Отредактировано автором: 29 Января, 2013 - 13:40:23)



-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
nordghost
Отправлено: 29 Января, 2013 - 14:49:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




Хотелось бы увидеть тот кусок кода где происходит сама авторизация


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
imya
Отправлено: 29 Января, 2013 - 14:56:09
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_POST['name']) && isset($_POST['pass']))
  3. {
  4.         $name = $_POST['name'];
  5.         $pass = $_POST['pass'];
  6.                
  7.         if ($name === 'admin' && $pass === 'admin')
  8.                 {
  9.                         header("Location:/admin/index.php");
  10.                         $_SESSION['user'] = $name;
  11.                 }
  12.         else
  13.                 {
  14.                         throw new Exception("ooops, some is wrong");
  15.                 }
  16. }
  17. ?>


разметку думаю давать не надо
(Добавление)
Авторизация проходит на ура. Но! если не авторизироваться, а войти на /admin , пускает, а не должно.

(Отредактировано автором: 29 Января, 2013 - 14:56:34)



-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
nordghost
Отправлено: 29 Января, 2013 - 15:09:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




Вот так авторизируйте пользователя:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['name']) && isset($_POST['pass'])){
  4.         $_SESSION['user'] = $_POST['name'];
  5.  }
  6.  

А вот так проверяйте на главной страницу админки:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!$_SESSION['user']=='admin'){// - Если имя пользователя не админ то выкидываем его на сайт.
  3. header("Location:страница сайта");
  4. }
  5.  

(Отредактировано автором: 29 Января, 2013 - 15:11:14)



-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
imya
Отправлено: 29 Января, 2013 - 15:14:09
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




Не работает так.

и так тоже

PHP:
скопировать код в буфер обмена
  1.  if (empty($_SESSION['user']))
  2.         {
  3.         header("Location: /base.php");
  4.         }


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
nordghost
Отправлено: 29 Января, 2013 - 15:19:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 319
Дата рег-ции: Окт. 2011  


Помог: 3 раз(а)




Напишите мне в скайп md5_sha512 шас помогу чем смогу


-----
<a href="http://netbeans[dot]org/">Моя любимая IDE</a> :3
 
My status
 Top
Sitnik
Отправлено: 29 Января, 2013 - 18:26:32
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Проблема скорее всего в настройка php.ini
Включите ошибки и будет видно в чем дело, может у вас сессии выключены.
 
 Top
arsen4ik
Отправлено: 29 Января, 2013 - 20:37:41
Post Id



Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




А лучше сделать на кукисах, сессия она может затерятся где нибудь, например на тех страницах где она не прописана.
 
 Top
esterio
Отправлено: 29 Января, 2013 - 20:46:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




arsen4ik пишет:
А лучше сделать на кукисах, сессия она может затерятся где нибудь, например на тех страницах где она не прописана.

Кукисы не самые безопасные. Если не знаете о чем пишите, не пишите пожалуйста.
(Добавление)
И как сессия может затерятся. Если продумать архитектуру правильну никуда она не денется. Есть несколько варианотов утраты сессийных данных
1. 2 раза session_start
2. register_globals
3. unsset
 
 Top
snikers987
Отправлено: 29 Января, 2013 - 20:55:26
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




esterio пишет:

1. 2 раза session_start


Ошибаетесь.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
esterio
Отправлено: 29 Января, 2013 - 20:58:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




snikers987
Почему?
 
 Top
snikers987
Отправлено: 29 Января, 2013 - 20:59:47
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




esterio пишет:
snikers987
Почему?


Сессия никуда не денется, будет просто нотис и второй вызов проигнорирован.

Цитата:
Notice: A session had already been started - ignoring session_start() in


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
imya
Отправлено: 29 Января, 2013 - 22:10:19
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




Не нужно мне через печеньки, сессия должна справиться с этой задачей.

Кстати, странно, походу у хостера моего выключено отображение ошибок, ибо написав в index.php


я получил большое ничего...)
Протестирую на локалке - если будет работать, буду с тех.поддержкой связываться.
Спасибо за подачу идеи, Sitnik


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB