QueryString problem

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • wborg
    Medlem
    • 2003-12-02
    • 208

    #1

    QueryString problem

    Hej,

    Jag försöker få till så att om man klickar på 'Kontakta mig'
    för en viss person där länken ser ut så här:

    [KOD]
    <a href="kontakt3.asp?name=John Doe&[email protected]">Kontakta mig</a>
    [/KOD]

    så vill jag att den email adressen och namnet automatiskt ska
    hamna i

    [KOD]
    mailare.Recipients.Add "[email protected]", "Name"
    [/KOD]

    för att få till det så försökte jag med detta (röd kod)

    [KOD]
    Dim Meddelande, epost, email, namn, name, hemsida, innehall, sida
    Meddelande = Request.Form("meddelande")
    epost = Request.Form("epost")
    email = Request.QueryString("email")
    namn = Request.Form("namn")
    name = Request.QueryString("name")
    hemsida = Request.Form("hemsida")
    innehall = meddelande & "$|$" & epost & "$|$" & namn & "$|$" & hemsida
    sida = formularsida
    [/KOD]

    och kallade sedan på dom så här

    [KOD]
    mailare.Recipients.Add ""& email &"", ""& name &""
    [/KOD]

    men det funkar inte

    Felmeddelandet lyder så här
    aspSmartMail.SendMail : Error 80 fel '80040050'

    There is no Recipient. (verify the address list)

    /skicka3.asp, rad 125

    rad 125
    [KOD]mailare.SendMail[/KOD]

    Någon som ser felet??

    /S

    (I koden nedan har jag markerat alla berörda delar med blått)
    [KOD]
    <%

    ' På denna sida finns koden som gör att dina besökares meddelanden skickas till din e-post adress.
    ' Det är därför viktigt att du anger korrekta uppgifter nedan.

    Dim formularsida, mottagare_namn, mottagare_epost, rubrik, mailserver
    formularsida = "kontakt.asp" ' Ändra här om du bytt namn på sidan med formuläret
    rubrik = "Mail från hemsidan" ' Ändra här om du vill ha annan rubrik på alla mail som skickas
    mailserver = "mail.hotmail.com" ' VIKTIGT! Ändra denna till din e-post adress SMTP server!
    '(SMTP-server = Server för utgående mail)
    'VIKTIGT! Längre ner i koden måste du ställa in vart mailen skall skickas!!

    '=========================================================== ======================================
    'OBSERVERA!
    'Här nedan finns kod som gör att meddelandet skickas och skall fungera helt felfritt, det brukar
    'vara fel på mailservern, eller e-post adressen som orsakar fel. Så PILLA INTE i nedanstående kod
    'om du inte har goda kunskaper om ASP och vet vad du gör! Längst ner i koden måste du dock ändra
    'vart mailen skall skickas. Det står mer om det längre ner.
    '=========================================================== ======================================


    'Här hämtas informationen och läggs i variabler.
    Dim Meddelande, epost, namn, hemsida, innehall, sida
    Meddelande = Request.Form("meddelande")
    epost = Request.Form("epost")
    namn = Request.Form("namn")
    hemsida = Request.Form("hemsida")
    innehall = meddelande & "$|$" & epost & "$|$" & namn & "$|$" & hemsida
    sida = formularsida


    'Här kontrolleras fälten så att alla obligatoriska fält är ifyllda
    IF Not Len(Meddelande) <> 0 then
    session("falt") = innehall
    Session("kontakta_mig") = "You forgot to give us a message."
    Response.Redirect sida
    ELSEIF Not Len(namn) <> 0 then
    session("falt") = innehall
    Session("kontakta_mig") = "You forgot to give us your name."
    Response.Redirect sida
    ELSEIF Not Len(epost) <> 0 then
    session("falt") = innehall
    Session("kontakta_mig") = "You forgot to give us your E-mail address."
    Response.Redirect sida
    END IF

    'Här kontrolleras e-post adressen
    IF Instr(epost,"@") Then
    ' inget
    ELSE
    session("falt") = innehall
    Session("kontakta_mig") = "Du har angett en felaktig e-post adress"
    Response.Redirect sida
    END IF
    IF Instr(epost,".") Then
    ' inget
    ELSE
    session("falt") = innehall
    Session("kontakta_mig") = "Du har angett en felaktig e-post adress"
    Response.Redirect sida
    END IF

    ' Här ändras hemsideadressen så att den alltid inleds med http://
    IF Len(hemsida) <> 0 Then
    IF Left(hemsida,7) = "http://" Then
    webb = Lcase(hemsida)
    ELSE
    webb = "http://" & Lcase(hemsida)
    END IF
    END IF

    '=========================================================== ======================================
    ' Här börjar AspSmartMail-koden. Ändra inte nedanstående kod, om du inte har goda kunskaper om ASP
    ' AspSmartMail-komponentens funktioner. Det är väldigt ovanligt att fel uppstår i nedanstående kod.
    ' Om fel uppstår på raden precis nedanför denna kommentar så brukar det bero på att servern INTE
    ' HAR STÖD FÖR ASPSMARTMAIL. VIKTIGT! Ändra den rad som har en kommentar UNDER sig!
    '=========================================================== ======================================

    Set mailare = Server.CreateObject("aspSmartMail.SmartMail")
    mailare.Server = ""&mailserver&""
    mailare.SenderName = ""&namn&""
    mailare.SenderAddress = ""&epost&""
    mailare.Recipients.Add "[email protected]", "Name"
    ' Ovanstående måste du ändra! Det är väldigt viktigt att du ändrar det, annars funkar inte scriptet!
    mailare.Subject = ""&rubrik&""

    html = html & "<body bgcolor=#CCCCCC>"
    html = html & "<font face='verdana' size='1'>"
    html = html & Replace(Server.HTMLEncode(Meddelande),vbCrlf,"<br>")
    html = html & "<br><br><br>"
    html = html & "------------------------------------------"
    html = html & "<br>"
    html = html & "<b>Skickades: </b> " & Now
    html = html & "<br>"
    html = html & "<b>Namn: </b> " & namn
    html = html & "<br>"
    html = html & "<b>E-mail: </b><a href=""mailto:"& epost & """>" & epost & "</a><br>"
    html = html & "<br>"
    If Len(hemsida) <> 0 then
    html = html & "<b>Hemsida: </b><a href=" & webb & ">" & webb & "</a><br>"
    End If
    html = html & "------------------------------------------"
    html = html & "<br>"
    html = html & "</font>"
    mailare.body = ""&html&""
    mailare.Priority = 2
    mailare.ContentType = "text/html"
    mailare.Charset = "iso-8859-1"
    mailare.SendMail
    Set mailare = nothing

    Session("kontakta_mig") = "Meddelandet är nu skickat!"
    Response.Redirect sida
    %>
    [/KOD]
    Last edited by wborg; 2003-12-16, 11:18.
  • Insider
    Medlem
    • 2000-01-07
    • 1003

    #2
    Du får inte ha mellanslag i en querystring. (eller någon url)
    This message will self-destruct in five seconds. Good luck, Jim.

    Comment

    • dahlgren
      Moderator
      • 2001-08-23
      • 1442

      #3
      Är det inte kanska dumt att skicka adresserna i klartext i querystring. Då kan ju vem som helst skicka vart han vill i mailscriptets namn. Ha adresserna lagrade i varibler på sidan som skickar i stället och skicka endast med ett id som kopplar ihop till rätt variabel. Dett förutsatta att det inte är väldigt många adresser.

      Comment

      • wborg
        Medlem
        • 2003-12-02
        • 208

        #4
        Ok, mellanslaget är borta men jag får fortfarande
        samma felmeddelande:

        aspSmartMail.SendMail : Error 80 fel '80040050'
        There is no Recipient. (verify the address list)
        /skicka3.asp, rad 126

        Kan det vara så att QueryStringen inte följer med från länken
        av någon anledning?

        [KOD]
        <a href="[email protected]&Fname=John&Lname=Doe"
        [/KOD]

        /S

        Comment

        • Jesper T
          Medlem
          • 2001-11-15
          • 7058

          #5
          dU blAndAr geMener - veRSaler Om VarT annAt, Var konsekvent!
          <a href="[email protected]&name=John Doe"
          Vänligen Jesper
          Etisk kommunikation

          Comment

          • Jesper T
            Medlem
            • 2001-11-15
            • 7058

            #6
            sedan har du en querystring som heter "name" men i länken står det Fname & Lname.
            Vad gäller?
            Vänligen Jesper
            Etisk kommunikation

            Comment

            • Jesper T
              Medlem
              • 2001-11-15
              • 7058

              #7
              [citat=Insider]Du får inte ha mellanslag i en querystring. (eller någon url) [/citat]Det skall väl inte vara några problem eller?
              Man kan ju köra med server.URLencode, så blir mellanslag till %20
              Vänligen Jesper
              Etisk kommunikation

              Comment

              • wborg
                Medlem
                • 2003-12-02
                • 208

                #8
                Nu är jag tillbaka till samma situation som när jag först postade frågan

                Har ingen aning om vad som kan vara fel

                /S

                Comment

                • solbulle
                  Medlem
                  • 2001-03-12
                  • 4998

                  #9
                  epost = Request.querystring("epost")
                  namn = Request.querystring("namn")
                  /solbulle
                  Hemmabio | Spelautomater | The Who

                  Comment

                  • wborg
                    Medlem
                    • 2003-12-02
                    • 208

                    #10
                    epost = avsändarens epost
                    namn = avsändarens namn

                    dvs dom hämtas så här epost = Request.Form("epost")

                    det jag är ute efter är att använda samma formulär oavsett vem som ska ta emot mailet. Just nu har jagen sida med en förenings styrelsemedlemmar där varje person har en länk som ser ut så
                    här:
                    [KOD]
                    <a href="[email protected]&name=John Doe">Kontakta mig</a>
                    [/KOD]

                    /S

                    Comment

                    • Mog
                      Medlem
                      • 2003-11-03
                      • 255

                      #11
                      Detta bör funka.

                      Länken:
                      [kod]<a href="kontakt3.asp?name=John Doe&[email protected]">Kontakta mig</a>
                      [/kod]
                      kontakt3.asp:
                      [kod]namn = Request.querystring("name")
                      epost = Request.querystring("email")

                      mailare.Recipients.Add epost, namn

                      ' eller
                      mailare.Recipients.Add Request.querystring("email"), Request.querystring("name")[/kod]
                      Ingenting blir bättre än vad du gör det till.
                      // Mogge

                      Comment

                      • Jesper T
                        Medlem
                        • 2001-11-15
                        • 7058

                        #12
                        Och då har Solbulle svarat på din fråga i inlägget ovanför.
                        Du kan även ta bort "querystring" så kan du använda samma request till både ditt formulär och i länken.[kod]epost = Request("epost")
                        namn = Request("namn")[/kod]
                        Vänligen Jesper
                        Etisk kommunikation

                        Comment

                        • Jesper T
                          Medlem
                          • 2001-11-15
                          • 7058

                          #13
                          [citat=Mog]Detta bör funka.

                          Länken:
                          [kod]<a href="kontakt3.asp?name=John Doe&[email protected]">Kontakta mig</a>
                          [/kod]
                          kontakt3.asp:
                          [kod]namn = Request.querystring("name")
                          epost = Request.querystring("email")

                          mailare.Recipients.Add epost, namn

                          ' eller
                          mailare.Recipients.Add Request.querystring("email"), Request.querystring("name")[/kod] [/citat]Varför sätta en variabel och sedan inte använda den?
                          Vänligen Jesper
                          Etisk kommunikation

                          Comment

                          • Mog
                            Medlem
                            • 2003-11-03
                            • 255

                            #14
                            [citat=Jesper T][citat=Mog]Detta bör funka.

                            Länken:
                            [kod]<a href="kontakt3.asp?name=John Doe&[email protected]">Kontakta mig</a>
                            [/kod]
                            kontakt3.asp:
                            [kod]namn = Request.querystring("name")
                            epost = Request.querystring("email")

                            mailare.Recipients.Add epost, namn

                            ' eller
                            mailare.Recipients.Add Request.querystring("email"), Request.querystring("name")[/kod] [/citat]Varför sätta en variabel och sedan inte använda den? [/citat]
                            Antingen sätter man variabler och använder dem
                            ' ELLER
                            använder requesten direkt.
                            Ingenting blir bättre än vad du gör det till.
                            // Mogge

                            Comment

                            • wborg
                              Medlem
                              • 2003-12-02
                              • 208

                              #15
                              Oops! Jag var lite otydlig ser jag och dessutom skrev jag lite fel.

                              dvs att querystringen ska skickas från styrelsen.asp till
                              kontakt.asp och sen vidare till skicka3.asp.

                              Styrelsen.asp:

                              [KOD]
                              <a href="kontakt.asp?name=John Doe&[email protected]">Kontakta mig</a>
                              [/KOD]

                              Kontakt.asp:

                              [KOD]
                              <html>
                              <head>
                              <title></title>
                              </head>
                              <body>
                              <form method="post" action="skicka3.asp">
                              <table border="0">
                              <tr>
                              <td colspan="2"><font size="2" face="Verdana"><b><font size="1">Mail till <%=Request.QueryString("name")%></font></b></font></td>
                              </tr>
                              <%
                              If Len(Session("kontakta_mig")) <> 0 then
                              If Len(Session("falt")) <> 0 then
                              uppg = Split(Session("falt"),"$|$")
                              mess = uppg(0)
                              namn = uppg(2)
                              epost = uppg(1)
                              hemsida = uppg(3)
                              Session("falt") = ""
                              End If
                              felet = Session("kontakta_mig")
                              Session("kontakta_mig") = ""
                              End If
                              IF len(felet) <> 0 then
                              %>
                              <tr>
                              <td colspan="2">
                              <%
                              Response.Write "<i><font face='verdana' size='1'>" & felet & "</font></i>"
                              %>
                              </td>
                              </tr>
                              <%
                              End If
                              %>
                              <tr>
                              <td colspan="2"><font size="1" face="Verdana">Message:<font color="#FF0000">*</font></font></td>
                              </tr>
                              <tr>
                              <td colspan="2"><textarea name="meddelande" rows="8" cols="58" style="font-family: verdana; font-size: 10px; border: #000000 1px solid"><%=mess%></textarea></td>
                              </tr>
                              <tr>
                              <td><font size="1" face="Verdana">Name: <font color="#FF0000">*</font></font></td>
                              <td><input type="text" size="35" name="namn" value="<%=namn%>" style="font-family: verdana; font-size: 10px; border: #000000 1px solid"></td>
                              </tr>
                              <tr>
                              <td><font size="1" face="Verdana">E-Mail: <font color="#FF0000">*</font></font></td>
                              <td><input type="text" size="35" name="epost" value="<%=epost%>" style="font-family: verdana; font-size: 10px; border: #000000 1px solid"></td>
                              </tr>
                              <tr>
                              <td><font size="1" face="Verdana">Homepage: </font></td>
                              <td><input type="text" size="35" name="hemsida" value="<%=hemsida%>" style="font-family: verdana; font-size: 10px; border: #000000 1px solid"></td>
                              </tr>
                              <tr>
                              <td></td>
                              <td><input type="submit" name="submit" value="Send" style="font-family: verdana; font-size: 10px; border: #000000 1px solid"></td>
                              </tr>
                              </table>
                              </form>
                              </td>
                              </tr>
                              </table>
                              </body>
                              </html>
                              [/KOD]

                              Skicka3.asp

                              [KOD]
                              <%

                              ' På denna sida finns koden som gör att dina besökares meddelanden skickas till din e-post adress.
                              ' Det är därför viktigt att du anger korrekta uppgifter nedan.

                              Dim formularsida, mottagare_namn, mottagare_epost, rubrik, mailserver
                              formularsida = "kontakt.asp" ' Ändra här om du bytt namn på sidan med formuläret
                              rubrik = "Mail från hemsidan" ' Ändra här om du vill ha annan rubrik på alla mail som skickas
                              mailserver = "mail.hotmail.com" ' VIKTIGT! Ändra denna till din e-post adress SMTP server!
                              '(SMTP-server = Server för utgående mail)
                              'VIKTIGT! Längre ner i koden måste du ställa in vart mailen skall skickas!!

                              '=========================================================== ======================================
                              'OBSERVERA!
                              'Här nedan finns kod som gör att meddelandet skickas och skall fungera helt felfritt, det brukar
                              'vara fel på mailservern, eller e-post adressen som orsakar fel. Så PILLA INTE i nedanstående kod
                              'om du inte har goda kunskaper om ASP och vet vad du gör! Längst ner i koden måste du dock ändra
                              'vart mailen skall skickas. Det står mer om det längre ner.
                              '=========================================================== ======================================


                              'Här hämtas informationen och läggs i variabler.
                              Dim Meddelande, epost, email, namn, name, hemsida, innehall, sida
                              Meddelande = Request.Form("meddelande")
                              epost = Request.Form("epost")
                              email = Request.QueryString("email")
                              namn = Request.Form("namn")
                              name = Request.form("name")
                              hemsida = Request.Form("hemsida")
                              innehall = meddelande & "$|$" & epost & "$|$" & namn & "$|$" & hemsida
                              sida = formularsida


                              'Här kontrolleras fälten så att alla obligatoriska fält är ifyllda
                              IF Not Len(Meddelande) <> 0 then
                              session("falt") = innehall
                              Session("kontakta_mig") = "You forgot to give us a message."
                              Response.Redirect sida
                              ELSEIF Not Len(namn) <> 0 then
                              session("falt") = innehall
                              Session("kontakta_mig") = "You forgot to give us your name."
                              Response.Redirect sida
                              ELSEIF Not Len(epost) <> 0 then
                              session("falt") = innehall
                              Session("kontakta_mig") = "You forgot to give us your E-mail address."
                              Response.Redirect sida
                              END IF

                              'Här kontrolleras e-post adressen
                              IF Instr(epost,"@") Then
                              ' inget
                              ELSE
                              session("falt") = innehall
                              Session("kontakta_mig") = "Du har angett en felaktig e-post adress"
                              Response.Redirect sida
                              END IF
                              IF Instr(epost,".") Then
                              ' inget
                              ELSE
                              session("falt") = innehall
                              Session("kontakta_mig") = "Du har angett en felaktig e-post adress"
                              Response.Redirect sida
                              END IF

                              ' Här ändras hemsideadressen så att den alltid inleds med http://
                              IF Len(hemsida) <> 0 Then
                              IF Left(hemsida,7) = "http://" Then
                              webb = Lcase(hemsida)
                              ELSE
                              webb = "http://" & Lcase(hemsida)
                              END IF
                              END IF

                              '=========================================================== ======================================
                              ' Här börjar AspSmartMail-koden. Ändra inte nedanstående kod, om du inte har goda kunskaper om ASP
                              ' AspSmartMail-komponentens funktioner. Det är väldigt ovanligt att fel uppstår i nedanstående kod.
                              ' Om fel uppstår på raden precis nedanför denna kommentar så brukar det bero på att servern INTE
                              ' HAR STÖD FÖR ASPSMARTMAIL. VIKTIGT! Ändra den rad som har en kommentar UNDER sig!
                              '=========================================================== ======================================

                              Set mailare = Server.CreateObject("aspSmartMail.SmartMail")
                              mailare.Server = ""&mailserver&""
                              mailare.SenderName = ""&namn&""
                              mailare.SenderAddress = ""&epost&""
                              mailare.Recipients.Add = ""&email&"", ""&name&""
                              ' Ovanstående måste du ändra! Det är väldigt viktigt att du ändrar det, annars funkar inte scriptet!
                              mailare.Subject = ""&rubrik&""

                              html = html & "<body bgcolor=#CCCCCC>"
                              html = html & "<font face='verdana' size='1'>"
                              html = html & Replace(Server.HTMLEncode(Meddelande),vbCrlf,"<br>")
                              html = html & "<br><br><br>"
                              html = html & "------------------------------------------"
                              html = html & "<br>"
                              html = html & "<b>Skickades: </b> " & Now
                              html = html & "<br>"
                              html = html & "<b>Namn: </b> " & namn
                              html = html & "<br>"
                              html = html & "<b>E-mail: </b><a href=""mailto:"& epost & """>" & epost & "</a><br>"
                              html = html & "<br>"
                              If Len(hemsida) <> 0 then
                              html = html & "<b>Hemsida: </b><a href=" & webb & ">" & webb & "</a><br>"
                              End If
                              html = html & "------------------------------------------"
                              html = html & "<br>"
                              html = html & "</font>"
                              mailare.body = ""&html&""
                              mailare.Priority = 2
                              mailare.ContentType = "text/html"
                              mailare.Charset = "iso-8859-1"
                              mailare.SendMail
                              Set mailare = nothing

                              Session("kontakta_mig") = "Meddelandet är nu skickat!"
                              Response.Redirect sida
                              %>
                              [/KOD]

                              Comment

                              Working...