Graham Dumpleton
grahamd at dscpl.com.au
Thu Oct 20 07:35:27 EDT 2005
Strange. Are you typing in values for all input fields? Which browser are you using? I changed the action target to be my form debugger: http://www.dscpl.com.au/projects/vampire/examples/templates/ form_values.html and even with no input, it still displayed three actual form fields. What do you get if you point form at that URL? Grahamd On 20/10/2005, at 8:22 PM, Robert Squire wrote: > Hello: > Thank you to everyone who responded to my previous posting. > Now I've hit something new. The code that follows is taken exactly > from the tutorial at: > > http://www.modpython.org/live/current/doc-html/tut-pub.html > > I expected the function email to be called with 4 parameters, the > req object and the three inputs from the form. However this is the > error output from mod_python: > =========================== > > Mod_python error: "PythonHandler mod_python.publisher" > > Traceback (most recent call last): > > File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line > 299, in HandlerDispatch > result = object(req) > > File "/usr/lib/python2.4/site-packages/mod_python/publisher.py", > line 136, in handler > result = util.apply_fs_data(object, req.form, req=req) > > File "/usr/lib/python2.4/site-packages/mod_python/util.py", line > 361, in apply_fs_data > return object(**args) > > > TypeError: email() takes exactly 4 non-keyword arguments (1 given) > > =========================== > I tried removing the req from the email parameter list and the > error reflected the change by stating that the function takes 3 > arguments and zero were supplied. Is this a problem brought about > by a change in mod_python since the tutorial was written or have I > made yet another boneheaded error? > > > > In the .htaccess file I have > =========================== > AddHandler mod_python .py > PythonHandler mod_python.publisher > PythonDebug On > =========================== > > The html form, form.html: > =========================== > <html> > Please provide feedback below: > <p> > <form action="form.py/email" method="POST"> > Name: <input type="text" name="name"><br> > Email: <input type="text" name="email"><br> > Comment: <textarea name="comment" rows=4 cols=20></textarea><br> > <input type="submit"> > > </form> > </html> > =========================== > > And the python file, form.py: > =========================== > import smtplib > > WEBMASTER = "webmaster" # webmaster e-mail > SMTP_SERVER = "smtp.comcast.net" # your SMTP server > > def email(req, name, email, comment): > > # make sure the user provided all the parameters > if not (name and email and comment): > return "A required parameter is missing, \ > please go back and correct the error" > > # create the message text > msg = """\ > From: %s > Subject: feedback > To: %s > > I have the following comment: > > %s > > Thank You, > > %s > > """ % (email, WEBMASTER, comment, name) > > # send it out > conn = smtplib.SMTP(SMTP_SERVER) > conn.sendmail(email, [WEBMASTER], msg) > conn.quit() > > # provide feedback to the user > s = """\ > <html> > > Dear %s,<br> > Thank You for your kind comments, we > will get back to you shortly. > > </html>""" % name > > return s > =========================== > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python >
|