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
Форумы портала PHP.SU :: Версия для печати :: Запись в переменную $_POST
Форумы портала PHP.SU » PHP » Программирование на PHP » Запись в переменную $_POST

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

1. polka - 05 Июня, 2008 - 17:42:00 - перейти к сообщению
Подскажите можно ли добавить и перезаписать переменную в глобальный массив $_POST ?
2. scuter - 05 Июня, 2008 - 18:14:02 - перейти к сообщению
где то можно где то нет,
у меня как то раз глюки пошли когда я начал менять эту переменную.
3. EuGen - 05 Июня, 2008 - 18:20:45 - перейти к сообщению
Переопределять суперглобальный массив $_POST, называя в своем скрипте таким именем переменную, думаю, не стоит. Ну, не вижу ни одной объективной причины к этому.
Добавить же элемент туда можно, или переопределить уже имеющийся. Только вот опять же смысл этого действия непонятен - в этом массиве ведь лежат данные, пришедшие от пользователя.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $_POST['var_name']="your value";
  4. ?>
  5.  
4. olegworknet - 05 Июня, 2008 - 23:33:59 - перейти к сообщению
Нет, так не работает. Постараюсь объяснить побробней. (Я зашел под другим пользователем но фиктически все тот же Polka) Есть две страницы №1, №2 и №3. на странице №1 переменной $i присваивается значение и отправляется на №2. в зависимости от значения пременной $i выполняется то или иное действие и преход на страницу №3. для того чтобы вернуться на предыдущую страницу необходимо в странице №3 присвоить нужное значение $i и тогда совершить переход на страницу №2.


Пока ничего из предложенных учебниками и Вами не работает. может что-то другое нужно сделать? заранее спасибо!
5. RomAndry - 06 Июня, 2008 - 09:05:12 - перейти к сообщению
6. Гость - 20 Июня, 2008 - 16:10:22 - перейти к сообщению
Можно!!!

Вставьте в одно место следующий код
(ФОРМА ВСПОМОГАТЕЛЬНАЯ ,ЕЕ НЕ БУДЕТ ВИДНО):
CODE (text):
скопировать код в буфер обмена
  1. echo '
  2. <form action="'.$_SERVER['PHP_SELF'].'" method="POST" target="_top"
  3. style="display:none" name="secret_form">
  4. <input type="hidden" name="my_var_name1" value="'.$my_var_name1.'">
  5. <input type="hidden" name="my_var_name2" value="'.$my_var_name2.'">
  6. <input type="hidden" name="my_var_name3" value="'.$my_var_name3.'">
  7. </form>
  8. ';

А в том месте, где нужна ссылка, вставьте этот код:
CODE (text):
скопировать код в буфер обмена
  1. echo '
  2. <a href="#" onClick="secret_form.submit()">Ссылка на этот же скрипт с передачей переменной</a>
  3. ';

Внимание!!! Если Вы вдруг делаете сайт с поддержкой глючного Firefox, то форму придется следать видимой - Убрать параметр style="display:none" (Иначе этот кривой браузер зависнет!) Но ничто не запрещает делать форму невидимой другими способами (Например, засунуть в DIV с положением -300;-300)
7. valenok - 20 Июня, 2008 - 17:50:09 - перейти к сообщению
Сказали же
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $_POST['var_name']="your value";
  3. ?>
8. Гость - 20 Июня, 2008 - 19:30:06 - перейти к сообщению
Ээээ...
Извините, но автор имел в виду именно то что сказал я

Цитата:
Есть две страницы №1, №2 и №3. на странице №1 переменной $i присваивается значение и отправляется на №2. в зависимости от значения пременной $i выполняется то или иное действие и преход на страницу №3. для того чтобы вернуться на предыдущую страницу необходимо в странице №3 присвоить нужное значение $i и тогда совершить переход на страницу №2.


Вы меня конечно извините, но если переменной $_POST['somevar'] присвоить "someval" и ПЕРЕЙТИ на другую страницу (Что явно сказано в цитате), то это значение не сохранится.

Все значения $_GET и $_POST НЕ сохраняются из скрипта в скрипт... Они явно передаются в запросах (И ТОЛЬКО В ЗАПРОСАХ):
CODE (text):
скопировать код в буфер обмена
  1. GET /somepage.php?a=a&b=b&c=c HTTP/1.1
  2. Host: somehost.somedomain

CODE (text):
скопировать код в буфер обмена
  1. POST /somepage.php HTTP/1.1
  2. Host: somehost.somedomain
  3.  
  4. A=a
  5. B=b
  6. C=c
9. EuGen - 20 Июня, 2008 - 21:11:37 - перейти к сообщению
Ну а Вы как думаете?.. Автор просил присвоить переменной из $_POST значение - оно и было представлено. А про переход по скриптам никто и не упоминал.
Все от неточной постановки вопроса. В скрипте - да, как я сказал. А может, надо сделать POST-запрос? И тогда автору нужно было бы посоветовать curl. А может, он хочет воспользоваться технологией AJAX? Тогда - соответствующие ссылки.
Но у нас на форуме, к сожалению, телепаты отсутствуют. И поэтому посоветовали исходя из того, что было в вопросе.
10. Гость - 20 Июня, 2008 - 22:07:37 - перейти к сообщению
Цитата:
Все от неточной постановки вопроса. Но у нас на форуме, к сожалению, телепаты отсутствуют

Очень точно подмечено
Цитата:
И тогда автору нужно было бы посоветовать curl. А может, он хочет воспользоваться технологией AJAX?

Да уж точно

Но, согласитесь пожалуйста, что мой вариант - тоже решение
11. kamikadze - 20 Июня, 2008 - 23:37:45 - перейти к сообщению
Хм + автору топика посоветовали воспользоватся сессиями, что вероятно облегчело бы его нелегкий труд Подмигивание
12. Gal_Sergey - 05 Октября, 2008 - 23:49:26 - перейти к сообщению
JustUserR пишет:
Вы меня конечно извините, но если переменной $_POST['somevar'] присвоить "someval" и ПЕРЕЙТИ на другую страницу (Что явно сказано в цитате), то это значение не сохранится.

Все значения $_GET и $_POST НЕ сохраняются из скрипта в скрипт... Они явно передаются в запросах (И ТОЛЬКО В ЗАПРОСАХ)

Я вот тоже столкнулся с проблемой, что не могу прочитать массив $_POST. Вот еще цитата с http://php.su/learnphp/vars/?reserved
Переменные HTTP POST доступны внутри пользовательских функций. То есть вам не нужно объявлять суперглобальные переменные глобальными внутри пользовательских функций, делая что-то вроде этого: global $_POST. Что эта цитата не соответствует действительности?
13. valenok - 06 Октября, 2008 - 08:45:22 - перейти к сообщению
Переменные HTTP POST видимо автор имел в виду обращение к ним как к
HTTP_POST_VARS. В любом случае статья утарела.
14. Gal_Sergey - 06 Октября, 2008 - 22:48:06 - перейти к сообщению
Я говорю не за правильность написания HTTP_POST_VARS, а именно за $_POST. Ну вот я пишу БД, и для обработки форм использовал $_REQUEST в цикле foreach. Было все нормально. Но если поменять только лишь $_REQUEST на $_POST, то $_POST не читается. Хотя казалось бы тоже всё должно работать??? Непонял!
15. valenok - 06 Октября, 2008 - 23:25:23 - перейти к сообщению
значит данные передаются другим методом.
print_r($_POST);print_r($_REQUEST);print_r($_GET);

 

Powered by ExBB FM 1.0 RC1