Перейти к содержимому


Партнерская программа Kredov

  • Закрытая тема Тема закрыта

Как получить переменные через адресную строку?

#1 legen

legen
  • Пользователь
  • 12 сообщений
  • Репутация: 0
0

Отправлено 29 Июль 2009 - 17:43

Собственно, у меня небольшой вопрос, но со временем их будет здесь больше:) Вопрос такой: что и как нужно настроить в Apache или еще где-то, чтобы при передаче в поле адреса , например вот так: http://www.masterweb...ex.php?name=500, переменные из формы можно было получить в *.php файле по обращению $name, а? А то в Котерове так написано, а у меня не работает.

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Как считать адрес из адресной строки
  2. Ссылки в адресной строке русскими буквами
  3. .htaccess как при переходе на /main.php отображать в адресной строке /main/
  4. При передаче переменной методом post через форму она пустая
  5. Проблема с адресной строкой

#2 legen

legen
    Topic Starter
  • Пользователь
  • 12 сообщений
  • Репутация: 0

Отправлено 29 Июль 2009 - 17:48

То есть чтобы было вот так:

<html><body>
<form action=hello.php>
Введите имя: <input type=text name="name" value="Неизвестный"><br>
Введите возраст: <input type=text name="age" value="неопределенный"><br>
<input type=submit value="Нажмите кнопку, чтобы запустить сценарий!">
</form>
</body></html>
ввожу данные в форму, а получае ответ в hello.php :
<html><body>
<?

echo "Привет, $name!<br> Я знаю, Вам $age лет!";
?>
</html></body>

Отсылаю вот так:
http://localhost/hel...?name=sd&age=sd
а получаю:
Привет, !
Я знаю, Вам лет!


  • 0

#3 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 29 Июль 2009 - 18:18

<? 
echo "Привет, ".$_GET['name']."!<br> Я знаю, Вам ".$_GET['age']." лет!";
?>

  • 0

#4 phpuser

phpuser
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 29 Июль 2009 - 20:18

Я б лучше так бы замутил!

<?
if (issset($_GET['name'])) {$name = $_GET['name'];}
if (issset($_GET['age'])) {$age = $_GET['age'];}
echo "Привет $name!<br> Я знаю, Вам $age лет!";
?>


  • 0
Вникаю в тему создания сайтов...


#5 phpuser

phpuser
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 29 Июль 2009 - 20:24

Дело в том что проблема может быть в хосте. Короче не буду лишний раз забивать голову, а просто напишу.
В перед тем как использовать переменные которые были переданы методом GET и POST необходимо в начале документа прописать:
if (isset($_GET['name'])) {$name = $_GET['name'];}

У меня в начале изучения PHP с этим было много проблем!


  • 0
Вникаю в тему создания сайтов...


#6 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 29 Июль 2009 - 23:48

Я б лучше так бы замутил!

в этом конкретнмо случае вообще нет разницы, проверять существует такая переменная или нет. Только лишние буквы...

Дело в том что проблема может быть в хосте.

если registr_global=on то переменные можно применять без $_GET['var'] или $_POST['var'], просто $var. Но это не безопастно, поэтмоу гораздо лучше когда registr_global=off
  • 0

#7 legen

legen
    Topic Starter
  • Пользователь
  • 12 сообщений
  • Репутация: 0

Отправлено 30 Июль 2009 - 09:58

Евгений спасибо, как раз то что хотел узнать! Именно про registr_global=on.
phpuser так конечно можно :) но суть не изменится)
  • 0

#8 legen

legen
    Topic Starter
  • Пользователь
  • 12 сообщений
  • Репутация: 0

Отправлено 30 Июль 2009 - 10:04

Еще такой вопрос возник: а как тогда получить значения переменных окружения QUERY_STRING и REMOTE_USER , если registr_global=off ? Таким способом не получается: $_GET['QUERY_STRING'] или $_POST['QUERY_STRING']...
  • 0

#9 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 30 Июль 2009 - 11:01

legen, а точно REMOTE_USER, а не REMOTE_ADDR?

вообще вот так
$_SERVER['QUERY_STRING']
$_SERVER['REMOTE_ADDR']


вот тут все подробно
:)
  • 0

#10 legen

legen
    Topic Starter
  • Пользователь
  • 12 сообщений
  • Репутация: 0

Отправлено 30 Июль 2009 - 15:06

REMOTE_ADDR - ты прав, да и не я сам придумал - из котерова взял).
Благодарю за ссылку :)
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru