Как передать из MS Excel на удаленный сервер с PHP?

Доброго времени, передаю из excel данные на сервер, ниже пример

Private Sub btnStart_Click()

Dim XMLHTTP As MSXML2.XMLHTTP, step As Integer, flag As Boolean
Set XMLHTTP = New MSXML2.XMLHTTP
step = 1: flag = True
Do
    XMLHTTP.Open "POST", "http://site.ru, True
    XMLHTTP.SetRequestHeader "Host", "http://site.ru"
    XMLHTTP.SetRequestHeader "Content-type", "application/x-www-form-urlencoded"
    XMLHTTP.SetRequestHeader "Cache-Control", "no-store, no-cache"
    XMLHTTP.SetRequestHeader "Pragma", "no-cache"
    XMLHTTP.SetRequestHeader "User-agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)"
    zapros = 121416
    postr = 963
    XMLHTTP.SetRequestHeader "Content-Length", CStr(Len(zapros))
    XMLHTTP.send postr
    Do While XMLHTTP.readyState = 10
         DoEvents
    Loop
    step = step + 1
    If step > 4 Then flag = False
Loop Until flag = False
XMLHTTP.abort
Set XMLHTTP = Nothing

End Sub


И принимаю его php -
$post = $_POST['121416'];
echo $post ;


Подскажите, пожалуйста, где ошибка ?
  • Вопрос задан
  • 2609 просмотров
Решения вопроса 1
Мне кажется, нужно отправлять в теле HTTP-Body пары "ИМЯ_ПЕРЕМЕННОЙ" "=" "ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ", т.е.
XMLHTTP.send "param1=963"
И тогда на приемной стороне это значение будет доступно через
$_POST['param1']
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@m-haritonov
Получить тело POST запроса в чистом виде в PHP можно следующим образом:
print file_get_contents('php://input');
Если же Вы хотите отправлять параметры вида "имя=значение", то необходимо поступить так, как написал @OLS.

P.S.: почему Вы шлёте в теле POST запроса значение переменной postr, а в content-length указываете длину переменной zapros?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы