php получить POST данные без "name"

Тема в разделе "Как сделать...", создана пользователем o_nix, 28 июл 2012.

  1. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    Есть скрипт клиент он отсылает методом POST данные курлом
    PHP:
    <?php
    $post
    '<?xml version="1.0" encoding="UTF-8"?>     
    <get>     
        <search>query</search>
    </get>'
    ;
     
    $curl=@curl_init();
     
    curl_setopt($curlCURLOPT_URL'http://serverurll.ru/server.php');
     
    curl_setopt($curlCURLOPT_POST1);
     
    curl_setopt($curlCURLOPT_POSTFIELDS$post);
     
    curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
     
    curl_setopt($curlCURLOPT_HEADERfalse);
     
    curl_setopt($curlCURLOPT_TIMEOUT250);
     
    curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
     
    $resp=curl_exec($curl);
     
    $err=curl_error($curl);
     
    curl_close($curl);

    echo 
    $resp;
     
    ?>
    вопрос
    Что должно быть в скритпте server.php чтобы получить данные отправленные POST ??

    в переменной $_POST и прочих серверных переменных они отсутствуют
    я так понял потому что не передаётся name переменной

    Как получить ??

    Поменять способ отправки или код запроса нельзя...
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.183
    А у меня присутствует в $_POST некий порубленный, из-за неверной отправки код, вывод var_dump:
    PHP:
    array(1) {
    ["<?xml_version"]=>
    string(77) ""1.0" encoding="UTF-8"?>
    <get>
    <search>query</search>
    </get>"
    }
    Синтаксис отправки пост запроса переменная=значение&еще_переменная=значения
    Вот сервер и разбивает по знакам "=" и "&" полученные данные...
     
    o_nix и recasher2k12 нравится это.
  3. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    можно ли сие отрубить ??
    те чтобы не делало этой рубки ??

    может в htaccess надо что либо прописать ??

    upd ---

    бугага
    вот нужный "гениальный" код )))))))))ъ

    PHP:
    key($_POST).$_POST[key($_POST)])
    спасибо :)

    вывод $_post на разных серваках разный
    на денвере у меня в $_post было пусто а на linux хосте выводит раздробленное

    от чего зависит хз ....
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.183
    Отключать не надо, просто из другого места взять эти данные:
    $full = file_get_contents("php://input");

    Или из $_POST собрать:
    PHP:
    if ($_POST) {
    $kv = array();
    foreach (
    $_POST as $key => $value) {
    $kv[] = "$key=$value";
    }
    $query_string join("&"$kv);
    }
     
    Viodele и o_nix нравится это.