私はもっと.Netの人ですが、私が現在取り組んでいるサイトには、いくつかの従来のClassic ASPページがあります。いずれかの形式では、我々はそのようなページの先頭にいくつかのVBScriptで作成された変数に設定し、設定します隠された入力のカップルを持っている:変数への従来のASPバインド入力
<input name="referer" type="hidden" value="<%= oReferer %>" />
変数は、次のVBScriptで設定されていること:
<script type="text/vbscript" language="vbscript" runat="server">
dim oReferer
dim origReferer, arrRefer1, arrRefer2
origReferer = "self"
'response.Write("referer - " & Request.ServerVariables("HTTP_REFERER"))
'response.End()
if not Request.ServerVariables("HTTP_REFERER") = "" then
if not Request.ServerVariables("HTTP_COOKIE") = "" then
if not len(Request.Cookies("OrigReferer")) > 0 then
arrRefer1 = split(Request.ServerVariables("HTTP_REFERER"),"//")
if UBound(arrRefer1) > 0 then
arrRefer2 = split(arrRefer1(1), "/")
if UBound(arrRefer2) > 0 then
origReferer = arrRefer2(0)
end if
end if
Response.Cookies("OrigReferer") = origReferer
Response.Cookies("OrigReferer").Expires = DateAdd("d", 120, Date())
else
oReferer = Request.Cookies("OrigReferer")
end if
else
oReferer = "no cookies"
end if
else
oReferer = "self"
end if
<script>
このコードはほとんどの場合、大丈夫です。このコードを新しいバージョンのフォームで使用しようとすると、2つの問題が発生します。まず、入力自体はまったく設定されません。私はコードがデフォルトを持っているので、なぜそれが常に "自己"であるべきなのかは分かりません。 2番目の問題は、私が書いたのではなく元のコードが<%oReferer%>を使って値を設定していたことです。私がこれを行うと、VBScriptのエラー、「型の不一致」が発生します。
私は.Netの男だと言って、これを.Netで解決することは問題ではありません。私はClassic ASPも知らないし、困惑している。私は.Netに変更したいと思っていますが、この特定の形式のためには今はできません。だから、これを理解する助けがあれば素晴らしいでしょう。
エラーが発生した行を教えてください。コード内でこれを強調表示できますか? –
'<%oReferer%>'はおそらく '<%= oReferer%>'(つまり等号)である必要があります。 –
間違いなく、 '= '記号が必要です。 'oReferer = Request.Cookies(" OrigReferer ")&" ** "'行の値に何かを追加して、この行を実行しているかどうか確認してください。 OrigRefererクッキーが空白の場合、 'oReferer'も空白(空)になり、' <%= oReferer%> '行に値が書き込まれません。 – Edelcom