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 :: Метод POST

 PHP.SU

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


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

> Описание: Отправка скрытых значений методом POST
Nizz
Отправлено: 30 Декабря, 2016 - 09:12:00
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


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




Всем доброго времени суток и с наступающим Новым Годом Улыбка
Ребзи надеюсь поможете в решении делемы, над которой бьюсь уже довольно долго, суть в следующем: делаю интернет корзину для магазина. Хочу передавать параметры о товаре в обработчик методом POST, используя скрытые поля. Но по какой-то причине переменные не передаются в него.
PHP:
скопировать код в буфер обмена
  1.  
  2. function BUY () {
  3.   if ($_SESSION['USER_GROUP'] == 3) {
  4.     $ter = '<form method="POST" action="/buy/boiler" enctype="multipart/form-data">
  5.            <input type="submit" name="buy" value="Купить">
  6.            <input type="hidden" name="id" value="'.$Row['id'].'">///Переменная содержащая id о товаре не передается
  7.            <input type="hidden" name="name" value="'.$_SESSION['module'].'">/// тут данные передаются тк. занес ее в сессию.
  8.            <input type="hidden" name="price" value="'.$Row['price'].'">//// переменная содержащая цену товара
  9.            </form>';
  10.   }
  11.   return $ter;
  12. }
  13.  

Или такое и не должно работать, а передать можно только методом GET ?
 
 Top
Sail
Отправлено: 30 Декабря, 2016 - 10:08:29
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


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




Nizz, или не хватает global $Row;, или параметра в функцию, или забыли session_start, или..., или.., или.
 
 Top
Nizz
Отправлено: 30 Декабря, 2016 - 10:24:40
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


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




С Global не получилось. session_start есть, тк сессия успешно передается
А если судить о корректности данного метода ? Или таким образом не стоит делать ?

(Отредактировано автором: 30 Декабря, 2016 - 10:45:46)

 
 Top
Мелкий Супермодератор
Отправлено: 30 Декабря, 2016 - 10:45:17
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Nizz пишет:
Но по какой-то причине переменные не передаются в него.

А по какой причине должны передаваться?
E_NOTICE как E_NOTICE, undefined variable как undefined variable. Если вы не хотите слушать подсказки языка - то чем вам помогут подсказки людей?


-----
PostgreSQL DBA
 
 Top
Nizz
Отправлено: 30 Декабря, 2016 - 10:50:44
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


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




Мелкий подскажите пожалуйста как сделать ?
 
 Top
Мелкий Супермодератор
Отправлено: 30 Декабря, 2016 - 11:16:07
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Переставить error_reporting в адекватный E_ALL в окружении разработки.
Заодно проверить display_errors, в dev-окружении обязан быть on.

Затем начать изучение программирования ещё раз сначала. В частности внимательно прочитать раздел про области видимости переменных.

Концептуально:
- действие пользователя, изменяющее состояние системы (оформление заказа и прочие действия с покупками как хороший пример) - через GET выполняться никогда не должны. Только методы, предписанные стандартом как изменяющие состояние: post, put, patch, delete. POST как наиболее часто используемый не в API.
- передача цены параметром - плохая идея. Использовать можно, если единственное применение этого параметра - вытянуть актуальную цену из постоянного хранилища, сравнить с пришедшим параметром и выдать пользователю сообщение "вы знаете, цена на этот товар поменялась. Теперь она X". Ни к воем случае нельзя использовать параметр как реальную стоимость товара.
- multipart форма - а зачем? Файл передавать не надо.
- что есть в этом коде магическая циферка 3? Не используйте непонятные циферки в коде. Используйте именованные константы.


-----
PostgreSQL DBA
 
 Top
Nizz
Отправлено: 30 Декабря, 2016 - 13:00:58
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


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




Мелкий Огромное спасибо за ценные советы, буду переписывать учитывая ваши комментарии.
 
 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