hab jetzt aber ein kleiens problem mit eval, koennt ihr mir sagen wie zeiele 66 richtig lauten muesste?
danke
edit:
die beschreibung ist mir nicht ganz gelungen, kugt euch am besten nur den code an ( :
Code: Alles auswählen
import socket
import cgi
def notFound(param):
return "file not found/you not requeted any file"
def login(param):
print "login wird durchlaufen"
return "you loged in", True
def parseReq(req):
method, req, proto = resp.split(" ", 2)#vileicht auch 2
#try:
if method == "GET":
try:
query = req.split("?")[1]
except:
query = ""
elif method == "POST":
query = resp.split("\r\n\r\n")[1]
#except.. . .er.b
param = cgi.parse_qs(query)
param2 = {}
for key, val in param.iteritems():
param2.update({key: "".join(val)})
param = param2
return param
class VirtualFiles:
def __init__(self):
self.cmdData = []
def edit(self):
print "edit wird urchlaufen!!"
return "edit"
seasons = {}
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 80))
s.listen(10)
defs = []
for i in dir(VirtualFiles):
if not i.startswith("_"): #sich an der convention halten
defs.append(i)
print "defs ist", defs
while 1:
socket, ip = s.accept()
ip = ip[0]
print "connected by", ip
resp = socket.recv(512)
param = parseReq(resp)
print "param", param
if not ip in seasons:
html, bool = login(param)
if bool:
seasons.update({ip: VirtualFiles()})
else:
if "action" in param and param["action"] in defs:
eval("html = seasons[ip]." + param["action"] + "()")
else:
html = notFound(param)
socket.send(html)
socket.close()