Xpoint
   [напомнить пароль]

замена точки (.) нижним подкчеркиванием (_) в именах полей POST запросах

Метки: [без меток]
2010-11-15 13:31:46 [обр] r00mich[досье]

есть название поля вида "user.name". Нужно передать это поле со значением на другой сайт в виде POST запроса. Делал я это и с помощью курла и с помощью сокетов. Но в двух вариантах название полей заменялось на "user_name" и поэтому другим сайтом не распознавалось.

P.S. на всякий пожарный мой сервер ubuntu+apache+zend framework

спустя 5 часов [обр] Алексей Севрюков(162/1280)[досье]
r00mich[досье] Вы имеете ввиду что при попытке передачи через CURL название поля user.name приходит на сторонний хост измененным (user_name)?
Покажите минимальный проблемный кусок кода, скрипт который отправляет это поле на себя и выводит список полученных переменных из POST.
спустя 1 день 21 час [обр] r00mich[досье]
сообщение промодерировано
$ch = curl_init();

$post = array (
   'user.login' => $login,
);

$option = array (
   CURLOPT_URL            => 'http://id.rambler.ru/script/newuser.cgi', //'http://r00mich.vkbot.agoora.ru/browser.phtml',
   CURLOPT_POST      => true,
   CURLOPT_POSTFIELDS   => $post,
   CURLOPT_RETURNTRANSFER   => true,
   CURLOPT_FOLLOWLOCATION   => true,
   CURLOPT_REFERER      => 'http://id.rambler.ru/script/newuser.cgi',
   CURLOPT_ENCODING   => 'gzip,deflate'
);
curl_setopt_array($ch, $option);
curl_exec ($ch);
curl_close($ch);
спустя 5 часов [обр] Алексей Севрюков(162/1280)[досье]
r00mich[досье] Этот скрипт шлет данные "налево", а не сам на себя, и вывод имен переменных не обеспечивает. А просьба была именно такая, чтобы понять где ошибка, в PHP, CURL или вообще в Рамблере.
спустя 14 часов [обр] r00mich[досье]

Рамблер на мои действия вообще никак не реагирует, вывод POST значений у себя на сервере показывает, что имена ключей массива заменены. Отсюда у меня вывод, что именно курл меняет. Хотя и с сокетами та же проблема.

Возможно что это сервер неправильно настроен?

спустя 34 минуты [обр] Алексей Севрюков(162/1280)[досье]
В виде строки пробовали передавать?
CURLOPT_POSTFIELDS   => "user.login=".$login
спустя 4 часа 46 минут [обр] r00mich[досье]
Да, все равно заменяет
спустя 20 минут [обр] Алексей Севрюков(162/1280)[досье]
Последняя попытка:
CURLOPT_POSTFIELDS   => "user%2Flogin=".$login
спустя 3 часа 20 минут [обр] r00mich[досье]
Тоже пробовал, но результат тот же :(
спустя 14 часов [обр] Алексей Севрюков(162/1280)[досье]
Больше не могу ничего посоветовать, я погуглил, почитал маны, комментарии к ним, ничего похожего не нашел.
спустя 10 дней [обр] Давид Мзареулян(536/1003)[досье]
PHP (на принимающей стороне! Curl тут не при чём) заменяет точку на подчёркивание в именах POST и GET переменных. Это не баг, это фича, и с этим можно только смириться. Пример: http://hiero.ru/test/underscore.php?user.name=vasya. Код:
<?php
header("Content-Type: text/plain");
print_r($_GET);
Powered by POEM™ Engine Copyright © 2002-2005