webForumDet fria alternativet

Auto kick

35 svar · 1 372 visningar · startad av SGuncel

SGuncelMedlem sedan jan. 2007217 inlägg
#1

Hej!
Jag har tänk och göra ett system som kickar fpl automatisk från chatt när man spammar eller skriver ett ord som man inte ska.

Själva inlägget är att jag behöver hjälp hur jag ska göra sån system.
Det ska vara t.ex så här:
System 12:05
Kickade Test i 55 minuter.
Anledning: Spammade

Sen ska användaren inte komma in i chatten i 55 minuter.
Undrar om någon skulel hjälpa hur sån system skulle göras?

SjodahlMedlem sedan maj 20033 218 inlägg
#2

Ju du får väl ta reda på hans IP och se till så att det inte är välkomen dit igen på 55min? Men har du gjort själva chatten?

Request.Servervariables("REMOTE_HOST")
SGuncelMedlem sedan jan. 2007217 inlägg
#3

Men problemet är att jag inte vet hur jag ska göra.
Ja, jag har gjort själva chatten.

PoffeMedlem sedan apr. 20022 743 inlägg
#4

Ett sätt att göra det på är att du sparar den kickade användarens IP och tid då han får komma tillbaka i databasen. Sedan när någon försöker ansluta till chatten så kollar du mot databasen om IP:t finns där och om tiden har gått ut eller inte. Har den inte det så får han inte komma in, har den det så är han välkommen och då kan du ta bort posten ur darabasen.

SGuncelMedlem sedan jan. 2007217 inlägg
#5

Om jag skriver t.ex. 55 minuter hur ska jag kunna avrunda det till datum och tid?
t.ex. Om jag kickar någon kl 17:05 och personen ska komma in efter 55 min. Så måste det stå 2007-08-08 18:00 i data basen. Hur ska jag göra det?

M.CheraghiMedlem sedan juli 20015 107 inlägg
#6

SGuncel skrev:

Om jag skriver t.ex. 55 minuter hur ska jag kunna avrunda det till datum och tid?
t.ex. Om jag kickar någon kl 17:05 och personen ska komma in efter 55 min. Så måste det stå 2007-08-08 18:00 i data basen. Hur ska jag göra det?

Sök på "DateDiff"

SGuncelMedlem sedan jan. 2007217 inlägg
#7

Sökte men hitta inget om det.

PoffeMedlem sedan apr. 20022 743 inlägg
#8

Var sökte du då? I detta forum (ASP) får jag fram 157 träffar och på google runt 252 000.

Dock är det nog DateAdd som du behöver om du ska använda den varianten. DateDiff kollar tid mellan två datum, DateAdd lägger till en viss tid på ett datum. I detta fall ska du ju lägga till 55 minuter på nuvarande datum (med datum menar jag både datum och tid, t.ex. 2007-08-09 04:52:00).

Sök på DateAdd i detta forum, det vet jag att du får fram svar på.

SGuncelMedlem sedan jan. 2007217 inlägg
#9

Så nu har jag gjort så här, men när jag kickar någon så får jag detta fel meddelandet:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-5.0.19-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '','2007-10-18 07:45:22')' at line 1

/Chat/kickUser.asp, line 69

<!-- #include file="../Inc/DBConnection.asp" --><!-- #include file="../Inc/LoginCheck.asp" --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Användarnamn</title>
<style type="text/css">
input {
	font-family: "Trebuchet MS";
	font-size: 12px;
	font-weight: normal;
	font-style: normal;
	font-variant: normal;
	text-transform: capitalize;
	text-decoration: none;
	background-color: #FFFFFF;
	border-style: dashed;
	border-width: 1px;
	padding: inherit;
	margin: auto;
}
.style1 {
	text-align: center;
}
</style>
</head>

<body>
<form action="?kick=User" method="post">
<table cellpadding="1" cellspacing="0" width="35%">
	<tr>
		<td style="width: 108px">
			Användarnamn:
		</td>
		<td>
			<input name="kickUser" value="<%=Request.Querystring("UsrTLAlias")%>" style="width: 180px" />
		</td>
	</tr>
	
	<tr>
		<td style="width: 108px">
			Minuter
		</td>
		<td>
			<input name="kickMinutes" style="width: 180px" />
		</td>
	</tr>

	<tr>
		<td style="width: 108px">
			Anledning:
		</td>
		<td>
			<input name="kickReason" style="width: 180px" />
		</td>
	</tr>
	<tr>
	<td colspan="2" class="style1">
	<input type="submit" value="Kicka" style="width: 180px" />
	</td>
	</tr>

</table>
</form>

<%
		IF Request.Querystring("kick")="User" then
		
			ObjConn.Execute("Insert into chatKick (kickUser, kickUntil, kickReason, kickUserBy) values ('" & SafeSQL(Request.Form("KickUser")) & "','" & SafeSQL(Request.Form("KickMinutes")) & "'," & SafeSQL(Request.Form("kickReason")) & "','" & DateAdd("n",Request.Form("kickMinutes"), Now) & "')")
			Response.Write "Så, användaren är kickad"
			Response.Redirect "KickUser.asp"
			End If
%>

</body>

</html>
SjodahlMedlem sedan maj 20033 218 inlägg
#10

Skriv ut frågan innan du exekvera den.

SGuncelMedlem sedan jan. 2007217 inlägg
#11

Så nu om man kmr til självaste problemet så ahr jag svårt och lösa.
Behöver verkligen hjälp med det.
Nu tänker jag kolla igenom databasen och se om användaren finns. Om användaren finns ska han/hon skickas till någon annan sida.
Så här ser mina kod ut för chatten:

De här koden listar ut vem som är inne i chatten och man skickar meddelandet.

<!-- #include file="../Inc/DBConnection.asp" --><!-- #include file="../Inc/LoginCheck.asp" --><!-- #include file="../Inc/RegExp.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>
<meta http-equiv="Content-Language" content="sv">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="copyright" content="">

<title></title>
<link rel="stylesheet" href="../_Style/SidansStyle.css" type="text/css">

</head>

<body>

<%
	Set ObjRS2 = ObjConn.Execute("Select * from TLUSers where UsrId="&SafeSQL(Session("UsrId"))&"")
	
	ObjConn.Execute("Update TLUsers set UsrLastActive='" & Now & "'  where UsrID ="&SafeSQL(Session("UsrID"))&"")
	
Dim strVart_page , strVart_Query, strVart
strVart_page     = Mid(Request.ServerVariables("PATH_INFO"),1)
strVart_Query     = Request.ServerVariables("QUERY_STRING")

If Len(strVart_Query) > 0 Then
    strVart = strVart_page &"?"& strVart_Query
        Else
    strVart = strVart_page
End If

dim strVart_LinkName, strVart_Name
strVart_LinkName	= ("Chattar på Planket")

strVart_Name = strVart_LinkName

ObjConn.Execute("UPDATE TLUsers SET UsrWhere = '" & strVart & "', UsrWhereName = '" & strVart_Name & "' WHERE UsrID = "&SafeSQL(Session("UsrID")))
%>

<table cellpadding="0" cellspacing="0" width="705">

<tr>
<td height="5">
<img src="../_Grafik/Profil_Vanster_Uppe.gif" alt="" width="9" height="7"></td>
<td height="7" style="background-image: url('../_Grafik/Profil_Uppe.gif');" width="666"></td>
<td height="5">
<img src="../_Grafik/Profil_Hoger_Uppe.gif" alt="" width="15" height="7"></td>
</tr>

<tr>
<td width="9" style="background-image: url('../_Grafik/Profil_Vanster.gif');" height="525"></td>
<td width="681" height="197">
                
                              <table width="100%"  border="0" cellspacing="0" cellpadding="0" height="520">
                <tr>
                              <td width="506" height="520" valign="top">
<iframe src="Chat2.asp" width="495" height="508" name="Chat2" border="0" frameborder="0"></iframe>
<td valign="top" width="2" class="Profil_Linje_Vanster">
&nbsp;</td>
                </td>
<td valign="top">

<form action="?Add=ChatMessage" method="post">

<table width="100%"  border="0" cellspacing="0" cellpadding="0" height="208">
                <tr>
					<td width="5" height="182">
					<td>
                <textarea name="ChatMessage" style="width: 160;height:182" rows="1" cols="20"></textarea>
                </td></td>
                </tr>
                
        <%
				Response.Write "<tr>"
				Response.Write "<td width='5' height='35'>"
				Response.Write "<td>"
				Response.Write "Bakgrund: "               
				Response.Write "<select name='Background' style='width: 90;height:22' size='1'>"
				Response.Write "<option value='#FFFFFF' style='background-color: #FFFFFF;'>Vit</option>"
				Response.Write "<option value='#AECEFF' style='background-color: #AECEFF;'>Babyblå</option>"
				Response.Write "<option value='#FFC1F0' style='background-color: #FFC1F0;'>Babyrosa</option>"
	Response.Write "<option value='Gray' style='background-color: Gray;'>Grå</option>"
	Response.Write "<option value='#FF00FF' style='background-color: #FF00FF;'>Lila</option>"
	Response.Write "<option value='#BDFF82' style='background-color: #BDFF82;'>Ljusgrön</option>"
	Response.Write "<option value='Pink' style='background-color: Pink;'>Rosa</option>"
	Response.Write "<option value='#FF6666' style='background-color: #FF6666;'>Röd</option>"
	Response.Write "<option value='#70829E' style='background-color: #70829E;'>Ömer's Färg</option>"
	Response.Write "<option value='#9D7E61' style='background-color: #9D7E61;'>Testar</option>"
	Response.Write "<option value='#839677' style='background-color: #839677;'>Mörkgrön</option>"
				Response.Write "</select>"
				Response.Write "</td>"
				Response.Write "</td>"
				Response.Write "</tr>"
%>

<tr>
					<td width="5" height="26">
					<td>
                <input type="submit" value="Skicka" style="width: 160;"></td></td>
                </tr>
                                                                                                                  
                                </table>
                                </form>
                                
                                <table width="100%"  border="0" cellspacing="0" cellpadding="0" height="34">
                <tr>
					<td width="2%" height="22">
					<td colspan="2">
					
					                           					
					<%
					Set ObjRS = ObjConn.Execute("Select * FROM TLUsers WHERE UsrWhereName='Chattar på Planket' Order By UsrTLAlias ASC")
					
Response.write "<span class=""Fett_Text"">Användare i Chatten</span>"
%>
                </td></td>
                </tr>
                <%
                 Do until ObjRS.Eof
                 %>
                    <tr>
					<td width="2%" height="12">
					<td valign="top" width="65%">
                <%
Response.write " <a href=""../UsrProfile/Profil.asp?UsrId=" & ObjRS("UsrId") & """>" & ObjRS("UsrTLAlias") & "</a>"
%>
                </td></td>
             			
					<td valign="top" width="33%">
                                <% 
                If Session("UsrAdmin")="1" Then
    			Response.Write "<a href=""kickUser.asp?UsrTLAlias="&Server.HtmlEncode(ObjRS("UsrTLAlias"))&""" target=""_blank"">Kicka</a>"
    			
    			ElseIf Session("UsrAdmin")="2" Then
    		
    			Response.Write "Kicka"
    			End If
    			%>
                </td>
                </tr>
                <%
ObjRS.MoveNext
Loop
ObjRS.close
set ObjRS=nothing
%>
                                                                                                                  
                                </table>
</td>
                </td>
                </tr>
                </table>
                
                </td>
<td width="15" style="background-image: url('../_Grafik/Profil_Hoger.gif');" height="197"></td>
</tr>

<tr>
<td height="5">
<img src="../_Grafik/Profil_Vanster_Nere.gif" alt="" width="9" height="6"></td>
<td height="5" style="background-image: url('../_Grafik/Profil_Nere.gif');"></td>
<td height="5">
<img src="../_Grafik/Profil_Hoger_Nere.gif" alt="" width="15" height="6"></td>
</tr>

<tr>
<td height="5">
<img src="../_Grafik/Profil2_Vanster_Nere.gif" alt="" width="9" height="16"></td>
<td height="5" style="background-image: url('../_Grafik/Profil2_Nere.gif');"></td>
<td height="5">
<img src="../_Grafik/Profil2_Hoger_Nere.gif" alt="" width="15" height="16"></td>
</tr>
</table>
<%

		IF Request.Querystring("Add")="ChatMessage" then
		IF Len(Request.Form("ChatMessage")) > 0 then

	ObjConn.Execute("Insert into Chat (UsrTLAlias, UsrID, Background, SendDatum, ChatMessage, IP) values ('"&SafeSQL(Session("UsrTLAlias"))&"','"&SafeSQL(Session("UsrID"))&"','"&SafeSQL(Request.Form("Background"))&"','" & now &"', '"&SafeSQL(Request.Form("ChatMessage"))&"', '"&SafeSQL(Request.ServerVariables("REMOTE_ADDR"))&"')")
	ObjConn.Close : Set ObjConn = Nothing

					Response.Cookies("Chat") = now
					Response.Cookies("Chat").Expires = DateAdd("s", 15, now())
		else

	ObjConn.Close : Set ObjConn = Nothing

					Session("error")="Du måste skriva inlägg."
		End if
					Response.Redirect "Chat.asp"
		End if
%>
</body>

</html>
SGuncelMedlem sedan jan. 2007217 inlägg
#12

De här koden skriver ut chat posterna från databasen.

<!-- #include file="../Inc/DBConnection.asp" --><!-- #include file="../Inc/LoginCheck.asp" --><!-- #include file="../Inc/RegExpChatt.asp" -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="copyright" content="">

<meta http-equiv="refresh" content="30">

<title></title>
<link rel="stylesheet" href="../_Style/SidansStyle.css" type="text/css">

<%
	Set ObjRS = ObjConn.Execute("Select * From Chat ORDER BY SendDatum desc LIMIT 15")

	Set ObjRS2 = ObjConn.Execute("Select * from TLUSers where UsrId="&SafeSQL(Session("UsrId"))&"")

		IF Request.Cookies("Chat") ="" then

		else
					Response.Write ""
		End if

		IF ObjRS.Eof then
					Response.Write "<span style=""padding:3px"">Finns inga chat inlägg.</span>"
		else

	Do until ObjRS.Eof

%>
<table width="100%"  border="0" cellspacing="0" cellpadding="0" height="71" style="Background-Color: <%=ObjRS("Background")%>;" background="<%=ObjRS("Background")%>">
                <tr>
					<td width="58" height="71" style="padding: 3px;" valign="top">
                <img src="../_Grafik/Pix.gif" width="3" height="20">	
<%
	Set objBild = objConn.Execute("SELECT UsrPic FROM TLUsers where UsrID="& CLng(ObjRS("UsrID")) &"")

		IF Len(objBild("UsrPic")& "") > 0 then
					Response.Write "<img width='50' height='60' src='"& objBild("UsrPic") &"' border='1'>"
		else
					Response.Write "<img width='50' height='60' src='../_Grafik/ingen_bild.gif' border='1'>"
		End if

	objBild.Close : Set objBild = Nothing
%>
       
          <td>
              <table width="100%"  border="0" cellspacing="0" cellpadding="0" height="14">
                <tr>
                  <td width="981" height="14" valign="top" style="padding: 3px;">
                <a href="../UsrProfile/Profil.asp?UsrId=<%=Server.HtmlEncode(ObjRS("UsrID"))%>" target="Start"><%=Server.HtmlEncode(ObjRS("UsrTLAlias"))%></a>&nbsp;&nbsp; 
				|&nbsp; <span class="Fett_Text"><%=FormatDateTime(ObjRS("SendDatum"),vbshorttime)&" "&FormatDateTime(ObjRS("SendDatum"),vblongdate)%></span>                    
           </td>
                  <td width="204" height="14" valign="top" style="padding: 3px;"><%
If ObjRS2("UsrAdmin")="1" Then
%>
<b>Admin:</b>

<a href="?Delete=ChatPost">Ta bort</a></td>
<%
End If
%>                 	</td>
                </tr>
                </table>
                
              <table width="100%"  border="0" cellspacing="0" cellpadding="0" height="56">
                <tr>
                  <td width="259" height="56" valign="top" style="padding: 3px;">
                	<%=byt(ObjRS("ChatMessage"))%>
                	</td>
                </tr>
                </table>
                
                </td></td>
                </tr>
                                             </table>
                                             <table width="100%"  border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="Profil_Linje_Botten">
                <img src="../_Grafik/Pix.gif" width="1" height="1"></td>
</tr>
</table>
<%

	ObjRS.MoveNext
	Loop

	ObjRS.Close : Set ObjRS = nothing
	ObjConn.Close : Set ObjConn = nothing

		End if

%>

Vet inte var jag kontroll systemet ska ligga.

(Texten var förlång så dubbel postade.)

SGuncelMedlem sedan jan. 2007217 inlägg
#13

Nån som kan hjälpa?

hopparnMedlem sedan nov. 20011 551 inlägg
#14

brukar vara mer hjälpsamma men

Grabbarna och tjejerna i dessa forum brukar vara mer förklarande än vad som framgår i denna tråden.

jag har dåligt med tid men skall förklara en liten sak iaf:

skriv ut sql:en... ändra lite i koden, skriv inte detta

ObjConn.Execute("Insert into chatKick (kickUser, kickUntil, kickReason, kickUserBy) values ('" & SafeSQL(Request.Form("KickUser")) & "','" & SafeSQL(Request.Form("KickMinutes")) & "'," & SafeSQL(Request.Form("kickReason")) & "','" & DateAdd("n",Request.Form("kickMinutes"), Now) & "')")

utan skriv detta

string strSQL = "Insert into chatKick (kickUser, kickUntil, kickReason, kickUserBy) values ('" & SafeSQL(Request.Form("KickUser")) & "','" & SafeSQL(Request.Form("KickMinutes")) & "'," & SafeSQL(Request.Form("kickReason")) & "','" & DateAdd("n",Request.Form("kickMinutes"), Now) & "')"

response.write strSQL

ObjConn.Execute(strSQL)

nu kommer du ovanför felmeddelandet se hela din sqlsträng, med variablerna omvandlade till värden. Med denna strängen kan du testa dig fram i din db och testa tills den fungerar. Kontrollera vad som är ändrat och modifiera din strSQL så att den fungerar

mvh
Patrick

SGuncelMedlem sedan jan. 2007217 inlägg
#15

Har redan löst det.
Mitt problem är nu att när jag tänker kolla igenom databasen och se om användaren finns. Om användaren finns ska han/hon skickas till någon annan sida.

Vet inte hur jag ska göra det. Ovanför finns det koder på min chat.

SGuncelMedlem sedan jan. 2007217 inlägg
#16

Skulle någon vara snäll o hjälpa mig? :$

@ndersMedlem sedan juni 200032 969 inlägg
#17

SGuncel skrev:

Mitt problem är nu att när jag tänker kolla igenom databasen och se om användaren finns. Om användaren finns ska han/hon skickas till någon annan sida.

Det är egentligen inte så komplicerat. Jag visar principen så kan du säkert anpassa det till din övriga kod / dina fält- och tabellnamn.

sUserName = replace(request.form("username"), "'", "''")
sSQL = "SELECT 1 FROM TLUSers where UserName = '" & sUserName & "'"
set oRS = oConn.Execute (sSQL)
iErr = 0
if not oRS.EOF then
      ' användarnamnet är upptaget!
      iErr = 1
end if
oRS.Close : set oRS = Nothing
if iErr = 1 then Response.redirect "någonannansida.asp"
SGuncelMedlem sedan jan. 2007217 inlägg
#18

@nders, ojj berätta fel det ska vara tid också.
Om test är bannad till 22:05 och klockan är 21:05 så ska han inte få komma in men om det är 22:05 ska han få komma in.

@ndersMedlem sedan juni 200032 969 inlägg
#19

Öh - ok, då missuppfattade jag din fråga. Eller så var det du som frågade fel...

sSQL = "SELECT 1 FROM chatkick where chatuser = '" & sUserName & "' and kickuntil > now()"

Är det något sånt du menar?

SGuncelMedlem sedan jan. 2007217 inlägg
#20

Tack anders, har gjort en kontroll och de fungerar jättebra. Men när jag lägger kontrollen i chatten så fastnar chatten. Alltså så kan man inte komma in till chatten. Vad kan felet vara?

Och sen sak till. Hur gör jag så att alla i chatten ser att jag har kickad en användare från chatten.
De ska stå:
System 12:05
Kickade Test i 55 minuter.
Anledning: Spammade

bland chatten

Kontrollen:

<%
Set ObjRS = ObjConn.Execute("SELECT * FROM chatkick where kickUser='"&Session("UsrTLAlias")&"' and kickUntil > now()")

	IF ObjRS.Eof then
		Response.Redirect "Chat.asp"
	else
%>
<br><br><br>
<br><br>
<div align="center">
<table cellspacing="1" width="456" height="64" border="0" style="">
	<tr>
		<td height="53" colspan="3">
		<p align="center"><font size="5">Du är utslängt från chatten</font></td>
	</tr>

	<tr>
		<td height="14" width="136">
		</td>
		<td height="14" width="64">
		<b>Anledning:</b></td>
		<td height="14" width="246">
		<%=ObjRS("kickReason")%></td>
	</tr>

	<tr>
		<td height="14" width="136">
		</td>
		<td height="14" width="64">
		<b>Tills:</b></td>
		<td height="14" width="246">
		<%=FormatDateTime(ObjRS("kickUntil"),vbshorttime)%></td>
	</tr>

	<tr>
		<td width="136">
		&nbsp;</td>
		<td width="64">
		<b>Av:</b></td>
		<td width="246">
		<%=ObjRS("kickUserBy")%></td>
	</tr>

</table>
</div>
<%
	End If
%>
139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)