PHP.SU

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

Страниц (24): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец

> Найдено сообщений: 359
Hapson Отправлено: 15 Ноября, 2013 - 08:48:54 • Тема: Подскажите где кроется ошибка • Форум: Вопросы новичков

Ответов: 14
Просмотров: 360
Джек пишет:
Hapson пишет:
Джек
Ошибка тут одна: отсутствие знаний и нежелание их получить.

Ух ты нечего по делу сказать, тогда лучше молчать....

Есть другие варианты?
Hapson Отправлено: 15 Ноября, 2013 - 08:31:52 • Тема: Проблема с подключением файла • Форум: Вопросы новичков

Ответов: 3
Просмотров: 157
tati пишет:
После того как накидал эскиз страницы начал выносить и подключать те части сайта которые не будут меняться такие как меню) но возникла проблема текст из подключаемых файлов сместился вниз.

Подожди, подожди... щас... телепаты устанавливают визуальный контакт с твоими файлами.
Улыбка
Hapson Отправлено: 15 Ноября, 2013 - 08:29:13 • Тема: Подскажите как это отсортировать • Форум: Вопросы новичков

Ответов: 12
Просмотров: 356
Deonis
Не надо var_export() попробовать - он может использовать кавычки Улыбка
Hapson Отправлено: 15 Ноября, 2013 - 08:23:14 • Тема: Подскажите где кроется ошибка • Форум: Вопросы новичков

Ответов: 14
Просмотров: 360
Джек
Ошибка тут одна: отсутствие знаний и нежелание их получить.
Hapson Отправлено: 15 Ноября, 2013 - 08:15:58 • Тема: Помогите с PHP и SQL!!! • Форум: Вопросы новичков

Ответов: 21
Просмотров: 591
там где обработка, включаешь вывод ошибок и
PHP:
скопировать код в буфер обмена
  1.  
  2. echo '<pre>';
  3. var_export($_SESSION);
  4. var_export($_POST);
  5. echo '</pre>';
  6.  

И сразу видим, где косяк.
(Добавление)
а еще открываем черное окошко и печатаем запрос руками для теста. И только удачный запрос переносим в пых.
Hapson Отправлено: 15 Ноября, 2013 - 07:54:36 • Тема: перехват исключений • Форум: Вопросы новичков

Ответов: 15
Просмотров: 604
him
А не проще писать ошибки в лог, а не вываливать нервным юзверям на экран?
Да и в нормальном коде всегда знаешь, где херня может случиться. Не проще
PHP:
скопировать код в буфер обмена
  1.  
  2. if(что-то случилось){
  3.     echo "юзверь, будь спокоен, сайт не работает. ХЗ... чета случилось.";
  4. }
  5.  
Hapson Отправлено: 15 Ноября, 2013 - 07:39:05 • Тема: сложность с авторизацией • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1015
Прежде всего почитай, как работают сессии. Конечно для каждого браузера открывается своя сессия. Что такое сессия? Это файл на сервере, в котором лежит массив $_SESSION. А имя этого файла (идентификатор сессии) записывается в куку браузера. Если юзер заходит с другого браузера, то это уже неизвестный юзер. Ты стартуешь для него сессию - и опять ты не знаешь кто он. У него есть файл сессии, но он пуст, он только готов для записи.
При выходе юзера не нужно убивать сессию - достаточно сделать ансет той переменной в сессии, по которой ты идентифицируешь юзера.
В файле проверки формы, после того как ты сверил пароль, ты стартуешь сессию и тут же смотришь, есть ли в ней userid. А откуда он там, скажи? Пользователь нажал кнопку входа, значит он неавторизован и у него нет ничего в сессии. Или у тебя авторизованные тоже видят форму входа? Зачем ему форма, если он уже авторизовался? Логично на ее месте показать кнопку "профиль".
Нет смысла держать юзер агент в базе. Авторизовался в одном браузере, заходишь с другого - там ты не авторизован. Закрыл/открыл браузер - все, неавторизован.
Хранить инфу о юзере в сочетании с его id нужно, если ты хочешь чтобы юзер мог залогиниться только в одном браузере. Но учти также, что хранить в базе UserAgent, IP и прочий хлам как есть - чистой воды расточительство. Один только юзер агент около 100 знаков.
Еще учти, что никакие данные извне нельзя вот так просто пхать в запрос. Каждый юзер для тебя не юзер, а хакер, которому нужно разрешить только то, что ты хочешь разрешить. Как минимум mysqli_real_escape_string($link, $_POST["login"]) может в синтаксисе ошибся - не суть, смысл ясен.
Для удобства вынеси подключение к базе в отдельный файл, и там же можно навалять функций для запросов, которые будут сами тебе все экранировать.
И вообще не обязательно использовать сессию. Сессия - это кука. Нет куки - нет сессии - нет авторизации. Почему бы не ставить куку, если уж у тебя есть база, где инфа на юзеров?
Hapson Отправлено: 14 Ноября, 2013 - 14:51:24 • Тема: сложность с авторизацией • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1015
Еще раз, перед тем как проверять что-то в сессии, ее нужно запустить.
Вот твой алгоритм:
1. была ли нажата кнопка входа - была
2. запрос к базе по логину
3. равен ли пароль из базы паролю из формы - да, равен
4. теперь внимание! есть нет ячейки user_id в массиве $_SESSION... - конечно нет, потому что и сессии-то нет.
Hapson Отправлено: 14 Ноября, 2013 - 14:08:25 • Тема: сложность с авторизацией • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1015
ferdinand пишет:
пробовал стартовать сессию сразу после if (isset($_POST['submit']))
то же самое
если зашел с одного браузера и, не нажимая выход, захожу с другого, то !isset($_SESSION['user_id']) истинно. Но ведь сесиия то есть на сервере.

"и если уж ты пользуешься сессией, то зачем юзер агент в базе держишь?" - разве это не способ не пускать пользователя, если сессия активна, и он заходит с другого браузера?

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if(!isset($_SESSION[user_id])){
  4.     echo 'и правда... нету юзер айди в сессии...';
  5. }
  6.  


Выведет этот кусок текст на экран?
(Добавление)
Мелкий пишет:
ferdinand пишет:
Но ведь сесиия то есть на сервере.

Но куки ведь нет.

После старта сессии нет куки?
Да и при чем вообще здесь кука? Исключая вариант с выключенными куками.
Hapson Отправлено: 14 Ноября, 2013 - 13:37:45 • Тема: сложность с авторизацией • Форум: Вопросы новичков

Ответов: 18
Просмотров: 1015
ferdinand пишет:
help! Однако

А сессию кто будет стартовать, перед тем как проверять в ней что-то?
(Добавление)
и если уж ты пользуешься сессией, то зачем юзер агент в базе держишь?
Hapson Отправлено: 07 Ноября, 2013 - 18:06:15 • Тема: Ограничение попыток логина • Форум: Вопросы новичков

Ответов: 14
Просмотров: 670
teddy пишет:
Предлагаю сделать так: Если независимо от времени 5 раз подряд был введен неверный пароль(с учетом того, что не было успешной авторизации), тогда баним и отправляем почту и подсказываем типа "Забыли пароль?". Если пользователь знает свой пароль, то введет его хотя бы на 5ый раз. Иначе это взлом либо он просто забыл пароль. А если например 4 раза пароль неверный, а на 5-ый удалось авторизоваться, значит обнуляем счетчик и так по кругу.

Ну да, примерно так. После трех попыток показать капчу, после пяти заблокировать и отправить письмо.
Hapson Отправлено: 07 Ноября, 2013 - 17:19:44 • Тема: Ограничение попыток логина • Форум: Вопросы новичков

Ответов: 14
Просмотров: 670
Как же быть с программами для перебора?
Замерять время между попытками входа?
Hapson Отправлено: 07 Ноября, 2013 - 17:17:50 • Тема: Ограничение попыток логина • Форум: Вопросы новичков

Ответов: 14
Просмотров: 670
Да, видимо только с привязкой к логину. И отправлять письмо заблокированному юзеру, типа ты или не ты стучался.
Hapson Отправлено: 07 Ноября, 2013 - 17:07:45 • Тема: Ограничение попыток логина • Форум: Вопросы новичков

Ответов: 14
Просмотров: 670
teddy пишет:
Физически узнать конкретного пользователя врядли получится. Как вы сказали выше, это может быть и Вася и Петя и многие другие. Поэтому первое что приходит в голову, это запрещать авторизоваться под этим логином некоторое время.

К примеру если 5 раз к Hapson был введен неверный пароль, то доступ блокируется на час только для Hapson.

Банить айпишник и проверять юзер агенты думаю смысла нет(разве что для статистики)

Не хотел привязываться к логину, но видимо другого варианта нет.
Маша-хакер может перебирать не только пароли, но и комбинации логин/пароль.

И опять косяк...
Допустим Вася узнал логин Пети и начал подбирать пароль. Тут раз - Васю заблочили, а он ни сном и не духом...
(Добавление)
Kandiar пишет:
Если у человека статический IP то его нет смысла банить по IP

Не понял смысла сей фразы.
Если у человека статический IP, то его как раз таки можно забанить по IP, но косяк в том, что под этим IP могут сидеть еще пару десятков человек.
Нет смысла банить динамические IP. А так как мы никогда не знаем о том, динамический IP или статический, да и вообще, может это прокси, то смысла банить по IP вообще нет
Hapson Отправлено: 07 Ноября, 2013 - 16:51:31 • Тема: Ограничение попыток логина • Форум: Вопросы новичков

Ответов: 14
Просмотров: 670
Столкнулся с такой вот проблемой - как организовать блокировку при N-ном количестве неудачных попыток входа на сайт?
Гуглил много, но ничего путного на эту тему нет. Все сводится к блокировке по IP или что еще хуже по целой подсети.
По сути, когда кто-то стучится в форму входа, то мы знаем UserAgent и IP, и то не факт что знаем. Блокировка по IP, UserAgent или даже их совокупности никак не подходит. Скажем сидят у нас Петя, Вася, Коля и Маша, все используют фаерфокс одной версии и все в одной локальной сети с одним внешним IP. Маша постучалась в форму 5 раз - я ее заблочил по UserAgent и IP. И что? Петя, Вася, Коля тоже получать сообщение что они исчерпали попытки входа.
Есть у кого-нибудь мысли? Или кроме IP ничего нет

Страниц (24): В начало « ... 6 7 8 9 [10] 11 12 13 14 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB