webForumDet fria alternativet

Inkludera från annan server

ASP

5 svar · 555 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Frågan#1

Jag har en webbsida på en viss IIS-server tillsammans med en mySQL-databas. Det finns några hundra användare registrerade där. När jag nu från en annan webbserver vill komma åt en del av användarinformationen från mySQL-databasen, så har jag gjort en asp-sida som hanterar detta.

Om den andra webbplatsen kör PHP, så fungerar följande funktion:

$url = "http://www.adress.se/translate.asp?Username=".$user."&Kontroll=".$cc_kontroll."&Funktion=Login"; 
$cclogin = @file($url);
$fornamn = $cclogin[1];
$efternamn = $cclogin[2];
$nick = $cclogin[3];

Dvs translate.asp tar värdena i stängen, kör det på asp-servern och skickar tillbaks en ren text med radbrytningar efter varje värde som funktionen ovan läser in i variabler.

Men hur gör jag motsvarande sak i ASP?
Det måste väl finnas en liknande funktion?

Tack på förhand!

Medlem sedan juli 20003 825 inlägg
#2

Nej, inte inbyggd i standard ASP. Det finns en del features i PHP som inte har någon motsvarighet i ASP och denna kan man räkna dit.

Däremot finns det en komponent, ASPTear, som man kan använda. Men det är, som sagt, tredjepart.

Medlem sedan juni 200032 967 inlägg
#3

Nuförtiden finns ju XMLHTTP att tillgå, som en del av Microsofts XML parser / XML Core Services.

Den ingår som standard i senare versioner av Windows, så de flesta webhotell med Windows-plattform stödjer detta.

Är det egen server är det bara att installera själv. Senaste versionen finner man på http://www.microsoft.com/xml .

mvh

Medlem sedan jan. 2003173 inlägg
#4

Okay, då har jag tittat på XML-grejen... Har fått ihop följande kod som returnerar exakt samma sak som PHP-koden ovan.

Set XmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
XmlHttp.open "GET", "http://www.adress.se/translate.asp?Username="&Username&"&Kontroll="&Kontroll&"&Funktion=Login", false
XmlHttp.send()
Svar = XmlHttp.ResponseText

Det som returneras till variabeln Svar är exakt detsamma som i PHP-versionen, dvs:

Peter
Eldh
Fireh

Varje värde ligger på en ny rad med med vbNewLine som radbrytning.
I PHP används sedan $fornamn = $cclogin[1] för att läsa in rad 1 till variabeln fornamn.

Jag har i nuläget använt samma sak för ASP med XML.
Svaret som blir i variabeln Svar är en ren text med en radbrytning (vbNewLine) efter varje värde.
Finns det något motsvarande funktion i XML-grejen (eller i ASP) för att läsa ur detta till var sin variabel?
Jag hittar det inte :(

En annan detalj...
ÅÄÖåäö blir ett ? samt att de två nästföljande tecknena försvinner.
Nån lösning på det?

Medlem sedan juni 200032 967 inlägg
#5

Finns det något motsvarande funktion i XML-grejen (eller i ASP) för att läsa ur detta till var sin variabel?
Jag hittar det inte

Använd Split() för att dela upp strängen vid radbrytning.

ÅÄÖåäö blir ett ? samt att de två nästföljande tecknena försvinner.
Nån lösning på det?

Den som söker finner.

Medlem sedan jan. 2003173 inlägg
#6

Tack @nders!
vad skulle jag göra utan dig? :birp

Här kommer då den färdiga koden för den som undrar:

Function BinToText(varBinData, intDataSizeInBytes)
  const adFldLong = 128
  const adVarChar = 200
  set objRS = Server.CreateObject("ADODB.Recordset")
  objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong
  objRS.Open
  objRS.AddNew
  objRS.Fields("txt").AppendChunk(varBinData)
  tmp = objRS("txt").Value
  objRS.Close
  BinToText = tmp
End Function

Set XmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
XmlHttp.open "GET", "http://www.adress.se/translate.asp?Username="&Username&"&Kontroll="&Kontroll&"&Funktion=Login", false
XmlHttp.setRequestHeader "Content-type","text/html"
XmlHttp.Send
Svar = Split(BinToText(XmlHttp.ResponseBody,35000),vbNewLine)

Fornamn = Svar(0)
Efternamn = Svar(1)
Nick = Svar(2)
1625 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
323 ms — deklarationer (db)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)
1475 ms — ändringar (db)