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.
5 svar · 555 visningar · startad av Fireh
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!
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.
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
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?
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?
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)