hali!
irtam egy cgi chatet pythonban, es 2 dolgot szeretnek megoldani:
1. frissuljon, ha uj uzenet erkezik
2. amikor kuldok egy uzenetet es refreshelek, akkor megint elkuldi
lecci segitsetek itt a kod:
-------------------------------------------------------------------------------------
#!/usr/bin/python
import cgitb; cgitb.enable()
from server import *
import slhtml
import time
import cgi
import os
thetime = time.asctime()[11:16]
def checkban(banlist, ip):
f = open(banlist, "r")
bans = f.read()
f.close()
if ip in bans:
print "< div align=\"center\" >< h2 >You're banned!< /h2 >< /div >"
slhtml.end_html()
exit()
def readhistory(history_file):
f = open(history_file, "r")
history = f.readlines()
f.close()
history.reverse()
count = 0
for message in history:
if count < 26:
print message+"< br / >"
count += 1
else:
pass
def writehistory(history_file, content):
f = open(history_file, "a")
f.write(content+"\n")
f.close()
def write_log(log_file, content):
f = open(log_file, "a")
f.write(content+"\n")
f.close()
def msg():
print """
< p >< h2 >Message< /h2 >< /p >
< form method="post" action="%s/cgi-bin/chat.py" >
< p >Name:< /p >
< p >< input type="text" name="name" size="26" / >< /p >
< p >Message:< /p >
< p >< textarea name="msg" cols="30" rows="3" >< /textarea >< /p >
< p >< input type="submit" value="Send!" >< /p >
< /form >""" % (Server.host)
def main():
slhtml.start_html("chat.py", "#000000", "#00ff00")
print "< div align=\"center\" >< h1 >CGI Chat< /h1 >< /div >"
checkban("/var/www/chat/banlist", os.environ["REMOTE_ADDR"])
msg()
form = cgi.FieldStorage()
if form.has_key("name") and form.has_key("msg"):
writehistory("/var/www/chat/history", "[%s] <%s> %s" % (thetime, form["name"].value, form["msg"].value))
write_log("/var/www/chat/log", "[%s] < %s > %s (%s)" % (thetime, form["name"].value, form["msg"].value, cgi.escape(os.environ["REMOTE_ADDR"])))
readhistory("/var/www/chat/history")
else:
readhistory("/var/www/chat/history")
slhtml.end_html()
if __name__ == "__main__":
main()