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


Фотография

Искажение запроса к сервесу через переменную


  • Пожалуйста, авторизуйтесь для ответа.
5 ответов в данной теме

#1 Пользователь amsokol (WMID 399583474831 )

  • Группа: Пользователи
  • сообщений 8
  • Регистрация: 29-мая 10
  • МестоположениеРоссия
  • Webmoney BL

Отправлено 29 мая 2010 - 02:02

Здравствуйте учасники форума.
Сейчас я пишу сайт на который требуется авто перевод денег, но у меня возникла небольшая проблемка,
На сервес мерчанта(в тестовом режиме) через переменную я переправляю некую информацию, которая необходимо получить в Resulturl,
для дальнейшей записи этой информациив базу данных.
Точнее что я передаю и что получаю в ответ:
в форме передаётся переменная
$urlsite='http://определённый сайт/index.php?r=admin'
, а в ответ за место символа "?" приходит символ "%" т.е
$urlsite='http://определённый сайт/index.php%r=admin'
Подскажите пожалуйста как избежать избежать этого искажения?
    • 0
  • Наверх

#2 Знаток 632584157120 (WMID 632584157120 )

  • Группа: Модераторы
  • сообщений 1 797
  • Регистрация: 29-ноября 09
  • МестоположениеКZ
  • Webmoney BL

Отправлено 29 мая 2010 - 03:06

Что будет меняться каждый раз в $urlsite='http://определённый сайт/index.php?r=admin'?

    • 0
  • Наверх

#3 Пользователь amsokol (WMID 399583474831 )

  • Группа: Пользователи
  • сообщений 8
  • Регистрация: 29-мая 10
  • МестоположениеРоссия
  • Webmoney BL

Отправлено 29 мая 2010 - 03:41

Как я уже писал
$urlsite='http://определённый сайт/index.php?r=admin'
Согласно языку програмирование присваемое значение переменной ставится после знака= и заключается в кавычках, т.е.
постоянно меняться будет значение в кавычках : http://определённый сайт/index.php?r=admin
вся строка.
    • 0
  • Наверх

#4 Знаток 632584157120 (WMID 632584157120 )

  • Группа: Модераторы
  • сообщений 1 797
  • Регистрация: 29-ноября 09
  • МестоположениеКZ
  • Webmoney BL

Отправлено 29 мая 2010 - 07:50

Согласно языку программирования Вы неверно понимаете строковую переменную, но это другая тема.
Касаемо вопроса, передавайте два инпута
1. http://определённый сайт/index.php
3. r=admin
После делайте что требуется, можете склеить.

    • 0
  • Наверх

#5 Пользователь amsokol (WMID 399583474831 )

  • Группа: Пользователи
  • сообщений 8
  • Регистрация: 29-мая 10
  • МестоположениеРоссия
  • Webmoney BL

Отправлено 30 мая 2010 - 04:58

Спасибо за ответ, но этот способ физически не возможен, так как ссылка которая может быть в этой переменной может быть совершенно иной, так ка её записывает пользователь сайта.
Но я вспомнил про str_replace();

Пришлось сделать так

$urlsite=str_replace("%", "?", $urlsite);

и в результате получаю
$urlsite='http://определённый сайт/index.php?r=admin'
вместо прежнего
$urlsite='http://определённый сайт/index.php%r=admin'

Тема закрыта.
    • 0
  • Наверх

#6 Знаток Kold (WMID 634199954015 )

  • Группа: Пользователи
  • сообщений 122
  • Регистрация: 17-февраля 09
  • МестоположениеРоссия
  • Webmoney BL

Отправлено 01 июня 2010 - 08:00

Для предотвращения "порчи" передаваемых параметров используйте функцию кодирования специальных символов urlencode, и urldecode для декодирования.

Не надо изобретать велосипед.

    • 0
  • Наверх