【发布时间】:2014-12-10 02:56:53
【问题描述】:
我一直在寻找一个选项,可以将从 Outlook 消息中的附件中读取的数据直接发送到 PHP 脚本,然后该脚本会将日期插入到一个不错的 MySQL 数据库中。 文件的提取和数据的拆分都可以,但是这里有窍门……
从互联网 (here) 我找到了 Jeremy Slade 的一篇不错的帖子,他成功地将一些数据发送到 cgi scipt,一切都很好。
所以,尽管我认为自己很聪明,但我认为我可以将其重写为处理 PHP 脚本。 但随后工作停止了。
我已将代码缩短到sn-p以下;
Sub TestURL()
Set xhr = CreateObject("MSXML2.XMLHTTP")
URL = "http://somedomain.com/php/test.php"
data = "someVariable=Test"
With xhr
.Open "POST", URL, False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.Send data
End With
End Sub
理论上,这应该在给定的 URL 上打开一个 MSXML2.XMLHTTP 请求,并将任何数据发送到脚本。
够搞笑了,脚本被调用了,但是没有数据传入?
我已经尝试将 [someVariable] 元素的 PHP 脚本设置为 $_GET 和 $_POST,但都没有任何响应? 当我将 PHP 设置为 $_GET 时,我将 VBA MSXML2.XMLHTTP 对象也匹配为“GET”,反之亦然...
我尝试将“数据”变量作为参数传递给“函数”.send,方法是将其包含在括号中 即
.send (data)
但这也不行……
我有点不知所措,因为调用了脚本,向表中添加了一条数据线,但没有实际传输“已发送”数据??
我已经尝试将数据字符串连接到传递给 HTTP 对象的 URL,本质上是将“GET” URL 传递给 HTTP 对象。 即
URL = URL & "?" & data
但无济于事...:-(
如果我直接从浏览器传递数据,php 脚本本身可以正常工作 即
http://somedomain.com/php/test.php?someVariable=Test
数据已正确添加,变量已读取...
一些更开明的精神可以引导我走向正确的方向吗?
20141016 ********** 更新 **********
好的,当我深入研究内容时,我发现还有一个选项可以将 XmlHttp 对象称为“Microsoft.XmlHttp”?
有趣的是,当这样设置对象时, 即
Set xhr = CreateObject("Microsoft.XMLHTTP")
代码有效,数据被添加到表中,.responsText 是成功消息。
然而,如果我返回原始代码,我会收到一条 PHP 错误消息,告诉我我的 PHP 语法有错误??这意味着正在发送的实际“数据”在使用“MSXML2.XMLHTTP”和使用“Microsoft.XMLHTTP”之间有所不同???
试图从互联网上挖掘出两者之间的区别,但找不到任何可以让我充分理解该主题的帖子?
尽管我的代码现在可以正常工作,但我仍然有一个令人烦恼的问题,即不了解两者之间的区别,并希望得到这样做的人的回复 :-) 因为我现在有一个可以工作的代码,但不是了解它的工作原理...... :-) 或者 mroeover 不明白为什么“MSXML2”选项不起作用......
非常感谢,
最诚挚的问候
马丁
【问题讨论】: