webForumDet fria alternativet

Får inte detta till att fungera =(

ASP

5 svar · 573 visningar · startad av radiomg

Medlem sedan okt. 200218 inlägg
Frågan#1

Denna koden ska visa vilken låt som spelas samt hur många som lyssnar på radion... Den ska hämta information från 2 st servrar.. Men det gör den inte =( .... Låt som spelas skriver man ut <%=currentsong%>

Koden är följande:

Dim intServer
Dim intServerCount
Dim ServerDomain()
Dim ServerPass()
Dim ServerPort()
Dim ServerURL()
Dim ServerStatus()
Dim CurrentSong()
Dim Users()
Dim MaxUsers()
Dim SongHistory()
Dim UserList()

intServer = 2 'Här anger du antal servrar
Redim ServerDomain(intServer)
ReDim ServerPass(intServer)
ReDim ServerPort(intServer)
ReDim ServerURL(intServer)
ReDim ServerStatus(intServer)
ReDim CurrentSong(intServer)
ReDim Users(intServer)
ReDim MaxUsers(intServer)
ReDim SongHistory(intServer)
ReDim UserList(intServer)

'Server 1 - Ange rätt info
ServerDomain(1) = "localhost" 'DOMAIN
ServerPass(1) = "" 'PASSWORD
ServerPort(1) = "" 'PORT
'Server 2 - Ange rätt info
ServerDomain(2) = "localhost" 'DOMAIN
ServerPass(2) = "" 'PASSWORD
ServerPort(2) = "" 'PORT

For intServerCount = 1 To intServer
'INITIATE XMLDOM ENGINE
Set objXMLDOM = Server.Createobject("Microsoft.XMLDOM")
objXMLDOM.async = False
objXMLDOM.setProperty "ServerHTTPRequest", True
ServerURL(intServerCount) = "http://"& ServerDomain(intServerCount) &":"& ServerPort(intServerCount) &"/admin.cgi?pass="& ServerPass(intServerCount) &"&mode=viewxml"
objXMLDOM.Load ServerURL(intServerCount)

'CREATE COLLECTIONS AND STUFF
ServerStatus(intServerCount) = objXMLDOM.SelectSingleNode("//STREAMSTATUS").text
CurrentSong(intServerCount) = objXMLDOM.SelectSingleNode("//SONGTITLE").text
Users(intServerCount) = objXMLDOM.SelectSingleNode("//CURRENTLISTENERS").text
MaxUsers(intServerCount) = objXMLDOM.SelectSingleNode("//MAXLISTENERS").text

Set SongHistory(intServerCount) = objXMLDOM.SelectNodes("//SONG")
Set UserList(intServerCount) = objXMLDOM.SelectNodes("//LISTENER")
Set objXMLDOM = Nothing
Next

Tacksam för svar ...

Glömde skriva felmeddelandet...
Detta kommer upp:

TTP 500.100 - Internt serverfel - ASP-fel
Internet Information Services

--------------------------------------------------------------------------------

Teknisk information (för supportpersonal)

Feltyp:
Response-objekt, ASP 0106 (0x80020005)
En ohanterad datatyp påträffades.

Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

1. Använd [kod]-taggarna
2. Det låter som du inte ändrat till Visa egna http-fel. (Fjärde sista chkbox i Alternativ ska vara urbockad)
3. Varför gör du en loop, enklare att göra två frågor?

Medlem sedan okt. 200218 inlägg
#3

Tack för ditt svar..
Tyvärr så är det inte jag som har gjort scriptet. Detta är ett modifierat script som jag har fått hjälp med..

Du skulle inte vilja ändra scriptet och skicka det till mig eller lägga ut det här?

Skicka ett mail om du är intresserad till mickeman22@hotmail.com
Tack på förhand..
// Micke

Medlem sedan apr. 20031 660 inlägg
#4

HEJ!

Det är inte så svårt, förutsatt att det andra fungerar.

Kopiera
Set objXMLDOM = Server.Createobject("Microsoft.XMLDOM") 
objXMLDOM.async = False 
objXMLDOM.setProperty "ServerHTTPRequest", True
ServerURL(intServerCount) = "http://"& ServerDomain(intServerCount) &":"& ServerPort(intServerCount) &"/admin.cgi?pass="& ServerPass(intServerCount) &"&mode=viewxml" 
objXMLDOM.Load ServerURL(intServerCount)

'CREATE COLLECTIONS AND STUFF 
ServerStatus(intServerCount) = objXMLDOM.SelectSingleNode("//STREAMSTATUS").text 
CurrentSong(intServerCount) = objXMLDOM.SelectSingleNode("//SONGTITLE").text 
Users(intServerCount) = objXMLDOM.SelectSingleNode("//CURRENTLISTENERS").text 
MaxUsers(intServerCount) = objXMLDOM.SelectSingleNode("//MAXLISTENERS").text 

Set SongHistory(intServerCount) = objXMLDOM.SelectNodes("//SONG")
Set UserList(intServerCount) = objXMLDOM.SelectNodes("//LISTENER")
Set objXMLDOM = Nothing

två gånger, ersätt

ServerURL="http://adress1:port"/admin.cgi?pass=lösen&mode=viewxml" 
objXMLDOM.Load ServerURL

(Dvs, ta bort alla arrayhänvisningar ())

ServerStatus = objXMLDOM.SelectSingleNode("//STREAMSTATUS").text 
osv

ServerStatus innehåller då den texten.

Alla Redim kan du bort, Dim får kompletteras beroende på om du vill spara ServerStatus till längre ned på sidan. (ServerStatus1, ServerStatus2 tex)

Medlem sedan okt. 200218 inlägg
#5

hmm..
Har fått den att visa antal lyssnare och låtnamn.. MEN den visar fortfarande bara hur många lyssnare det är från den ena server.. Jag vill att den ska plusa på. Server 1 + server 2 = 30 lyssnare tex..

Den slutliga koden blev:

<%
Dim ServerDomain
Dim ServerPass
Dim ServerPort
Dim ServerURL
Dim ServerStatus
Dim CurrentSong
Dim Users
Dim MaxUsers
Dim SongHistory
Dim UserList

'Server 1 - Ange rätt info
ServerDomain = "localhost" 'DOMAIN
ServerPass = "xxx" 'PASSWORD
ServerPort = "8100" 'PORT
'Server 2 - Ange rätt info
ServerDomain = "localhost" 'DOMAIN
ServerPass = "xxx" 'PASSWORD
ServerPort = "8000" 'PORT

'INITIATE XMLDOM ENGINE
Set objXMLDOM = Server.Createobject("Microsoft.XMLDOM")
objXMLDOM.async = False
objXMLDOM.setProperty "ServerHTTPRequest", True
ServerURL = "http://"& ServerDomain &":"& ServerPort &"/admin.cgi?pass="& ServerPass &"&mode=viewxml"
objXMLDOM.Load ServerURL
ServerStatus = objXMLDOM.SelectSingleNode("//STREAMSTATUS").text
CurrentSong = objXMLDOM.SelectSingleNode("//SONGTITLE").text
Users = objXMLDOM.SelectSingleNode("//CURRENTLISTENERS").text
MaxUsers = objXMLDOM.SelectSingleNode("//MAXLISTENERS").text

'INITIATE XMLDOM ENGINE
Set objXMLDOM = Server.Createobject("Microsoft.XMLDOM")
objXMLDOM.async = False
objXMLDOM.setProperty "ServerHTTPRequest", True
ServerURL = "http://"& ServerDomain &":"& ServerPort&"/admin.cgi?pass="& ServerPass &"&mode=viewxml"
objXMLDOM.Load ServerURL
ServerStatus = objXMLDOM.SelectSingleNode("//STREAMSTATUS").text
CurrentSong = objXMLDOM.SelectSingleNode("//SONGTITLE").text
Users = objXMLDOM.SelectSingleNode("//CURRENTLISTENERS").text
MaxUsers = objXMLDOM.SelectSingleNode("//MAXLISTENERS").text

Set SongHistory = objXMLDOM.SelectNodes("//SONG")
Set UserList = objXMLDOM.SelectNodes("//LISTENER")
Set objXMLDOM = Nothing
%>
<%=Users%><%=currentsong%>

Medlem sedan apr. 20031 660 inlägg
#6

HEJ!

Ja, det är ju inte så konstigt :)

Om detta är den kod du använder gör du såhär nu:

Du sätter variabler för två olika servrar, men du skriver över server 1 med server 2:s värde eftersom du har samma variabelnamn (ServerDomain etc) för båda.

När du sedan hämtar med objXMLDOM hämtar du två gånger samma sak.

Gör såhär:
Skriv in servernamn etc i koden direkt:
ServerURL="http://adress1:port"/admin.cgi?pass=lösen&mode=viewxml"

Spara undan värdena för resp server i variabler med olika namn, CurrentSong1 resp CurrentSong2 tex. Då lovar jag att CurrentSong=CurrentSong1 + CurrentSong2 blir rätt! :e

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)