Не знаете, как обращаться с Query String при отправке формы - PullRequest
0 голосов
/ 18 марта 2012

Если вы зайдете на этот веб-сайт: http://www.lodgeatjh.com, и заполните онлайн-форму книги и нажмете «Проверить наличие», я получу следующую строку запроса:

http://www.secure-res.com/res/vn4/avail.aspx?hotelid=3687&checkindate=3/17/2012&nights=3&rooms=1&adults=1&children=0&childrenages=&trr=6FFFFFD8E9AC12&culture=1&culturename=en-US&wtpid=1

Теперь япридется воссоздать этот сайт с пользовательской темой и поместить его в WordPress.Я понимаю, что строка запроса изменяет значения в зависимости от того, что клиент решит выбрать.Однако мой строковый запрос не соответствует приведенному выше.

Вот моя форма:

<form id="form" method="GET" target="_blank" action="/res/vn4/avail.aspx?">

            <input type="hidden" name="hotelid" value="3687" />

            <label id="checkin">Check-in Date:</label>
            <input type="text" name="checkindate" id="datepicker" value="<?php echo $date; ?>" size="10" />

           <!--<img src="<?php bloginfo('template_url'); ?>/images/calendar.gif" border="0" width="22" height="19" alt="calendar" />-->
            &nbsp;
            &nbsp;
            <label id="nights">Nights:</label>
            <select name="nights" id="nights">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
                <option value="10">10</option>
                <option value="11">11</option>
                <option value="12">12</option>
                <option value="13">13</option>
                <option value="14">14</option>
            </select>
            &nbsp;
            &nbsp;
             <label id="rooms">Rooms:</label>
            <select name="rooms" id="rooms">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
            </select>
            &nbsp;
            &nbsp;
            <label id="adults">Adults:</label>
            <select name="adults" id="adults">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
            </select>
            &nbsp;
            &nbsp;
            <label id="children">Children:</label>
            <select name="children" id="children">
                <option value="0">0</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
            </select>
            <input type="hidden" name="childrenages" value="" />
            <input type="hidden" name="hotelid" value="3687" />
            <input type="hidden" name="trr" value="BFFFFFD8EA3772" />
            <input type="hidden" name="culture" value="1" />
            <input type="hidden" name="culturename" value="en-US" />
            <input type="hidden" name="wtpid" value="1" />
            &nbsp;
            &nbsp;
            <input type="submit" id="submit" value="Check Availability" />
        </form>

Вопросы:

  1. Когда я загружаю этовеб-сайт на свой сервер, в атрибуте действия я помещаю "/res/vn4/avail.aspx?"?

  2. Чтобы получить последнюю часть строки запроса (children = 0 & childrenages = & trr = 6FFFFFD8E9AC12 & culture = 1 & culturename = en-US & wtpid = 1), мне нужно использовать поля вводас type = "hidden" и установить его значения на то, что он должен быть, правильно?Должен ли я оставлять значение childrenages пустой строкой (), поскольку в исходной строке запроса (childrenages = &) значение равно нулю?

  3. Когда я проверяю свою форму на локальном компьютере икогда я нажимаю «Проверить доступность», в строке запроса я не получаю checkindate = 3/17/2012, но получаю что-то вроде checkin = 3% 2F17% 2F2012.Обратите внимание, что я использую jquery datepicker для поля регистрации.Я понимаю, что% 2F представляет косые черты, но я должен оставить это так, или я должен изменить его на косые черты?Как изменить% 2F на косую черту?Я посмотрел онлайн и не смог найти ответ.Я попытался использовать синтаксис PHP urldecode, и он не сработал так хорошо.Возможно, это я, я не знаю, как его использовать.

Извините, если я задаю все эти вопросы!Я впервые сталкиваюсь с такой ситуацией.Я никогда не делал ничего подобного, и я рад, что наткнулся на это, чтобы я мог узнать больше вещей.

Заранее спасибо!

1 Ответ

0 голосов
/ 18 марта 2012

Q1. Когда я загружаю ...?

A1. Не совсем. Оставьте «?». Вы, вероятно, хотите, чтобы расширение .php для вашего скрипта не было .aspx, в противном случае при стандартных настройках сервера оно, скорее всего, не будет проходить через анализатор php при его обслуживании.

Q2. Для того, чтобы я получил ...?

A2. Используйте скрытые поля ввода для любых фиксированных параметров, которые необходимо иметь в скрипте util, но которые пользователь не должен вводить или изменять. Значения скрытых полей обычно записываются в HTML скриптом, который генерирует страницу, на которой находится форма, но в некоторых случаях может быть динамически вставлен на стороне клиента (посредством javascript). Для нулевого значения установите value="" в HTML. Убедитесь, что скрипт vend.php правильно обрабатывает нулевые и отсутствующие параметры.

Q3. Когда я проверяю свою форму ...

A3. Кодирование URL выполняется браузером, чтобы предотвратить использование других недопустимых символов в URL. Клиентская сторона заботится о себе. На стороне сервера в PHP суперглобальные переменные $ _GET и $ _REQUEST уже декодированы по URL. Не повторяйте urldecode (), иначе могут возникнуть непредвиденные / опасные результаты (см. Предупреждение здесь ).

Другое дело, вы не хотите, чтобы hotelid в форме дважды.

...