3

テキストエリアからローカルマシンのMSSQLを更新する従来のASPスクリプトにデータを投稿してから、別のサーバーのPHPスクリプトに投稿しようとしています。ただし、以下を実行すると、テキストエリアのデータが切断されるため、機能しません。HTMLやその他のデータ用の特殊文字が含まれています。

だから私の質問は、ASPクラシックを使用してPOSTを介してこのデータを渡すにはどうすればよいですか?

私は一日中探していたので、誰かが私を教えてくれることを願っています、ありがとう!

    strUrl = "http://www.example.com/index.php"
    requestData = request("request")
    requestData2 = request("request2")

    strData = "request=" & requestData & "&request2=" & requestData2

    postHTML (strUrl, strData)

function postHTML (strUrl, strData)
    Set xmlHttp = Server.Createobject("MSXML2.ServerXMLHTTP")
    xmlHttp.Open "POST", strUrl, False
    xmlHttp.setRequestHeader "User-Agent", "asp httprequest"
    xmlHttp.setRequestHeader "content-type", "application/x-www-form-urlencoded"
    xmlHttp.Send strData
    postHTML = xmlHttp.responseText
    xmlHttp.abort()
    set xmlHttp = Nothing   
end function

たとえば、an&がrequestdata2にある場合、それ以降&は新しい文字列を開始していると見なされるため、切り捨てられます。しかし、私はこれを伝えられるようにしたいと思います。

現時点で私が考えることができる唯一の解決策:=やなどの特殊文字&の文字列置換を実行し、phpサーバーで別の文字列置換でそれらを復元します。しかし、これは私がこのタスクを達成したいものではありません。正しい投稿方法を教えてください。

4

1 に答える 1

2

パラメータ値をURLエンコードする必要があるため、この行を変更してください...

strData = "request=" & requestData & "&request2=" & requestData2 

...に...

strData = "request=" & Server.UrlEncode(requestData) & "&request2=" & Server.UrlEncode(requestData2)

受信サーバーは値を自動的にデコードする必要があります。

于 2012-09-11T05:18:50.663 に答える