Avatar billede Slettet bruger
26. marts 2002 - 21:49 Der er 16 kommentarer og
1 løsning

Beholde Querystrings

Hej

Følgende bruges i et "tip en ven" script :

strURL1 = Request.Querystring("URL")
strURL2 = Request.Querystring("option")
strURL3 = Request.Querystring("annonceID")

strURLen = "Kig ind på http://x.dk/" &strURL1 & "?option=" &strURL2 & "&annonceID=" &strURL3 &""

Problemet er at min strURL er ret skrøbelig, idet den er afhængig af hvad der står i browserens adresselinie.
Det er ikke ret smart når jeg samtidig har en form (hvor man udfylder navn,email,vens navn og vens email) hvor jeg bruger serverside validering, den efter endt validering, har ændret querystring.
Er der en anden måde man kunne opbygge strURLen på, så den ikke kan ændres når siden een gang er indlæst?
Avatar billede hirayz Nybegynder
26. marts 2002 - 21:52 #1
du kan gemme den i en session måske...

http://www.w3schools.com/asp/asp_sessions.asp
Avatar billede Slettet bruger
26. marts 2002 - 21:55 #2
Har lige prøvet j.f http://www.eksperten.dk/spm/190305 og kunne ikke få det til at virke. Jeg kender godt til brug af sessions og anvender det meget, men ikke lige i den sammenhæng. Har du et forslag til hvordan?
Avatar billede s_raagaard Nybegynder
26. marts 2002 - 22:37 #3
Kan du ikke gemme/læse URL med request.servervariables("HTTP_REFERER")?


/S
Avatar billede Slettet bruger
26. marts 2002 - 22:41 #4
s_raagard > Det er muligt, og især hvis du forklarer lidt nærmere
Avatar billede s_raagaard Nybegynder
26. marts 2002 - 22:54 #5
Til tip en ven kan du helt klart bruge request.servervariables("HTTP_REFERER")

for lige at forstå det helt korrekt:

Er det således at man fra en vilkårlig side på sitet, skal kunne kalde en form op som så kan sende et link til den side man kaldte formen fra?
Avatar billede Slettet bruger
26. marts 2002 - 22:55 #6
Ja
Avatar billede s_raagaard Nybegynder
26. marts 2002 - 23:08 #7
På alle dine sider/templates skriver du f.eks.

session("PageURL")=request.servervariables("HTTP_REFERER")

Når du så kalder din form så skal validere og sende den URL'en ligger URL'en i session("PageURL"), indtil brugeren kalder en ny side/template hvor session("PageURL")=request.servervariables("HTTP_REFERER") er skrevet.


/s
Avatar billede Slettet bruger
26. marts 2002 - 23:14 #8
Jeg kan godt se hvad du mener, men det virker stadig ikke, linket kommer slet ikke med i mailen
Avatar billede s_raagaard Nybegynder
26. marts 2002 - 23:30 #9
Du kan se et par sites jeg har lavet, som bruger denne funktion.

www.lindab.dk

www.oddernettet.dk


/s
Avatar billede Slettet bruger
26. marts 2002 - 23:37 #10
s_raagard > Hvordan ser din tip_in.asp ud?
Avatar billede s_raagaard Nybegynder
26. marts 2002 - 23:55 #11
Der er lidt sprogvariabler som f.eks. <%=Dtip4%> som du blot skal ignorere

Formen ser således ud:

<form name="TipLink" action="tip_in.asp" method="post" onSubmit="return checkFields();">
<input type="hidden" name="LangRef" value="<%=request("LangRef")%>">
<input type="hidden" name="Area" value="<%=request("Area")%>">
<input type="hidden" name="TopID" value="<%=request("TopID")%>">
<input type="hidden" name="TipLink" value="<%=session("PageID")%>">
<table border="0" cellpadding="0" cellspacing="0" width="450">
  <tr height="35">
      <td width="100" height="35"><font class="Bread"><%=Dtip3%></font></td>
<td height="35"><input type="text" name="TipRes" size="24" style="border: solid 1px #A9A9A9; width:300px"></td>
  </tr>
  <tr height="35">
      <td width="100" height="35"><font class="Bread"><%=Dtip4%></font></td>
      <td height="35"><input type="text" name="TipAfs" size="24" style="border: solid 1px #A9A9A9; width:300px"></td>
  </tr>
  <tr height="35">
      <td width="100" height="35"><font class="Bread"><%=Dtip5%></font></td>
      <td height="35"><textarea name="TipMessage" cols="40" rows="4" style="border: solid 1px #A9A9A9; width:300px"></textarea></td>
  </tr>
  <tr height="35">
    <td width="100" height="35"></td>
    <td height="35"><input type="submit" name="SendTip" value="Send" style="; width:150px; border: 1; border-color: #808080; border-style: solid; background-color: #DCDCDC"></td>
  </tr>
</table>
</form>


Valideringen ser således ud:

    <SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function checkFields() {
missinginfo = "";
if ((document.TipLink.TipRes.value == "") ||
(document.TipLink.TipRes.value.indexOf('@') == -1) ||
(document.TipLink.TipRes.value.indexOf('.') == -1)) {
missinginfo += "\n    <%=Dtip9%>";
}
if ((document.TipLink.TipAfs.value == "") ||
(document.TipLink.TipAfs.value.indexOf('@') == -1) ||
(document.TipLink.TipAfs.value.indexOf('.') == -1)) {
missinginfo += "\n    <%=Dtip10%>";
}
if (missinginfo != "") {
missinginfo ="------------------------------------------------\n" +
"<%=Dtip11%>\n" +
"------------------------------------------------\n" +
missinginfo + "\n\n------------------------------------------------";
alert(missinginfo);
return false;
}
else return true;
}
//  End -->
</script>


Maildelen ser således ud:

if request("SendTip")="Send" then
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.CharSet = 2
Mailer.FromName  = "Mit site"
Mailer.FromAddress= request("TipAfs")
Mailer.RemoteHost = "my@site.dk"
Mailer.AddRecipient "TipLink", request("TipRes")
Mailer.Subject    = "Se dette link"
Mailer.BodyText = request("TipMessage") & vbCrLf _
& vbCrLf _
& request("TipLink") & vbCrLf _
& vbCrLf _
& request("TipAfs")
if Mailer.SendMail then
'lidt det er gået godt kode
else
'lidt det er ikke gået godt kode
end if


/s
Avatar billede Slettet bruger
27. marts 2002 - 00:07 #12
s_raagard > Som du ved har en del jern i ilden ligenu, men jeg kigger videre på det en af de nærmeste dage, og så skal du nok få points, ok?
Avatar billede s_raagaard Nybegynder
27. marts 2002 - 00:10 #13
OK.....
Avatar billede Slettet bruger
28. marts 2002 - 15:33 #14
s_raagaard > Hmm - det er jo meget fint, men du omgår problemet ved at bruge en Javascript validering, hvilket jeg ikke har meget lyst til. Hvis jeg bruger serverside validering og Response.Write'r en eller anden fejl ud, så får den eksakte URL request.servervariables("HTTP_REFERER") igen tæv?
Avatar billede Slettet bruger
31. marts 2002 - 22:56 #15
hmmm
Avatar billede s_raagaard Nybegynder
01. april 2002 - 15:09 #16
Kan du ikke isolere URL sessionen med et hidden tag fra din form, så at session ikke skrives når formen valideres:

<input type=hidden name=ValForm value=true>

<%
if request("ValForm")<>"true" then
session("PageURL")=request.servervariables("HTTP_REFERER")
'.....
'øvrige kode
'.....
else
'kode for validering
end if
%>

du kan jo også lave scriptet som validerer og sender mailen, på en seperat asp side hvor session("PageURL")=request.servervariables("HTTP_REFERER") ikke er includeret.


/s
Avatar billede Slettet bruger
09. april 2002 - 22:19 #17
L = Ø

Måtte bide i det rådne JavaScript æble!!!!!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester