Доброго времени суток. Я новичек, недавно начал изучать хтмл\цсс и немного пхп создавая простенький статический сайт. И практически сразу столкнулся с проблемой, которую не могу решить уже двое суток. Искать пробовал, откуда и сумел немного уточнить и конкретизировать задачу. Но видимо недостаток знаний не позволяет мне допилить множество "готовых на 90% примеров", потому и обращаюсь к вам. Суть проблемы в том, что на моем сайте есть раздел (несколько статических страниц) с инфой, на которую должно пускать только конкретных пользователей, список которых я определю в отдельном файле. Я в уме представляю следующую модель всего этого: 1) Авторизацию и проверку прав решил делать по методу сессий. Как-то с виду оно показалось более простым для моего понимания и достаточным для пользователей решением. 2) Где-то должна быть создана форма с одним полем (да, достаточно одного) и кнопкой, которая будет посылать данные из поля в файл-обработчик, который сверив данные будет открывать сессию и записывать в нее переменную с чем-то типа true или 1 или писать что таких данных в списке нету. 3) для того, чтобы контролировать имеет ли пользователь сайта доступ к конкретной странице или нет - на каждой из "защищенных" страниц должна быть некая проверка переменной из сессии, и если проверка не прошла то перенаправлять на форму ввода данных и говорить "залогиньтесь". Но это всё только в уме, а на практике ни один пример не дает мне результатов, как я его не кручу У меня есть страница index.php в которую инклудятся части сайта (меню, футтер и т.д..) и по нажатии на пункты меню - динамически меняются блоки контента, некоторые из которых и планируется "защитить". Помощь собственно нужна в следующих вопросах: 1) где должна размещаться форма для авторизации. 2) что нужно вписать в страницу для проверки данных из сессии и если они не соответствуют - перенаправлять на форму авторизации. 3) каким должен быть код файла-обработчика данных из формы Я понимаю, получается что я ничего не сделал, но ведь раздел именно для таких лентяев Очень надеюсь на вашу помощь и советы. Если возможно то по максимуму комментируйте пожалуйста, потому что хочу разобраться в вопросе.
Re: Авторизац и проверк прав на просмотр страниц через php с 1) без разницы, как хочешь 2) данные из сессии берутся из $_SESSION['name'], перенаправление header("Location: /forma.php") 3) смотря как отправляешь форму, $_GET либо $_POST (лучше пост), хэширование пароля, занесение в базу (регистрация), проверка из базы (вход)
Спасибо, немного прояснилось... немного, но не всё Всё что у меня есть сейчас: 1) файл обработчик auth.php: Код (PHP): <?php session_start(); if ($_POST['tel'] == '777') $_SESSION['auth'] = '1'; else {?> Введите ваш номер телефона для авторизации <form method='POST' action = 'auth.php'> <input type='text' name='tel'> <input type='submit' value='Залогинится'> </form> <?}?> 2) файл, который нужно защитить katalog.php: Код (PHP): <?php session_start(); if ($_SESSION['auth']<>1) { header("Location: /auth.php"); exit; } ?> KTALOG Что еще хочется сделать: 1) Чтобы при позитивном срабатывании проверки поля Tel автоматом открывалась страница katalog.php 2) Чтобы сопоставление велось не только с 777 а с неким масивом данных, в идеале размещенном в отдельном файле. 3) Нормально ли с точки самой примитивной зрения безопасности что форма входа и данные для сверки находятся в одном пхп файле? Если можно, подскажите как это можно исправить. Подскажите пожалуйста в какую сторону смотреть, и если есть замечания по моему недокоду то тоже пишите их пожалуйста. Хочется хоть это простенькое сделать правильно. Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
Никак не могу справится ( пните нуба в нужную сторону пожалуйста, а лучше дайте совет как исправить чтоб работало Есть файл auth.php который должен присвоить 1 в сессию auth и автоматом без лишних кликов открыть страницу katalog.php, или отобразить форму...А он только ошибки выбивает. Код (PHP): <?php session_start(); if ($_POST['tel'] == '777') $_SESSION['auth'] = '1' header("Location: /katalog.php"); else {?> Введите три 7 <form method='POST' action = 'auth.php'> <input type='text' name='tel'> <input type='submit' value='Проверить> </form> <?}?> Чувствую что проблема в синтаксисе, но что именно и где я пропустил - понять не могу.
Код (PHP): if ($_POST['tel'] == '777') $_SESSION['auth'] = '1' header("Location: /katalog.php"); else { вот именно поэтому нечего так писать. Нефиг лениться и не дописывать постоянно фигурные скобки. Вот ваша запись в нормальном виде: Код (PHP): if ($_POST['tel'] == '777') $_SESSION['auth'] = '1' header("Location: /katalog.php"); else { А теперь: 1. Если блок кода не оформлен в фигурные скобки, выполняется только ОДНА строка после if. 2. В отформатированном мною варианте видно, что не хватает точки с запятой. Совет дал, исправляйте.
Спасибо что не бросаете меня, сам я точно не справлюсь вовремя. Чего-то я совсем в ступоре, где не поставлю скобку - пишет Код (PHP): unexpected '{' без Код (PHP): header("Location: /katalog.php") оно еще более-менее работает, а теперь на него ругается: Код (PHP): unexpected T_STRING
уф, ладно Код (PHP): if ($_POST['tel'] == '777'){ $_SESSION['auth'] = '1'; header("Location: /katalog.php"); exit(); } else {
Re: Авторизац и проверк прав на просмотр страниц через php с Спасибо большое за код. Всё отлично работает.