Скрытие переменных get - PullRequest
       1

Скрытие переменных get

3 голосов
/ 04 сентября 2010

У меня есть URL, который создан с использованием переменных get, таких как

location.href = this.href +'?type='+ escape($('#type_of_station').html()) + '&count='+ escape($('.number_changer').attr("id").slice(-1));

, который дает мне URL-адрес, подобный следующему

http://posnation.com/pre_config/pre_config_step_2.php?type=Grocery&count=2 

на следующей странице я получаю переменные через PHP

<p id="type_of_station" class="text left"><?php $_GET['type'] != "" ? print str_replace("_", " ", $_GET['type']) : print "Food Pos System" ?></p>

Это прекрасно работает, но URL довольно уродлив. Есть ли способ, возможно, скрыть это и по-прежнему иметь переменные get, доступные мне на следующей странице

Ответы [ 4 ]

3 голосов
/ 04 сентября 2010

Чтобы URL хорошо выглядел, это одно.
Чтобы скрыть URL-адрес данных это другое. Никогда ничего не скрывай. Или вы сделаете ваш сайт непригодным для использования.

2 голосов
/ 04 сентября 2010

Вы хотите отправить свои переменные на сервер, а не отправлять их как запросы GET.

В PHP вы можете получить доступ к переменным POST-ed с помощью переменной $ _POST.

Простая форма:

form.php

<form action="process.php" method="POST">
   username: <input type="text" name="username" value="" /><br/>
</form>

POST-ed 'username' может быть доступен в файле process.php с помощью

process.php

echo $_POST['username'];

В отличие от запросов GET, значения, отправленные на сервер, не отображаются в URL.

0 голосов
/ 03 июля 2014

Я упал на ваш пост о поиске решений именно для этой проблемы ... - и даже это поздний ответ, может быть, он кому-нибудь поможет:

Для моего использования я получил простое решение:

Просто добавьте в ваш файл index.php после запуска php-сессии следующую строку:

if(isset($_GET))
{
header("Location:index.php");
$_SESSION['relink'] = $_GET;
}

У вас будет любое значение GET в переменной SESSION ['relink']. А затем вы перенаправляете в файл index.php. Там будут любые видимые следы в вашем браузере адрес. После этого вы можете проверить любое значение массива перед его использованием. Но по крайней мере ваш адрес браузера ЧИСТЫЙ!

0 голосов
/ 04 сентября 2010

Либо используйте $_POST вместо $_GET, либо сохраните их в сеансе и перейдите на следующую страницу.

EDIT: То есть, если вы действительно хотите полностью скрыть переменные.Как советуют другие: лучше использовать mod_rewrite, чтобы он выглядел лучше, не скрывая данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...