blaga 39 Опубликовано: 30 ноября 2010 Рассказать Опубликовано: 30 ноября 2010 доброго времени суток. Следующая задача - сделать отдельную страничку в для вип посетителей которые знают секретный код. они вводят секретный код и им показывается скрытое содержание. как я это реализую- В файле engine.php добавил такие строки if (!isset ( $vipcode )) $vipcode = totranslit ( $_REQUEST['vipcode'] ); else $vipcode = totranslit ( $vipcode ); case "vip" : include ENGINE_DIR . '/modules/vip.php'; break; в соответствующие места(кто знает где там все тот поймет) затем создал файл vip.php в папке modules <?php if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } if($vipcode == "pass") { $tpl->set('{text}', 'Бла бла бла <br /> секретный текст пароль от пентагона - vasiya22 '); }else { $tpl->set('{text}', "пусто"); } $tpl->load_template('vip.tpl'); $tpl->compile('content'); ?> затем создал файл vip.tpl в директории шаблона. <table border="1"> <tr> <td> <form method="GET" action="?do=vip"> <input type="text" id="vipcode" name="vipcode" size="20" /> <input type="submit" value="отправить"> </form> </td> </tr> <tr> <td>{text}</td> </tr> </table> Все поначалу выводит отлично но когда вбиваю пароль в текстовое поле то меня должно закинуть по следующему адресу index.php?do=vip&vipcode=pass и соответсвенно показать скрытый текст А меня кидает на index.php?vipcode=pass и я вижу главную страницу сайта. что не так я сделал? Всем заранее спасибо. Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 1 декабря 2010 Рассказать Опубликовано: 1 декабря 2010 1. Никогда не используйте $_REQUEST в целях безопасности - это набор запросов ГЕТ, ПОСТ, ... если у вас конкретный запрос ГЕТ, то его и пишите. Это сделано для удобства проверки кода. 2. используйте в форме обычную ссылку (хотя, варианты разные можно придумать) вместо кнопки "отправить" и вешайте на ссылку "событие", например, "онклик" для отправки формы. 2 Цитата Ссылка на сообщение Поделиться на других сайтах
blaga 39 Опубликовано: 1 декабря 2010 Рассказать Опубликовано: 1 декабря 2010 (изменено) Автор ну я _REQUEST не с потолка взял если глянуть в engine.php то там такой код стоит на переменную do if (!isset ( $do )) $do = totranslit ( $_REQUEST['do'] ); else $do = totranslit ( $do ); а вообще я менял на get и на post результат тот же. а про то как в форме ссылку использовать я немного не понял, а как по ссылке введеный код передавать?может быть у меня с денвером что то не то? может быть кто нить проверит на своем компе? инструкция выше там ниче сложного. С меня + в карму! Изменено 1 декабря 2010 пользователем blaga 1 Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 1 декабря 2010 Рассказать Опубликовано: 1 декабря 2010 (изменено) Если кто-то сделал неправильно или не очень правильно, либо под свои конкретные нужды - это не значит, что это нужно так же копировать, у вас ведь свой модуль Денвер здесь не при чём, ссылкой данные формы не передаются, ссылка лишь передаёт ГЕТ-запрос, вот пример: <a href="/index.php?do=vip&vipcode=pass">click</a> Нажмёте на ссылку и перейдете на нужную вам страницу, т.е. на _http://site.ru/index.php?do=vip&vipcode=pass а на этой странице уже обрабатывайте любым удобным способом ваш ГЕТ-запрос и получайте ваши переменные: $do = vip; $vipcode = pass; П.С. В форме переменные обычно передаются либо методом ПОСТ, либо любым, используя аякс (чтобы не перегружать страницу), если вам нужем именно переход, т.е. перезагрузка страницы, то используйте обычную ссылку, форма здесь не нужна, если вы хотите через аякс передать, либо скрыть передаваемые данные, то используйте форму. Примеров в сети очень много Изменено 1 декабря 2010 пользователем zgr 1 Цитата Ссылка на сообщение Поделиться на других сайтах
blaga 39 Опубликовано: 1 декабря 2010 Рассказать Опубликовано: 1 декабря 2010 (изменено) Автор с сылкой вы немного не поняли мне нужна такая форма где есть одно текстовое поле и кнопка отправить(ссылка) то есть если делать ссылку она должна как то так выглядеть site.ru/index.php?do=vip&vipcode=[значение из текстового поля] Как же я динамически вставлю в ссылку то что в текстовом поле. (можно конечно это сделать на яваскрипт) но не вижу смысла городить огород. Я ведь в тэге формы указал атрибут action="?do=vip" т.е. он должен меня перекинуть после отправки формы на туже страницу с паматрами index.php?do=vip а он меня перекидывает на ту же страницу без параметра т.е. index.php? Изменено 1 декабря 2010 пользователем blaga Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 081 Опубликовано: 1 декабря 2010 Рассказать Опубликовано: 1 декабря 2010 Я ведь в тэге формы указал атрибут action="?do=vip" т.е. он должен меня перекинуть после отправки формы на туже страницу с паматрами index.php?do=vip с чего вдруг? он должен при ?do=vip переводить вас на index.php?do=vip ? Абсолютно неверное понимание, если вы не находитесь на index.php, то вы на нее и не попадете. Для того чтобы попасть на index.php нужно четко указывать action="/index.php?do=vip" 1 Цитата Ссылка на сообщение Поделиться на других сайтах
blaga 39 Опубликовано: 1 декабря 2010 Рассказать Опубликовано: 1 декабря 2010 Автор Для того чтобы попасть на index.php нужно четко указывать action="/index.php?do=vip" прописал точно так как у вас. я так раньше тоже пробовал. ничего не изменилось перекидывает на http://сайт/index.php?vipcode=pass Цитата Ссылка на сообщение Поделиться на других сайтах
zgr 72 Опубликовано: 1 декабря 2010 Рассказать Опубликовано: 1 декабря 2010 (изменено) Для того чтобы попасть на index.php нужно четко указывать action="/index.php?do=vip" прописал точно так как у вас. я так раньше тоже пробовал. ничего не изменилось перекидывает на http://сайт/index.php?vipcode=pass С чего вы вообще взяли, что без перехода по ссылке вас должно перекинуть на какую-то страницу? Я же вам выше написал - нужно перейти по ссылке на нужную страницу, либо написать редирект перехода после выполнения скрипта, например, задать "локейтион" в JS, либо прописать в "хидере" локейтион в php, тогда вас редиректом перебросит, но в вашем случае нужно перейти по ссылке, а в форме action - указывает куда будут отправлены на обработку данные из формы; если 'riby не указан, то данные передаются в эту же самую страницу, т.е. файлу со скриптом php, который сгенерировал текущую страницу. Изменено 1 декабря 2010 пользователем zgr 1 Цитата Ссылка на сообщение Поделиться на других сайтах
blaga 39 Опубликовано: 2 декабря 2010 Рассказать Опубликовано: 2 декабря 2010 Автор мда. действительно, где то я точно затупил. Вопрос решился тем что я в форму добавил <input type="hidden" name="do" value="vip" /> Всем спасибо кто принимал участие в теме! Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.