Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отправка данных и F5 | Перемешивание элементов массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: 2 вопроса - 2 совета
NeuroZ
Отправлено: 24 Сентября, 2013 - 10:37:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 393
Дата рег-ции: Апр. 2012  


Помог: 2 раз(а)




1. Вот есть у меня форма на странице. Допустим action сам на себя. Если не прописывать дополнительных условий, то при нажатии F5 - скрипт обработки формы загрузиться снова.

Вопрос такой: что лучше использовать?
Я пробовал и редирект (сам на себя) в конце обработки формы (чтобы данные по F5 снова не приходили).
Пробовал задавать еще одно скрытое поле в форму, куда генерировал случайное число, которое также записывалась в куку и при обработке, если кука совпадает с постом то происходит обработка.
Может есть более логичный способ?
И еще есть ли разница - указывать в action "#" или прямой путь на эту же страницу?

2. И второй вопрос по массиву. Допустим я попадаю на страницу, где в $_GET у меня записан какой-то ID. Есть массив с кучей ID. Мне нужно сначала вывести элемент из массива, с ID из $_GET, а потом все остальные элементы.

Вопрос: Мне нужно 2 раза цикл с условиями запускать? Или есть более рациональное решение?
(Добавление)
Кстати по второму варианту последнее время использую такой метод:
Форич по массиву - если ГЕТ совпадает с ИД, то записываю в переменную $first, иначе в $second, а в конце вывожу $first.$second

Есть еще варианты решения подобной задачи?
 
 Top
esterio
Отправлено: 24 Сентября, 2013 - 10:55:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1. конешно редирект самого на себя спасает от повторной отправкы формы. Action можно и не укахивать(тогда браузер отправить на тот же УРЛ), хотя помню один житель форума писал что ето не по стандарту и указивать надо всегда(REQUEST_URI)
Насчет hidden-поля, то так делают для защиты от CSRF(совершение действия от имени пользователя) или же проверяют HTTP_REFERER(как у DeepVarvar-а CMS)
2. ничего не понятно, уточните вопрос. Желательно с примером кода
 
 Top
NeuroZ
Отправлено: 24 Сентября, 2013 - 11:21:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 393
Дата рег-ции: Апр. 2012  


Помог: 2 раз(а)




По второму вопросу:
Есть ссылка вида index.php?item=3
На странице index.php есть многомерный массив
PHP:
скопировать код в буфер обмена
  1. [0] (
  2. [var] => 1
  3. [item] => 1
  4. )
  5. [1] (
  6. [var] => 412
  7. [item] => 2
  8. )
  9. [2] (
  10. [var] => dasd
  11. [item] => 3
  12. )
  13. [3] (
  14. [var] => caxa
  15. [item] => 4
  16. )

*ну не помню я как массивы правильно писать)) но смысл думаю ясен

Выводятся все элементы, но элемент с item = 3 нужно вывести первым, а затем остальные.
(Добавление)
Вариант:
PHP:
скопировать код в буфер обмена
  1. $firstItem = $secondItem = '';
  2. foreach ($myArr as $key => $arr) {
  3. if ($_GET['item'] == $arr['item']) $firstItem = $arr;
  4. else $secondItem .= $arr;
  5. }
  6. echo $firstItem.$secondItem

(Добавление)
$arr = допустим HTML строка в перемешку с элементами массива
(Добавление)
Вопрос в том, что мб существуют какие-нибудь функции, которые позволят напрямую обратиться к родительскому элементу, зная значение его дочернего элемента?

(Отредактировано автором: 24 Сентября, 2013 - 11:30:15)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB