method="get" что-то не работает

yaushev
На сайте с 02.11.2012
Offline
27
629

Здравствуйте. Я не шибко опытный программист, все достигаю методом тыка. Подскажите где я ошибся!

Форма:


<form method="get" action="{http://site.ru/vasya-pupkin.html}" target="_blank">
<input type="hidden" name="srok" value="20" />
<input type="hidden" name="salary" value="15000" />
<input type="hidden" name="from-cost" value="150000" />
<input type="submit" value="тык" /></form>

В итоге идет передача, к ссылке успешно добавляется все что нужно:

http://site.ru/vasya-pupkin.html?srok=20&salary=15000&from-cost=150000

Далее пытаюсь вытянуть эти данные:

через

$_GET['from-cost']

$_GET['srok']

$_GET['salary']

Но выходит плохо, данные не вытягиваются. Где косячу? Самого смущает сочетание *.html?srok=20&salary=15000&from-cost=150000 - но разве это проблема?

Malcolm
На сайте с 02.05.2007
Offline
119
#1

Страница /vasya-pupkin.html это реальная html-страница или адрес, сформированный ЧПУ? Если ЧПУ, то он и режет лишние GET параметры, скорее всего.

В любом случае вывод phpinfo(INFO_VARIABLES) в месте, где вы пытаетесь получить эти параметры, поможет разобраться.

yaushev
На сайте с 02.11.2012
Offline
27
#2
Malcolm:
Страница /vasya-pupkin.html это реальная html-страница или адрес, сформированный ЧПУ? Если ЧПУ, то он и режет лишние GET параметры, скорее всего.
В любом случае вывод phpinfo(INFO_VARIABLES) в месте, где вы пытаетесь получить эти параметры, поможет разобраться.

Да, это ЧПУ. Попробую поколдовать.

---------- Добавлено 24.06.2014 в 08:58 ----------

Так и есть. ЧПУ режет. Как быть? Где копать? CMS DLE.

M
На сайте с 26.11.2008
Offline
51
#3

Как вариант передавать параметры не в страницу ЧПУ, а в реальный скрипт.

Я так понимаю смысл в том, что у вас есть страница на сайте, куда вы хотите передать эти параметры

Веб программирование, создание плагинов под любые CMS, разработка сайтов с нуля, помочь в настройке хостинга и переездах, очистка от вирусов и другие услуги для ваших проектов (http://www.maxgal.com)
yaushev
На сайте с 02.11.2012
Offline
27
#4
maxgal:
Как вариант передавать параметры не в страницу ЧПУ, а в реальный скрипт.

Я так понимаю смысл в том, что у вас есть страница на сайте, куда вы хотите передать эти параметры

Да, смысл в этом.

Код php у меня прописан прямо в шаблоне DLE *tpl. Что по сути можно вынести в отдельный php файл и инклудом подцепить.

В скрипт - это методом post? Если не затруднит, приведите простейший пример.

Заранее благодарен.

M
На сайте с 26.11.2008
Offline
51
#5
yaushev:
Да, смысл в этом.
Код php у меня прописан прямо в шаблоне DLE *tpl. Что по сути можно вынести в отдельный php файл и инклудом подцепить.
В скрипт - это методом post? Если не затруднит, приведите простейший пример.
Заранее благодарен.

Я с DLE не особо, не знаю как у них tpl файлы разбираются, возможно что впихнуть туда код не выйдет, поскольку в момент отображения страницы весь лишний код вырезается обработчиком

Но попробуйте так

В отдельный файл впихните ваш код пхп

Например,

<?php

if(isset($_GET['my_parametr']))
{
//ok, do something
}

В самом tpl файле код

<?php require_once('my_file.php'); ?>

Но поскольку DLE эта обычная CMS с модульной системой, проще модуль забацать наверн, а не изворачиваться с обработчиком.

Плюс придется в htaccess добавить правило исключение, т.е. чтобы переданные параметры не вырезались при формировании ЧПУ.

Там где GET должно быть GET['my_parametr']

VHS
На сайте с 28.09.2007
Offline
142
VHS
#6

В скрипт - значит action заменить на реальный адрес скрипта.

Либо post в ЧПУ адрес.

Правда что там цмска может подрезать в процессе работы - я не знаю, надо смотреть.

siv1987
На сайте с 02.04.2009
Offline
427
#7

К реврайту статических страниц, или как там они называются в деле, добавить флаг QSA.

RewriteRule … [L,QSA]

yaushev
На сайте с 02.11.2012
Offline
27
#8
siv1987:
К реврайту статических страниц, или как там они называются в деле, добавить флаг QSA.
RewriteRule … [L,QSA]

Спасибо, три символа, а сотворили чудо.

Вопрос решен, всем спасибо кто откликнулся.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий