#!/usr/bin/python import sys import MySQLdb import cgi import re import smtplib # specify the filename of the template file TemplateFile = "vinyambar.html" DefaultTitle = "Vinyambar Datenbank" dbname = "vinyambar" From = "accounts@vinyambar.de" smtpserver = 'localhost' # define a new function called Display # it takes one parameter - a string to Display def Display(Content, Title=DefaultTitle): TemplateHandle = open(TemplateFile, "r") # open in read only mode # read the entire file as a string TemplateInput = TemplateHandle.read() TemplateHandle.close() # close the file # this defines an exception string in case our # template file is messed up BadTemplateException = "There was a problem with the HTML template." SubResult = re.subn("", Title, TemplateInput) SubResult = re.subn("", Content, SubResult[0]) if SubResult[1] == 0: raise BadTemplateException print "Content-Type: text/html\n\n" print SubResult[0] def ShowInfo(custid, Password): db = MySQLdb.connect(db=dbname) cursor = db.cursor() cursor.execute("select max(date), max(id) from transactions") lastdate, id = cursor.fetchone() query=("select info, firstname, lastname, email, address, city, country, phone, sum(t.balance), status "+ "from users u, transactions t "+ "where u.id=t.user and u.id="+str(custid)+" and u.password='"+Password+"' "+ "GROUP BY u.id") #print query results = cursor.execute(query); if results > 0: output = "
Letzte Aktualisierung: "+str(lastdate)[0:10]+"
\n" while results>0: results = results - 1 row = cursor.fetchone() line = "" line = line + "\n" line = line + "\n" line = line + "\n" line = line + "\n" line = line + "\n" line = line + "\n" line = line + "\n" line = line + "\n" output = output + line; output=output+"
Vorname
Nachname
EMail Adresse
Adresse
Wohnort
Telefon
Kontostand"+str(row[8])+" DM
Status"+row[9]+"
" query = ("select games.name, races.name, subscriptions.status "+ "from races, games, subscriptions "+ "where subscriptions.race=races.race and subscriptions.game=games.id "+ "and subscriptions.user="+str(custid)+" "); results = cursor.execute(query); output=output+"

Anmeldungen

\n
\n" output=output+"\n" while results>0: results = results - 1 row = cursor.fetchone() line = "" line = line + "\n" line = line + "\n" line = line + "\n" line = line + "\n" output=output+line output=output+"
SpielRasseStatus
"+row[0]+""+row[1]+""+row[2]+"
" query="select date, balance, text from transactions, descriptions where descriptions.handle=transactions.description and user="+str(custid) results = cursor.execute(query); output=output+"

Transaktionen

\n
\n" output=output+"\n" while results>0: results = results - 1 row = cursor.fetchone() line = "" line = line + "\n" line = line + "\n" line = line + "\n" line = line + "\n" output=output+line output=output+"
DatumBetragVerwendung
"+str(row[0])[0:10]+""+str(row[1])+""+row[2]+"
" # output=output+"
" output=output+"
" else: output = "Die Kundennummer oder das angegebene Passwort sind nicht korrekt." Display(output, "Kundendaten #"+str(custid)) def SendPass(custid): try: db = MySQLdb.connect(db=dbname) cursor=db.cursor() # print custid cursor.execute('select email, password from users where id='+str(custid)) email, password = cursor.fetchone() Msg="From: "+From+"\nTo: "+email+"\nSubject: Vinambar Passwort\n\nDein Vinyambar-Passwort lautet: "+password+"\n" Msg=Msg+"\nDiese Mail wurde an Dich versandt, weil Du (oder jemand anders) \n" Msg=Msg+"es im Formular auf http://www.vinyambar.de/accounts.shtml angefordert hat.\n" server=smtplib.SMTP(smtpserver) server.sendmail(From, email, Msg) server.close() Display('
Das Passwort wurde verschickt
', 'Kundendaten #'+str(custid)) except: Display('
Beim Versenden des Passwortes ist ein Fehler aufgetreten
', 'Kundendaten #'+str(custid)) Form = cgi.FieldStorage() if Form.has_key("user"): custid = int(Form["user"].value) else: custid = 0 if Form.has_key("pass"): Password = Form["pass"].value else: Password="" if Password!="": ShowInfo(custid, Password) else: SendPass(custid)