| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > помогите пожалуйста разобраться с session |
| Автор: Elina 6.12.2005, 13:19 | ||||||
| Доброго времени суток, помогите пожалуйста разобраться написала простую программу голосования которая состоит из 3 файлов 1 файл - вход - надо ввести id 2 файл -вопросы и кнопка
3 файл -сообщение об выходе
[/code] вопрос как сделать так чтобы после перехода на 3 файл нельзя было вернуться назад ни на 1-ый ни на 2-ой даже после
ни id ни lots не стираются и можно вернуться назад и на тот же id проголосовать ещё раз |
| Автор: -=Ustas=- 6.12.2005, 13:23 |
| Покажи как у тебя регистрируются пеменные сессии. |
| Автор: Guest 6.12.2005, 13:46 | ||||||
2 файл -вопросы и кнопка
3 файл -сообщение об выходе
первый раз работаю с сесией и вообще первая моя программа если я не ошибаюсь регистрируются пеменные так
|
| Автор: Elina 6.12.2005, 13:50 | ||||||
| забыло написать имя 2 файл -вопросы и кнопка
session_start(); $id = $HTTP_POST_VARS['id']; [b]$_SESSION['lots'] = $lots ;/b] [/code] 3 файл -сообщение об выходе
первый раз работаю с сесией и вообще первая моя программа
если я не ошибаюсь регистрируются пеменные так |
| Автор: z-END 6.12.2005, 13:55 | ||||
может стоит запретить кэширование страницы?
|
| Автор: Elina 6.12.2005, 14:13 | ||
добавила в 3-ий файл и выдаёт Warning: Cannot modify header information - headers already sent by (output started at /exitbye.php:5) |
| Автор: z-END 6.12.2005, 14:17 |
| это надо вставлять в самый верх скрипта т.е. до того момента пока не производился вывод информации. |
| Автор: Elina 6.12.2005, 14:50 |
| перенесла вверх не кричит но по прежнему есть возможность возращаться назад |
| Автор: z-END 6.12.2005, 15:33 | ||
а на всех страницах?! |
| Автор: Elina 6.12.2005, 15:56 |
| да на всех страницах но всё равно можно переходить вперёд и назад что делать |
| Автор: Dave 6.12.2005, 17:17 | ||||
для того чтобы нельзя было вернуться на 1 и 2 страницу значит нужно сделать проверку чего то на этих страницах, если чего то нет значит не пускать. Т.е. в начале работы твоей системы заведи в сессии переменную, флаг, присвой ей значение, например 1, а в конце присвой ей значение 0, там где надо проверяй , если 1 то пускаем на страницу, если 0 то не пускаем. Все просто.
отлаживать. Выводи на экран все данные и смотри что не так. |
| Автор: Elina 7.12.2005, 11:57 |
| спасибо попробывала завела флаг ,но дело втом что при переходе назад впрёд не загружется файл занова (следовательно нет возможности для проверок ) а загружается уже использованный(с выбранным ответом) как от этого избавиться ? |
| Автор: z-END 7.12.2005, 12:03 | ||
1. запретить кэширование (Как показано выше) 2. использовать проверку флага (как сказал Dave) если это не работет значит где-то глюк.. |
| Автор: Elina 7.12.2005, 12:40 | ||
где искать глюк. |
| Автор: Dave 7.12.2005, 13:58 | ||
А можно попросить у вас кусок кода который проверят флаг ? Мне интересно что вы делаете в случае если флага нет или он невалидный. Elina, вы продумали что должно быть если человек пытается зайти на запрещенную страницу ? |
| Автор: Elina 7.12.2005, 14:44 | ||||
| index.php
entry.php
|
| Автор: Dave 7.12.2005, 15:37 | ||||
| entry.php нерабочий, parse error на линии 44. рабочий пример ускорит процесс. но , по ходу, напиши что у тебя не получается в этом скрипте. насколько я понимаю, в этом месте (у тебя там 2 таких места):
ты отображаешь index.php вместо entry.php, в этом случае нужно делать не include а redirect на этот скрипт (index.php), в этом тебе поможет функция header, вот пример из мануала
у тебя есть мануал по php ? рекомендую ман в виде chm файла, там есть поиск, очень удобно. |
| Автор: Elina 8.12.2005, 11:42 | ||||||
index.php
entry.php
в принципе это весь код |
| Автор: PARROT 8.12.2005, 11:48 |
| Elina , пора уже зарегистрироваться на Нашем Форуме. Это займет минуту, зато преимуществ море! |
| Автор: Elina 8.12.2005, 12:24 |
| уже зарегистрировалась хотела бы получить мануал по php ,где он находиться изменила include на header("Location: index.php"); спасибо |
| Автор: PARROT 8.12.2005, 12:56 |
| тут книги и мануалы: http://forum.vingrad.ru/index.php?showtopic=34297 |
| Автор: starmaster 8.12.2005, 15:01 |
| К слову: есть ещё такая замечательная технология Remote Scripting, одна из замечательнейших её сторон - это то, что она не захламляет history, что в вашем случае и нужно. |
| Автор: Elina 8.12.2005, 15:16 | ||
| почитала про кэширование но
не помогает ,не знаю и что делать Добавлено @ 15:17 можно пример с Remote Scripting |
| Автор: Dave 8.12.2005, 15:31 | ||||||
| Elina, Вот пример с запрещенной страницей: page1.php
page2.php
page3.php
в первом скрипте заводим флаг в сессии, во втором, показываем форму если есть флаг, иначе редирект на первый скрипт. в третьем : показываем результат и уничтожаем флаг. |
| Автор: Elina 8.12.2005, 16:44 |
| попробывала вот что происходит из page1.php попадаю(при верном пароле) на page2.php потом на page3.php на этом голосование должно быть законченно но потом возвращаюсь из page3.php на page2.php потом на page1.php и вот когда дохожу до page1.php нет возможности перейти на page2.php (даже при верном пароле ) даёт возращаться назад но не вперёд наверное где то теряется значение |
| Автор: Dave 8.12.2005, 18:10 | ||
Я так понимаю скрипт ты изменила. если что не получается то выводи все данные на экран и смотри в каком месте значение теряется и почему теряется. |