|
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 20
|
|||||||||||||||||||||
Ограничение доступа не авторизованным пользователям11.04.2015, 15:50. Показов 29169. Ответов 26
Метки нет (Все метки)
Здравствуйте люди добрые, создаю сайт на php и в ходе создания возник вопрос. Введу в курс дела: написал сайт, сделал регистрацию и авторизацию, но мне ко всему к этому ещё нужно что-бы доступ к определённым страницам сайты был закрыт не для авторизованных пользователей. Просмотрел форум, пролазил на сайтах где рассматривается данный вопрос, так и ни чего не нашёл путнего потому что, коды регистрации и авторизации у всех резные. А я не такой профи, что-бы взять суть и реализовать его на своём коде. Вообщем нужна помощь более опытных людей.
Код регистрации "reg.php":
Буду очень благодарен за помощь! С уважением Александр!
0
|
|||||||||||||||||||||
| 11.04.2015, 15:50 | |
|
Ответы с готовыми решениями:
26
Показ рекламы только авторизованным пользователям Позволить скачивать архивы только авторизованным пользователям |
|
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
|
||||||||||||||||
| 11.04.2015, 17:04 | ||||||||||||||||
Сообщение было отмечено Ais72tum как решение
Решение
1
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 20
|
|||||||||||
| 11.04.2015, 19:36 [ТС] | |||||||||||
|
Спасибо огромное! Вопрос куда вставять первый и второй код, в страницу которую нужно ограничить в доступе, или в код login.php?
Добавлено через 16 минут Я добавил данный код в login.php
"Fatal error: Call to undefined function protect_page() in W:\home\92.255.174.125\WWW\ege\chat.php on line 2" В чём дело? Что я сделал не так, и как исправить? Помогите ребят!
0
|
|||||||||||
|
86 / 86 / 30
Регистрация: 12.08.2014
Сообщений: 1,129
|
|||||||||
| 11.04.2015, 20:29 | |||||||||
Сообщение было отмечено Ais72tum как решение
РешениеДобавлено через 1 минуту
Добавлено через 1 минуту Создайте файл с функциями и подключайте его, где вам нужно
1
|
|||||||||
|
16 / 16 / 13
Регистрация: 12.01.2014
Сообщений: 177
|
|
| 11.04.2015, 20:50 | |
|
И вроде рабочий вариант предложили и человеку помогли. И работать это будет. Но как то всё не то. ИМХО.
Логика не та. А именно: 1) В сессии не хранят логины - пароли. Раньше и я хранил, пока в один прекрасный момент сессия не сказала - пока. Срок жизни сессии - определяет сервер. Можно настроить - но это не комильфо. Сама идеология хранения там логин-пароль ошибочна. Но многие так делают. А ведь лучше так. Логин, хеш пароля, соль (опционально) и идентификатор пользователя хранят в бд. Суть такая - после авторизации и всех проверок пользователя ему генерируют случайный идентификатор (строку). Его пишут в бд и в куку. Далее - есть кука? Да. А что там? Строка. А есть ли в базе такая строка? Есть. Это наш человек. Иначе - не авторизован. 2) Создавать функции ради таких вещей, состоящие из других функций - странно. Создается файл all_about_user.php Его инклудим где надо проверять авторизирован ли пользователь или нет. В нем пишем код проверок, код сбора другой информации. На выходе массив. И никаких функций. Частое-однотипное действие это не использование функций. Это скорее всего инклуд.
0
|
|
|
53 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 268
|
||||||
| 11.04.2015, 22:54 | ||||||
0
|
||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||||||||||
| 12.04.2015, 00:08 | ||||||||||||||
Такими рассуждениями можно прийти к тому, что есть машинные коды, а все ЯП (включая языки ассемблера) должны идти лесом.Правда, незачем использовать тернарный оператор и хотя бы empty вместо isset
З.Ы. Как бы, можно и константами воспользоваться в начале скрипта. Нечто в духе
0
|
||||||||||||||
|
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 20
|
||||||
| 12.04.2015, 00:49 [ТС] | ||||||
|
paskalnikita, спасибо огромное! Реализовал как вы написали всё заработало как нужно. Но я чучуть доработал таким образом:
0
|
||||||
| 12.04.2015, 04:38 | |
|
Не по теме: Ais72tum, ух нифига себе... вы правда в openra играете? давайте вместе сыграем!)) Добавлено через 1 минуту Не по теме: а, ну и да, юзайте mysql_real_escape_string, не палите свой айпи и полные пути на форумах, и больше об этом никто не узнает:)
0
|
|
|
16 / 16 / 13
Регистрация: 12.01.2014
Сообщений: 177
|
||
| 12.04.2015, 12:36 | ||
|
Но я рассуждаю так - лучше создать один файл который выполняет действия с пользователями и подключать его один раз, там где надо. Это лучше, чем создавать общий-огромный файл со всеми действиями-функциями и подключать его везде - вызывая нужную функцию. Что и делает большинство потому что удобно (я так думаю). А на быстродействие начхать т.к. можно поставить ещё планку памяти в сервер и проект априори будет не высоконагруженный. Или это не влияет на быстродействие - производительность? И можно создать файл с 100500 функциями для любых действий и вызывать 1 функцию тут, другую там. А оставшиеся 100498 - пусть лежат мёртвым грузом, ведь кушать не просят, память-ресурсы не используют...
0
|
||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||
| 12.04.2015, 13:28 | |||
|
Или пишите все на голом C. Или же не говорите ничего про уменьшение быстродействие на 1 иоктосекунду от использования функций вместо использования кода "как есть". Но это, наверное, совсем нереально)
0
|
|||
|
16 / 16 / 13
Регистрация: 12.01.2014
Сообщений: 177
|
||||||||
| 12.04.2015, 14:13 | ||||||||
|
Мне кажется, что функция и действие -разные вещи. Я поясню. Из математики - определение функции. Функция - есть правило, которое к элементам из множества x ставит в соответствие единственный элемент из множества y. Проще говоря - функция возвращает единственное значение. return А может и не возвращать void. Действие - та же выборка из базы, чаще всего возвращает множество значений - набор, массив и т.д. В большинстве случаев, нам требуется множество значений. Редко кому нужен в коде логин без пароля. Или только имя без фамилии. Всё однотипно. Само использование функции лишено смысла. Вызывать кучу функций - одну для логина (+1 запрос к бд), одну для пароля (+1 запрос к бд)... Или писать функцию для логин-пароль? Так зачем тут слово функция? Что мешает написать файл с выборкой основных данных о пользователе и подключить его? Разницы никакой - только нет слова функция и на выходе массив нужных значений, а не одно - пусть и содержащее все данные... Честно не понимаю, зачем "математический аппарат" использовать в угоду удобства, там где это делать не нужно. Функции использую только в таком контексте
0
|
||||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||||||||||
| 12.04.2015, 14:49 | |||||||||||
|
Если же даже вернуться к математике, то в том же определении не указано то, что сопоставленный элемент не может, в свою очередь, являться очередным множеством, а не конечной "простой" константой. Итого, никто не мешает мне вернуть массив, как часто и делают. Помимо всего прочего, в PHP само по себе функция не может вернуть множественное значение. А знаете где, навскидку, это есть? В LISP-е. Попробуйте сказать лисперу, что язык, одной из основных парадигм которого является функциональная, является вовсе не функциональным, потому что функции multiple-value-* являются вовсе не функциями ![]() И что вы скажете по поводу недетерминированных функций? Это тоже не функция? В общем, не надо загонять ![]()
1
|
|||||||||||
|
16 / 16 / 13
Регистрация: 12.01.2014
Сообщений: 177
|
|||
| 12.04.2015, 15:07 | |||
|
Мой файл выполнит скажем запрос select login,password,name from bd........... и на выходе получит массив. Это 1 запрос. А функция? Тоже может выполнить 1 запрос. И в чем тогда разница? А в том, что можно написать огромный файл с кучей функций, подключать его везде - но вызывать только нужные функции. А можно подключать только нужный файл с запросом там, где он нужен и не инклудить +100500 строк ненужных и неиспользуемых в данный момент функций. Зачем инклудить то, что не используешь в данный момент? Прост ![]() Вы ещё техзадание моё не видели там условия неизвестны. Больше, меньше, равно? Догадайся сам Техзадание формируется и изменяется на лету. Суровая реальность.
0
|
|||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 12.04.2015, 15:21 | ||||||
![]()
0
|
||||||
|
16 / 16 / 13
Регистрация: 12.01.2014
Сообщений: 177
|
||
| 12.04.2015, 15:34 | ||
|
Вообщем я вас понял.
Кратко - если неизвестно, что на входе - какие данные, то такие и функции. Это не нормально, но такова суровая Российская реальность. Влияет ли существенно. Байты памяти не в счёт...
0
|
||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 12.04.2015, 15:42 | ||||||
![]()
0
|
||||||
| 12.04.2015, 17:33 | ||||||||
|
Не по теме: inline-оптимизации в расчет не берем, все же это больше костыль, ну и в любом случае в пхп их нет:) НО! ведь функционалка -- тоже программирование, хотя и немного другое. Я лишь хочу сказать, что нельзя однозначно утверждать, что определения из математики не подходят ни к одной из областей программирования. Разумеется, обратное утверждение -- еще большее заблуждение ![]() Не по теме: блин, а multiple-value-call -- крутая штука, судя по всему. надо будет как-нибудь добраться до cl:) правда, пока что что-то мне подсказывает, что сложность в рантайме у нее такая же, как и у обычного паттерн-мэтчинга. не, я понимаю, что многие штуки создаются ради удобства, но в лиспе ж можно их и макросами реализовать, а раз уж оно на уровне ядра реализовано, значит зачем-то нужно не просто так... эх, сложно с императивки перелезать:) ну а на самом деле, разумеется, на многое влияет связность и связанность, насколько я помню в пхп это отражается и на производительности, не только на архитектуре. Если, при выполнении достаточно большого (over 50%, так скажем) запросов будут подключаться функции из определенного модуля, например, users, а при выполнении другого (с учетом того, что тех и других запросов примерно поровну) из другого, но из users функции не требуются совершенно, то разумеется, это будет быстрее работать. Не по теме: Отсюда и стали применять MVC и в вебе, по-моему. Срок жизни сессии не только можно, но и НУЖНО настраивать, или вы javascript с php перепутали? Вы -- владелец сервера. Ну или ок, можете серверные скрипты писать/изменять. Недаром у session.gc_maxlifetime и session.cookie_lifetime доступ PHP_INI_ALL, в конце-то концов! хм... хотел прочитать а что будет дальше?? чем этот механизм отличается от механизма сессий в пхп? то, что вы не в /tmp директорию пишите, откуда все считать могут? ну ок, есть же session.cookie_path. Да я вам более скажу, есть даже http://php.net/manual/ru/funct... andler.php, через который вы можете спокойненько реализовать ваш механизм для сохранения сессии в базе. Ais72tum, еще раз настоятельно прошу закрыть ваш дев-сервер на винде от посторонних глаз (Listen 127.0.0.1:80, вместо просто Listen 80, в конфиге апача вашего, денверовского, или пропишите подсеть или айпишники, которым вы доверяете)
0
|
||||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||
| 12.04.2015, 17:43 | ||
|
0
|
||
| 12.04.2015, 18:16 | |||
|
Не по теме:
просто утверждение "совсем не" -- не совсем корректно с точки зрения формальной логики. вот "не совсем" звучало бы куда логичнее
0
|
|||
| 12.04.2015, 18:16 | |
|
Помогаю со студенческими работами здесь
20
Ограничение доступа к диску пользователям компьютера Ограничение доступа на сайт незарегистрированным пользователям. Ограничение Доступа К Базам Сервера Нескольким Пользователям Нужно реализовать ограничение доступа на некоторые страницы определенным пользователям Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|