webForumDet fria alternativet

Kan nån fixa koden...?

ASP

7 svar · 197 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Bara för att det snart är Julafton kan väl någon vara snäll att fixa denna kod åt mig:

<table>
<tr>
<td width="100" bgcolor="#FFE784">
<%
Else If strSplitted(1) = "actionlogin" Then 'Nån har loggat in
		ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " stiger in i chatten (" & 

strSplitted(0) & ")</b></font>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionlogoff" Then 'Nån har loggat ut
		ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " har lämnat chatten (" & 

strSplitted(0) & ")</font></b>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionkicked" Then 'Nån har kickats ut ur chatten av en administratör
		ParseText = "<font color=""#aaaaaa"">[" & Server.HTMLEncode(strSplitted(2)) & " har kickats ut ur chatten av 

" & Server.HTMLEncode(strSplitted(3)) & " (" & strSplitted(0) & ")]</font>" & vbCrLf & vbCrLf

%>
</td>
</tr>
<tr>
<td width="400" bgcolor="#FFE784">
<%
	If strSplitted(1) = "public" Then 'Meddelande till alla
		ParseText = "<b><font color='#000080'>" & strSplitted(2) & "</font></b><i><font color='#999999'> - (" & 

strSplitted(0) & ")</i></font>: " & CheckForLinks(Server.HTMLEncode(strSplitted(3))) & "</td></tr>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionlogin" Then 'Nån har loggat in
		ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " stiger in i chatten (" & 

strSplitted(0) & ")</b></font>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionlogoff" Then 'Nån har loggat ut
		ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " har lämnat chatten (" & 

strSplitted(0) & ")</font></b>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionkicked" Then 'Nån har kickats ut ur chatten av en administratör
		ParseText = "<font color=""#aaaaaa"">[" & Server.HTMLEncode(strSplitted(2)) & " har kickats ut ur chatten av 

" & Server.HTMLEncode(strSplitted(3)) & " (" & strSplitted(0) & ")]</font>" & vbCrLf & vbCrLf
	Else 'Privat meddelande
		If LCase(strSplitted(1)) = LCase(Session("Name")) Then
			strText = Server.HTMLEncode(Mid(strSplitted(3), 9 + Len(strSplitted(1)), Len(strSplitted(3))))
			ParseText = "<font color=""#ff0000""><b>" & Server.HTMLEncode(strSplitted(2)) & "</b> - (" & 

strSplitted(0) & "):</table></font>" & CheckForLinks(strText) & "" & vbCrLf & vbCrLf
		ElseIf LCase(strSplitted(2)) = LCase(Session("Name")) Then
			strText = Server.HTMLEncode(Mid(strSplitted(3), 9 + Len(strSplitted(1)), Len(strSplitted(3))))
			ParseText = "<font color=""#0000ff""><b>Skickat till " & Server.HTMLEncode(strSplitted(1)) & "</b> - 

(" & strSplitted(0) & "):</font>" & CheckForLinks(strText) & "" & vbCrLf & vbCrLf
		End If
	End If
End Function
%>
</td>
</tr>
</table>

Felmeddelande blir:

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03F6)
'End' förväntas.
/Ampy/chat1234/room.asp, line 12
Else If strSplitted(1) = "actionlogin" Then 'Nån har loggat in

------------------
Ampy.cjb.net

Medlem sedan juni 200032 967 inlägg
#2

Har du någon if-sats ovanför koden du visar eller är det hela dokumentet?

Har du ingen if-sats över så får du ta bort else på den här raden:

[b]Else[/b] If strSplitted(1) = "actionlogin" Then 'Nån har loggat in

Mvh,

------------------
"Jag är en pojkspoling! Jag är 25 år gammal!"

Medlem sedan feb. 20011 498 inlägg
#3

Om jag tog bort Else som du skrev så får jag detta felmeddelande:

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03F4)
'If' förväntas.
/Ampy/chat1234/room.asp, line 42, column 4
End Function
---^

------------------
Ampy.cjb.net

Medlem sedan juni 200032 967 inlägg
#4

Är detta alltså hela sidan?

------------------
"Jag är en pojkspoling! Jag är 25 år gammal!"

Medlem sedan feb. 20011 498 inlägg
#5

Nej, det är det inte, vill du att jag ska klistra in hela sidan?

------------------
Ampy.cjb.net

Medlem sedan juni 200032 967 inlägg
#6

Ja, det skulle nog vara bra. Saknar till exempel funktionsbörjan och skapande av strSplitted.

Mvh,

------------------
"Jag är en pojkspoling! Jag är 25 år gammal!"

Medlem sedan feb. 20011 498 inlägg
#7

här kommer den:

<!--#include file="functions.inc.asp"-->
<%

Function ParseText(strText) 'Skriver man en pipe &#0124; i texten så kommer allt efter pipen att försvinna från meddelandet!
	strSplitted = Split(strText, "&#0124;")%>

<table>
<tr>
<td width="100" bgcolor="#FFE784">
<%
If strSplitted(1) = "actionlogin" Then 'Nån har loggat in
		ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " stiger in i chatten (" & 

strSplitted(0) & ")</b></font>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionlogoff" Then 'Nån har loggat ut
		ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " har lämnat chatten (" & 

strSplitted(0) & ")</font></b>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionkicked" Then 'Nån har kickats ut ur chatten av en administratör
		ParseText = "<font color=""#aaaaaa"">[" & Server.HTMLEncode(strSplitted(2)) & " har kickats ut ur chatten av 

" & Server.HTMLEncode(strSplitted(3)) & " (" & strSplitted(0) & ")]</font>" & vbCrLf & vbCrLf

%>
</td>
</tr>
<tr>
<td width="400" bgcolor="#FFE784">
<%
	If strSplitted(1) = "public" Then 'Meddelande till alla
		ParseText = "<b><font color='#000080'>" & strSplitted(2) & "</font></b><i><font color='#999999'> - (" & 

strSplitted(0) & ")</i></font>: " & CheckForLinks(Server.HTMLEncode(strSplitted(3))) & "</td></tr>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionlogin" Then 'Nån har loggat in
		ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " stiger in i chatten (" & 

strSplitted(0) & ")</b></font>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionlogoff" Then 'Nån har loggat ut
		ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " har lämnat chatten (" & 

strSplitted(0) & ")</font></b>" & vbCrLf & vbCrLf
	ElseIf strSplitted(1) = "actionkicked" Then 'Nån har kickats ut ur chatten av en administratör
		ParseText = "<font color=""#aaaaaa"">[" & Server.HTMLEncode(strSplitted(2)) & " har kickats ut ur chatten av 

" & Server.HTMLEncode(strSplitted(3)) & " (" & strSplitted(0) & ")]</font>" & vbCrLf & vbCrLf
	Else 'Privat meddelande
		If LCase(strSplitted(1)) = LCase(Session("Name")) Then
			strText = Server.HTMLEncode(Mid(strSplitted(3), 9 + Len(strSplitted(1)), Len(strSplitted(3))))
			ParseText = "<font color=""#ff0000""><b>" & Server.HTMLEncode(strSplitted(2)) & "</b> - (" & 

strSplitted(0) & "):</table></font>" & CheckForLinks(strText) & "" & vbCrLf & vbCrLf
		ElseIf LCase(strSplitted(2)) = LCase(Session("Name")) Then
			strText = Server.HTMLEncode(Mid(strSplitted(3), 9 + Len(strSplitted(1)), Len(strSplitted(3))))
			ParseText = "<font color=""#0000ff""><b>Skickat till " & Server.HTMLEncode(strSplitted(1)) & "</b> - 

(" & strSplitted(0) & "):</font>" & CheckForLinks(strText) & "" & vbCrLf & vbCrLf
		End If
	End If
End Function
%>
</td>
</tr>
</table>

Function IsOnline(strUser) 'Kolla om en användare är online just nu...
	Application.Lock
	online = Application("Online")

	online = Split(online, vbCrLf)
	For Each line In online
		If Len(line) < 2 Then Exit For
		line = Split(line, "&#0124;")
		If LCase(line(0)) = LCase(Session("Name")) Then
			IsOnline = "True"
			Exit For
		End If
	Next

	Application.Unlock
End Function
%>
<!doctype html public "-//w3c//dtd html 3.2//en">

<html>

<head>
<style type="text/css">
body { 
scrollbar-base-color: #FFE784; 
scrollbar-arrow-color: #000000; 
scrollbar-highlight-color: #; 
scrollbar-3dlight-color: #000000; 
scrollbar-darkshadow-color: #000000; 
scrollbar-track-color: #FFF7EF }
</style>

<title>Chat rum</title>
<meta name="GENERATOR" content="Arachnophilia 4.0">
<meta name="FORMATTER" content="Arachnophilia 4.0">
<style type="text/css">
	body {font-family: Verdana, Helvetica, sans-serif; font-size: 10px; background-color: #ffffff}
	td {font-family: Verdana, Helvetica, sans-serif; font-size: 10px}
	a {font-family: Verdana, Helvetica, sans-serif; font-size: 10px; color: #aa9d71; text-decoration: none}
	a:hover {font-family: Verdana, Helvetica, sans-serif; font-size: 10px; color: #145285}
	#textbox {font-family: Verdana, Helvetica, sans-serif; font-size: 10px}
	.blacklink {color: #000000; text-decoration: underline}
	.boxen {border: 1px #000000 solid; font-size: 5; background-color: #F1F1F1}
</style>
<script language="JavaScript">
<!-- ;

function refresh() {
	location.href = "room.asp?refreshrate=<%=Request("refreshrate")%>";
}

// end hide -->
</script>
</head>

<body bgcolor="#FFF7EF" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000" 

onload="javascript:setTimeout('refresh()',<%=Request("refreshrate")%> );">

<%
Set fileObject = Server.CreateObject("Scripting.FileSystemObject")
CheckFile
Set inStream = fileObject.OpenTextFile(Server.MapPath("" & Date & ".txt"), 1, True, False)

	rawfile = inStream.ReadAll

	splittedFile = Split(rawfile, vbCrLf)

	For Each thisLine in splittedFile

		If Len(thisLine) <= 3 Then Exit For
		If DateDiff("s", DateAdd("s", 0, Left(thisLine, 19)), Now) => 120 Then Exit For '120 sekunder = 2 minuter

		file = file & vbCrLf & ParseText(thisLine)
	Next

inStream.Close
Set inStream = Nothing

If IsOnline(Session("Name")) = "True" Then
	strText = Request.Form("lastmessage")
	If strText <> "" And Session("lastmessage") <> strText Then
		Session("lastmessage") = strText
		If LCase(Left(strText, 6)) = "/msg " & chr(34) Then
			strTo = Mid(strText, 7, Instr(7, strText, Chr(34)) - 7)
		Else
			strTo = "public"
		End If

		file = ParseText(Now & "&#0124;" & strTo & "&#0124;" & Session("Name") & "&#0124;" & strText) & file
		rawfile = Now & "&#0124;" & strTo & "&#0124;" & Session("Name") & "&#0124;" & strText & vbCrLf & rawfile

		Set outStream = fileObject.CreateTextFile(Server.MapPath("" & Date & ".txt"), True)
		outStream.WriteLine(rawfile)
		outStream.Close
		Set outStream = Nothing
	End If
Else
	Session("Name") = ""
	Session("Admin") = ""
	Session("lastmessage") = ""
	'Vill inte ta bort Pelle´s egna sessioner så tömmer bara mina egna...
%>
<script language="JavaScript">
<!-- ;

parent.location.href = "chatlogin.asp?error=not_logged_in";

// end hide -->
</script>
<%
End If

If DateDiff("s", Time, "23:59:59") <= 120 Then
	file = "<font color=""#ff0000""><b>[Om " & DateDiff("s", Time, "23:59:59") + 1 & " sekund(er) byts chat-filen 

ut]</b></font>" & vbCrLf & file
End If

Response.Write file
%>

</body>

</html>

------------------
Ampy.cjb.net

Medlem sedan juni 200032 967 inlägg
#8

Nu har jag bara kikat igenom den första funktionen och ser att du har missat ett end if.

<!--#include file="functions.inc.asp"-->
<%
Function ParseText(strText) 'Skriver man en pipe &#0124; i texten så kommer allt efter pipen att försvinna från meddelandet!
strSplitted = Split(strText, "&#0124;")%>

<table>
<tr>
<td width="100" bgcolor="#FFE784">
<%
If strSplitted(1) = "actionlogin" Then 'Nån har loggat in
	ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " stiger in i chatten (" & strSplitted(0) & ")</b></font>" & vbCrLf & vbCrLf
ElseIf strSplitted(1) = "actionlogoff" Then 'Nån har loggat ut
	ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " har lämnat chatten (" & strSplitted(0) & ")</font></b>" & vbCrLf & vbCrLf
ElseIf strSplitted(1) = "actionkicked" Then 'Nån har kickats ut ur chatten av en administratör
	ParseText = "<font color=""#aaaaaa"">[" & Server.HTMLEncode(strSplitted(2)) & " har kickats ut ur chatten av " & Server.HTMLEncode(strSplitted(3)) & " (" & strSplitted(0) & ")]</font>" & vbCrLf & vbCrLf
[b]End If[/b]
%>
</td>
</tr>
<tr>
<td width="400" bgcolor="#FFE784">
<%
If strSplitted(1) = "public" Then 'Meddelande till alla
	ParseText = "<b><font color='#000080'>" & strSplitted(2) & "</font></b><i><font color='#999999'> - (" & strSplitted(0) & ")</i></font>: " & CheckForLinks(Server.HTMLEncode(strSplitted(3))) & "</td></tr>" & vbCrLf & vbCrLf
ElseIf strSplitted(1) = "actionlogin" Then 'Nån har loggat in
	ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " stiger in i chatten (" & strSplitted(0) & ")</b></font>" & vbCrLf & vbCrLf
ElseIf strSplitted(1) = "actionlogoff" Then 'Nån har loggat ut
	ParseText = "<b><font color=""#000000"">" & Server.HTMLEncode(strSplitted(2)) & " har lämnat chatten (" & strSplitted(0) & ")</font></b>" & vbCrLf & vbCrLf
ElseIf strSplitted(1) = "actionkicked" Then 'Nån har kickats ut ur chatten av en administratör
	ParseText = "<font color=""#aaaaaa"">[" & Server.HTMLEncode(strSplitted(2)) & " har kickats ut ur chatten av " & Server.HTMLEncode(strSplitted(3)) & " (" & strSplitted(0) & ")]</font>" & vbCrLf & vbCrLf
Else 'Privat meddelande
	If LCase(strSplitted(1)) = LCase(Session("Name")) Then
		strText = Server.HTMLEncode(Mid(strSplitted(3), 9 + Len(strSplitted(1)), Len(strSplitted(3))))
		ParseText = "<font color=""#ff0000""><b>" & Server.HTMLEncode(strSplitted(2)) & "</b> - (" & 
		strSplitted(0) & "):</table></font>" & CheckForLinks(strText) & "" & vbCrLf & vbCrLf
	ElseIf LCase(strSplitted(2)) = LCase(Session("Name")) Then
		strText = Server.HTMLEncode(Mid(strSplitted(3), 9 + Len(strSplitted(1)), Len(strSplitted(3))))
		ParseText = "<font color=""#0000ff""><b>Skickat till " & Server.HTMLEncode(strSplitted(1)) & "</b> - (" & strSplitted(0) & "):</font>" & CheckForLinks(strText) & "" & vbCrLf & vbCrLf
	End If
End If
End Function
%>

Men, generellt ska man inte skriva ut någonting till webbläsaren med en funktion, utan returnera värden som du använder dig av i din kod. Jag skulle hellre se att du lyfter ut all html ur funktionen och bara skriver ut det som returneras av funktionen, och har html runt stället där du kallar på funktionen.

Mvh,

------------------
"Jag är en pojkspoling! Jag är 25 år gammal!"

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