1
現在我有這個VBA腳本:什麼是POST的最佳方式/ GET Excel數據
i = 11
While (Range("B" & i) <> "")
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "https://example.com/submit/?no=" & Range("B" & i).Value & "&soal=" & Range("C" & i).Value & "&a=" & Range("E" & i).Value & "&b=" & Range("F" & i).Value & "&c=" & Range("G" & i).Value & "&d=" & Range("H" & i).Value & "&benar=" & Range("J" & i).Value & ""
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
i = i + 1
Wend
它工作正常和所有。並做我想要的。問題是,花了很長時間(大約60秒)來發布60個問題。 60秒不是一個真正的問題。我可以等待60秒。問題出在我的託管中。他們將我的IP標記爲垃圾郵件或其他東西。因爲在成功發佈我的問題之後,我收到了ERR_CONNECTION_RESET。它只發生在我身上。如果通過代理打開,該網站沒問題。
所以我的問題是,有沒有辦法通過excel vba發佈60個問題到PHP,而不會讓我的IP由主機提供商阻止。
submit.php的內容
<?php
include ('../db.php');
$sql = 'INSERT INTO `soal` (`id`, `no`, `soal`, `options`, `a`, `b`, `c`, `d`, `e`, `benar`) VALUES (NULL, "'.$_GET['no'].'", "'.$_GET['soal'].'", "4", "'.$_GET['a'].'", "'.$_GET['b'].'", "'.$_GET['c'].'", "'.$_GET['d'].'", "e", "'.$_GET['benar'].'");';
$conn->query($sql);
示例Excel行 http://snag.gy/A4o9D.jpg
附:我知道關於mysql的衛生,安全,注入等方面,我們只關注手頭的問題,而不是談論安全問題。
謝謝。
我明白了。我會嘗試你的理論。快速的問題,URL有多長時間有限制?因爲我試圖谷歌它,我沒有找到任何明確的答案。 – Yokowasis
是的,但它設置在Web服務器上。我注意到你正在創建一個POST請求,所以不是給url添加參數,而是在post主體中發送它們。對於帖子大小沒有這樣的限制。我相信你會在vba中做到這一點,通過傳遞後體字符串到'objHTTP.send(「數據字符串在這裏」)' – Steve