1. Вот есть у меня форма на странице. Допустим action сам на себя. Если не прописывать дополнительных условий, то при нажатии F5 - скрипт обработки формы загрузиться снова.
Вопрос такой: что лучше использовать?
Я пробовал и редирект (сам на себя) в конце обработки формы (чтобы данные по F5 снова не приходили).
Пробовал задавать еще одно скрытое поле в форму, куда генерировал случайное число, которое также записывалась в куку и при обработке, если кука совпадает с постом то происходит обработка.
Может есть более логичный способ?
И еще есть ли разница - указывать в action "#" или прямой путь на эту же страницу?
2. И второй вопрос по массиву. Допустим я попадаю на страницу, где в $_GET у меня записан какой-то ID. Есть массив с кучей ID. Мне нужно сначала вывести элемент из массива, с ID из $_GET, а потом все остальные элементы.
Вопрос: Мне нужно 2 раза цикл с условиями запускать? Или есть более рациональное решение?
(Добавление)
Кстати по второму варианту последнее время использую такой метод:
Форич по массиву - если ГЕТ совпадает с ИД, то записываю в переменную $first, иначе в $second, а в конце вывожу $first.$second
Есть еще варианты решения подобной задачи?
1. NeuroZ - 24 Сентября, 2013 - 10:37:09 - перейти к сообщению
2. esterio - 24 Сентября, 2013 - 10:55:14 - перейти к сообщению
1. конешно редирект самого на себя спасает от повторной отправкы формы. Action можно и не укахивать(тогда браузер отправить на тот же УРЛ), хотя помню один житель форума писал что ето не по стандарту и указивать надо всегда(REQUEST_URI)
Насчет hidden-поля, то так делают для защиты от CSRF(совершение действия от имени пользователя) или же проверяют HTTP_REFERER(как у DeepVarvar-а CMS)
2. ничего не понятно, уточните вопрос. Желательно с примером кода
Насчет hidden-поля, то так делают для защиты от CSRF(совершение действия от имени пользователя) или же проверяют HTTP_REFERER(как у DeepVarvar-а CMS)
2. ничего не понятно, уточните вопрос. Желательно с примером кода
3. NeuroZ - 24 Сентября, 2013 - 11:21:05 - перейти к сообщению
По второму вопросу:
Есть ссылка вида index.php?item=3
На странице index.php есть многомерный массив
Есть ссылка вида index.php?item=3
На странице index.php есть многомерный массив
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- [0] (
- [var] => 1
- [item] => 1
- )
- [1] (
- [var] => 412
- [item] => 2
- )
- [2] (
- [var] => dasd
- [item] => 3
- )
- [3] (
- [var] => caxa
- [item] => 4
- )
*ну не помню я как массивы правильно писать)) но смысл думаю ясен
Выводятся все элементы, но элемент с item = 3 нужно вывести первым, а затем остальные.
(Добавление)
Вариант:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $firstItem = $secondItem = '';
- foreach ($myArr as $key => $arr) {
- if ($_GET['item'] == $arr['item']) $firstItem = $arr;
- else $secondItem .= $arr;
- }
- echo $firstItem.$secondItem
(Добавление)
$arr = допустим HTML строка в перемешку с элементами массива
(Добавление)
Вопрос в том, что мб существуют какие-нибудь функции, которые позволят напрямую обратиться к родительскому элементу, зная значение его дочернего элемента?