Je suis davantage un gars .Net, mais le site sur lequel je travaille actuellement a quelques anciennes pages ASP classiques qui traînent. Dans l'une des formes que nous avons deux ou trois entrées cachées qui se défini sur les variables créées et définir par un VBScript au début de la page comme ceci:Entrée de liaison ASP classique à la variable
<input name="referer" type="hidden" value="<%= oReferer %>" />
Cette variable est définie avec le VBScript suivant:
<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>
Ce code fonctionne très bien, la plupart du temps. Lorsque j'essaie d'utiliser ce code dans une version plus récente du formulaire, j'ai deux problèmes. D'abord, l'entrée elle-même ne se règle pas du tout. Je ne suis pas sûr pourquoi comme le code a un défaut donc il devrait toujours au moins être "soi". Le deuxième problème est que le code original, pas écrit par moi, a travaillé en utilisant <% oReferer%> pour définir la valeur. Lorsque je fais cela maintenant, je reçois une erreur VBScript, "type incompatibilité".
Comme je l'ai dit je suis un gars .Net et résoudre ce problème dans .Net n'est pas un problème. Je ne connais pas ASP classique et je suis perplexe. J'aimerais changer pour .Net mais ne peux pas pour cette forme particulière en ce moment, ainsi n'importe quelle aide pour comprendre ceci serait grande.
Il devrait vous dire quelle ligne l'erreur s'est produite, pouvez-vous le mettre en évidence dans le code s'il vous plaît? –
'<% oReferer%>' doit probablement être '<% = oReferer%>' (ie avec un signe égal) –
Oui, vous avez absolument besoin du signe '='. Essayez d'ajouter quelque chose à la valeur de ligne 'oReferer = Request.Cookies (" OrigReferer ") &" ** "' pour voir si vous exécutez cette ligne. Si le cookie OrigReferer est vide, 'oReferer' sera également vide (vide) et aucune valeur ne sera écrite dans la ligne' <% = oReferer%> '. – Edelcom