Avatar billede bajerfar Nybegynder
21. april 2005 - 09:17 Der er 28 kommentarer og
1 løsning

Specialtegn i Querystring

Hej Eksperter
Jeg har brug for at sende en variabel med specialtegn (æøåÆØÅ) gennem URL'en fra en flash-film via asp til en database. Variablen bliver gemt i databasen, men specialtegnene bliver konverteret til kruseduller (æøå). Siden skal samtidig sende en mail til en adresse, som er beskrevet i en anden variabel. Mail'en når aldrig frem, hvis brugeren indtaster æøå i det andet indtastningsfelt! Dete er langt fra hensigtsmæssigt.

Hvad kan jeg gøre, hvis jeg gerne vil sende disse tegn?
Avatar billede hnteknik Novice
21. april 2005 - 09:25 #1
Kan du ikke URL encode/ unencode ?
Avatar billede fennec Nybegynder
21. april 2005 - 09:26 #2
Du skal encode dem:

<a href="enside.asp?text=<%= server.URLencode("en lovlig url med æøå") %>">
Avatar billede fennec Nybegynder
21. april 2005 - 09:27 #3
Request.querystring decoder automatisk data tilbage igen.
Avatar billede hnteknik Novice
21. april 2005 - 09:27 #4
Du har hisket denne liniwe i din fLASH CODE
system.useCodePage = true
Avatar billede bajerfar Nybegynder
21. april 2005 - 09:33 #5
URL encode/ unencode? Kan jeg bruger:
minVariabel = escape(enAndenVariabel);

Det er jo nok i Flash, jeg skal indsætter én eller anden kode ..?
Avatar billede hnteknik Novice
21. april 2005 - 09:47 #6
server.URLencode er en del af ASP. Den skal blot kaldes som fennec skriver

system.useCodePage = true
i flashcoden sikrer at flash håndterer æøå rigtigt.
Avatar billede bajerfar Nybegynder
21. april 2005 - 09:54 #7
Ja, ok. Men jeg er stadig lidt i tvivl om, hvordan min flashkode skal se ud. Jeg går ud fra, at system.useCodePage = true sættes ind i den 1. frame i timeline, men hvordan skal min knap se ud, som sender variablerne? Lige nu ser den således ud. Er det fyldestgørende i denne forbindelse? Det er sendAndLoad der forvirrerer mig!

on(release){
    lvo = new LoadVars();
    lvo.reciever = escape(_root.recieveEmailVar.text);
    lvo.sender =escape( _root.sendEmailVar.text);
    lvo.allCoords = escape(allCoords);
            lvo.sendAndLoad("write.asp", lvo, "GET");
        _root.errorRecieverVar.text = "";
        _root.errorSenderVar.text = "";
        _root.send_mc.play();
        loadText.onLoad = function() {
        };
      }
}
Avatar billede bajerfar Nybegynder
21. april 2005 - 10:01 #8
Nå, hov! Der var jeg vist lidt for hurtig. Har indsat system.useCodePage = true i timeline, og nu kommer det korrekt frem til databasen! Dog bliver mail'en ikke sendt, som i tilfælde, hvor jeg ikke bruger spcialtegn. Dette synes jeg stadig erlidt underligt! Det burde vel være ligemeget. Jeg bruger CDONTS til at sende min mail. Adressen henter jeg fra en variabel i URL'en. Mit mailscript på asp-siden ser således ud:

        Dim objMail
        Set objMail = CreateObject("CDONTS.NewMail")
        url = rs("sender") & " har sendt dig et post kort. Klik på linket, for at se dit postkort: http://www.voksnemennesker.dk/show.asp?id=" & id
        objMail.Send rs("sender"),rs("reciever"),"greetings!",url

Er der nogle problemer i det?
Avatar billede hnteknik Novice
21. april 2005 - 10:12 #9
Hm - jeg er bange for at du må løfte den i flash gruppen. Min makker har koden, som jeg umiddelbart ikke kan tillade mig at sende dig. Vi gør det på en adnen måde og lader asp jmail ordne sagen.
Avatar billede bajerfar Nybegynder
21. april 2005 - 10:15 #10
ja, ok! Der er selvfølgelig også tale tale om et grænseområde mellem Flas og Asp. Var bare nødt til at vælge et de de to  fora
Avatar billede hnteknik Novice
21. april 2005 - 10:23 #11
HM  - det er godt det virker nu mht flashen.
CDONTS er er til håndtere. Start med at se hvordan dine variable ser ud inden du sender dem:

reponse.clear
response.write(..variabler ..)
response.end()
Avatar billede bajerfar Nybegynder
21. april 2005 - 10:47 #12
Det ser umiddelbart fint ud! Variablerne når frem til Asp-siden som:
sender = Åge
reciever = email@email.dk
Avatar billede hnteknik Novice
21. april 2005 - 10:55 #13
Hvad med afsender mail, mangler den ( admin@ditwebsted.dk) kommer der intet frem og CDONTS er det objekt som sender flest fejlmedelelser.

<%
Option Explicit

Dim objNewMail

' First create an instance of NewMail Object
Set objNewMail = Server.CreateObject("CDONTS.NewMail")

' After an instance of NewMail Object has been created.
' If you like you can use this one line of code to send the mail.
' objNewMail.Send From, To, Subject, Message
' or you can give every value seperate

objNewMail.From = "afsender@post.dk"
objNewMail.To  = "modtager@post.dk"

' NOTE: If the "To" or "From" properties of CDONTS contain
' invalid email address you will not recieve the email.

objNewMail.Subject = "This is a test Mail"
objNewMail.Body    = "This is the Body text of this test mail."
objNewMail.Send

' After the Send method, NewMail Object become Invalid
' You should set it to nothing to release the memory

Set objNewMail = Nothing

' If you want to send another mail
' you have to create a new instance of NewMail Object again.

Response.Write "Email has been sent"

%>
Avatar billede hnteknik Novice
21. april 2005 - 10:57 #14
sludder: CDONTS er IKKE det object der sender de fleste fejlmeddelelser
Avatar billede bajerfar Nybegynder
21. april 2005 - 11:55 #15
hmm .. det vil ikke rigtigt lykkedes. Jeg indsatte dit CDONTS script i min egen kode, men med samme resultat: æøå indsættes fint i database, men ingen mail fremsendes, i modsætning til, hvis afsender-navn ikke indeholder æøå. Jeg er ikke nogen asp-haj, så jeg indsætter lige min egen kode. Det kan være, at du kan spotte problemet, som jeg ikke kan se!

<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db1.mdb")
    Conn.Open DSN

  insertStr = "INSERT INTO wall (sender, reciever, coords) VALUES ('" & request.querystring("sender") & "', '"  & request.querystring("reciever") & "', '"  & request.querystring("allCoords") & "')"
 
response.Write insertStr
  conn.Execute(insertStr)

    strSQL = "select id,sender,reciever from wall order by id desc"
    Set rs = Conn.Execute(strSQL)
    rs.MoveFirst
  if not rs.eof then
    id = rs("id")
Dim objNewMail
Set objNewMail = Server.CreateObject("CDONTS.NewMail")

objNewMail.From = (Request.QueryString("sender"))
objNewMail.To  = (Request.QueryString("reciever"))


objNewMail.Subject = Request.QueryString("sender") & " har sendt dig et postkort"
objNewMail.Body    = Request.QueryString("sender") & " har sendt dig et postkort. Klik på link'et for at se dit postkort: http://www.voksnemennesker.dk/show.asp?id=" & rs("id")
objNewMail.Send

Set objNewMail = Nothing

Response.Write "Email has been sent"
end if
%>
<%
  rs.Close
  set rs = nothing

  conn.Close
  set conn = nothing
%>
Avatar billede bajerfar Nybegynder
21. april 2005 - 11:57 #16
Jeg får ingen fejlmeldinger, kun en bekræftelse på, at data er indsat i db, og en mail mail er fremsendt (hvilket er løgn)

INSERT INTO wall (sender, reciever, coords) VALUES ('å', 'larsliin@gmail.com', 'form_02|125.1|351.7')Email has been s
Avatar billede hnteknik Novice
21. april 2005 - 12:00 #17
I din response.write så det ude til at du overførete "Åge", men CDONTS skal have en email adresse på afsender og dit websted kræver sikkert, at det er en af dem kendt og gyldig emailadresse ( admin@ditwebsted.dk)

Request.QueryString("sender")) er det en emailadresse ???
Avatar billede bajerfar Nybegynder
21. april 2005 - 13:23 #18
Ja, ok! En ringe beskrivelse!
Fra flash sender jeg via URL en emailadresse Request.QueryString("reciever")), og en afsender Request.QueryString("sender")), som ikke er en email. Disse indtastes af brugeren.
Avatar billede bajerfar Nybegynder
21. april 2005 - 13:24 #19
en email skal sendes til modtageren Request.QueryString("reciever")), som skal indeholde en http-adresse, som modtageren kan åbne
Avatar billede hnteknik Novice
21. april 2005 - 13:57 #20
objNewMail.From =

skal være din email adresse som ligger fast inde i systemet.
I CDONTS har du derfor kun modtageremailadresse, subject og body at gøre godt med.
Jeg mener ikke at CDONTS supporter afsendername ( i.e 'Åge'). Det må du skrive i subject som har gjort ovenfor. .from skal være en emailadresse knyttet til din site. Prøv at lave en test.asp med den simple form som jeg har angivet for oven. Du har ikke mulighed for at bruge jmail eller en af de andre mailobjekter under asp ??
Avatar billede bajerfar Nybegynder
21. april 2005 - 14:04 #21
Jeg tror faktisk lige, at du har svaret på mit spørgsmål! Jeg var ikke klar over, at objNewMail.From = "afsender@post.dk" nødvendigvis skulle være en emailadresse! Det er vel også derfor, at denne ikke vil godtage æøå?!

Jeg har ikke mulighed for jmail o.lign
Avatar billede bajerfar Nybegynder
21. april 2005 - 14:57 #22
- og nu kan jeg pludselig kunne sende til én særlig emailadresse, med det script du gav mig!! På trods af, at dette ikke er defineret nogle steder! Alle andre adresse bliver ignoreret, bortset fra en eneste adresse?!?!
Avatar billede hnteknik Novice
21. april 2005 - 15:12 #23
Det lyder som om du har byttet om på modtager og afsender.
Afsender er fast "admin@ditwebsted.dk"
Modtager er Request.QueryString("reciever")
Subject og Body er valgfrit.

Hvad er variationen af
objNewMail.To  = "modtager@post.dk"
Avatar billede bajerfar Nybegynder
21. april 2005 - 15:18 #24
Ja, du må meget undskylde. Jeg har ret travlt, og alt er derfor ikke lige velovervejet. Skal have dette til at virke så hurtigt som muligt.

objNewMail.From = (Request.QueryString("sender"))
objNewMail.To  = (Request.QueryString("reciever"))
Avatar billede bajerfar Nybegynder
21. april 2005 - 15:28 #25
Kan det passe, at CDONTS til tider er virkelig lang tid om at sende en mail? Nogle indtastede mailadresser er meget langt tid om at nå frem, og jeg har dem mistænkt for slet ikke at nå frem overhovedet! Det er det jeg mener, når jeg siger at det ser ud som om at nogle mailadresser ikke dur?!?! Send og recieve er ikke byttet rundt, har testet.
Avatar billede hnteknik Novice
21. april 2005 - 16:29 #26
Der kan godt være op til 20 min alt afhængig af mailserveren. Du skal nok have en javascript kontrol af mailadressens korrekthed. Elles kan du ende med at få en ikke gyldig emailadresse. Der findes flere gode eks. på en submit validering af mailadressen her på siten.

Hvis den virker med en emailadresse skal den nok virke på andre. hvis du vil have en kontrol på om mailen er sendt må du have en anden email komponent.
Avatar billede bajerfar Nybegynder
21. april 2005 - 17:23 #27
ok! Tak for din tålmodighed, det har været en stor hjælp at vende det med dig. Stopper for idag, vender tilbage, hvis der er flere problemer. Lige nu, ser det ud til, at det virker!
Avatar billede hnteknik Novice
21. april 2005 - 18:36 #28
You'r welcome. Holder oggå nu. Min datter skal konfimeres imorgen og der er dømt PC fri zone.
Avatar billede bajerfar Nybegynder
21. september 2005 - 17:42 #29
.. lukker!
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