Не хотите просто, сделаем сложно.
Два файла. Оба на чтение, иной еще и на запись, сравниваем дату, сравниваем значение, полученное после разбиения. Выводим, пишем в файл2, чтобы сравнить при следующем вызове. В какой-то момент файл 2, если надо, можете обнулить (удалить).
Подразумевается, что f2.txt изначально пустой, а f1.txt лежат сообщения:
P.S. У меня скрипт работает корректно. И вроде бы соответствует условию. Если все ок, можете кинуть мне денег на телефон
Все-таки такие вещи лучше решать с bash.
Т.е. сводится к: зашифровать часть get при получении, при отправке/нажатии расшифровать
и длина будет всегда одна.
Вернее сопоставить , а не расшифровть )))
Хотя получается, надо куда-то заносить (бд) все комбинации часть гет запрос => хеш
(Добавление)
Т.е. тогда так. (нижеследующее только рассуждение, может оказаться неверным):
1. Пользователь выбирает города, жмет кнопку.
2. Сочетание заносится в базу в явном виде и через хеширование.
3. Получает ссылку с хешом.
4. Другой пользователь нажимает на ссылку с хешем
5. Попадает на обработчик
6. Обработчик обращается к базе, сравнивает хеш с тем, что ему соответствует
7. Вытаскивает ссылку, редирект.
Но вопрос - что остается в адресной строке.
Длинная ссылка?!
Кстати, на том сайте такого нет, просто короткие имена переменных, если выбрать все ссылка, будет большой.
Мда, как уже сказали выше, обработчик с редиректом в другой файл.
Для хеш придется заиметь базу. Сама ссылка будет не очень длинной, но в адресной строке все равно будет много букв.
Автор предлагает считать кол-во флажков. Можно добавить в ссылку общее число и зашифровать md5
Т.е. мойсайт.ru/map.php?vis=****
Можно получить
мойсайт.ru/map.php?a4114a2de1374cea13be67ed17dfc567=4
При нажатии расшифровывать.
И будет одна длина.
Можно ничего не считать, просто зашифровать/расшифровать
мойсайт.ru/map.php?vis=4114a2de1374cea13be67ed17dfc567
Хотя, конечно, коллизии никто не отменял.
Можно сделать два файла. Файл1 - в нем лежит единственная строка, планировщик читает. Строка выводится, запоминается.
Далее открывается второй файл - Файл2, читается построчно, сравнивается со строкой в памяти.
Если строки совпадают, следующая строка из Файла2 записывается в Файл1 - перезапись.
Цитата:
Спасибо за помощь! Но что то не получается: в результате выполнения скрипта ничего не выводится(
Не для реального использования, для понимания общего смысла. Если будет в базе данных, то цикл, вероятно, не нужен будет, так как по селектору будет подгружаться город с падежами. Т.е. выбрали gorod[], где надо подгрузился gorod[1], gorod[4], и т.д.
Цифрами будет определятся падеж. Даже если мой вариант неудачный, надеюсь, приведет к верному решению:
Вестимо, ассоциативным массивом .
МассивГородПредлПадеж=Массив('Moscow => Москве, "Peter" => 'Петербурге')
Или для одного города все падежи в одном массиве:
Moscow=Массив('Москва, Москву, Москве Москвой')
И так по всем падежам.
Если в селекторе выбран город (я так понимаю, происходит подгрузка или перезагрузка страницы), подставляется массив этого города, а там уже подставляешь падеж.
Т.е. у переменных в тексте должны совпадать переменная с падежом, селектор будет только переключать на нужный массив с городом.
Пост Скриптум.
Даже в частном случае при попытке описать синт. и парад. отношения в лексике любого языка - даже те единицы, которые устоялись - формальным, машинным языком приводят к большим сложностям, обычно решаются только частично. Собственно, тот же семантический, который так и не смогли разработать.
Если данные игрока загружаются из базы, то там стоит завести колонку для каждого игрока - местонахождение. Следовательно читать ее значение при запросе, при переходе перезаписывать, проверять, что игрок не перепрыгнул через три поля, т.е. значение может меняться на + 1.