Mailing List Archive

external method and forms
Hi,

I try to make a simple paswd recovery page for my site.Username and
password stored in mysql db.My DTML document is:
<form action="deg" method="POST">
<h2>Þifre deðiþtirme sayfasýna hoþgeldiniz<h2>
<br>
KULLANICI ADI: <br><input type="text" name="name:ignore_empty"></br>
<p><br> ÞÝFRE: <br> <input type="text" name="sifre:ignore_empty"></br>
<p><br> ÞÝFRE TEKRAR: <br> <input type="text"
name="sifret:ignore_empty"></br>
<p><br> <input type="submit" value="yenile" align="center" >
<dtml-var "deg(REQUEST)">
</form>

and my external python method is as follows:

import crypt
import MySQLdb
conn = MySQLdb.connect(host="localhost",
user = "rxxxx",
passwd = "yyyy",
db = "zzzz")
cursor = conn.cursor()
#return context.responseMessage()
def deg(self):

cryp = crypt.crypt(sifre,'mysecret')
if request.form["sifre"] == request.form["sifret"]:
cursor.execute("""update mytable set PASS_WORD=%s where
USERNAME=%s""",(cryp,name))
print "SUCCESS"
else:
print "please try again!"
cursor=conn.close()
But when i tested from DTML Document I got this error

*Error Type: NameError*
*Error Value: global name 'sifre' is not defined*

Can anybody help me?

Regards

MuratB
Re: external method and forms [ In reply to ]
At last I find and change everything.Now it looks like this:
------MY DTML DOCUMENT-----
<form action="" method="post"><br />
<p><br> KULLANICI ADI <br> <input type="text" name="name">
<p><br> SIFRE<br> <input type="text" name="sifre">
<p><br> SIFRE YENIDEN<br> <input type="text" name="sifret">
<input type="submit" name="formParams:action" value="degistir">
</form>

----MY EXTERNAL PYTHON METHOD------
import crypt
import MySQLdb
def formParams(self,name,sifre,sifret):
conn = MySQLdb.connect(host="localhost",
user = "xxxx",
passwd = "yyyy",
db = "xxxzzz")
cursor = conn.cursor()
self.name=name
self.sifre=sifre
self.sifret=sifret
if sifre == sifret:
cryp = crypt.crypt(sifre,'mysecret')
cursor.execute("""update mytable set PASS_WORD=%s where
USERNAME=%s""",(cryp,name))
return "BASARI ILE DEGISTIRILDI"
else:
return "Sifreler uyusmadi.Tekrar deneyiniz."
cursor=conn.close()


On Mon, Jan 7, 2013 at 11:16 PM, Mike Cullerton <plone@bakednotfried.com>wrote:

> It looks like you missed some quotes.
>
> this line
> cryp = crypt.crypt(sifre,'mysecret')
>
> should probably be
> cryp = crypt.crypt('sifre','mysecret')
>
> Mike
>
> On Jan 7, 2013, at 1:33 PM, murat bilal <murat.bilal@gmail.com> wrote:
>
> Hi,
>
> I try to make a simple paswd recovery page for my site.Username and
> password stored in mysql db.My DTML document is:
> <form action="deg" method="POST">
> <h2>Þifre deðiþtirme sayfasýna hoþgeldiniz<h2>
> <br>
> KULLANICI ADI: <br><input type="text" name="name:ignore_empty"></br>
> <p><br> ÞÝFRE: <br> <input type="text" name="sifre:ignore_empty"></br>
> <p><br> ÞÝFRE TEKRAR: <br> <input type="text"
> name="sifret:ignore_empty"></br>
> <p><br> <input type="submit" value="yenile" align="center" >
> <dtml-var "deg(REQUEST)">
> </form>
>
> and my external python method is as follows:
>
> import crypt
> import MySQLdb
> conn = MySQLdb.connect(host="localhost",
> user = "rxxxx",
> passwd = "yyyy",
> db = "zzzz")
> cursor = conn.cursor()
> #return context.responseMessage()
> def deg(self):
>
> cryp = crypt.crypt(sifre,'mysecret')
> if request.form["sifre"] == request.form["sifret"]:
> cursor.execute("""update mytable set PASS_WORD=%s where
> USERNAME=%s""",(cryp,name))
> print "SUCCESS"
> else:
> print "please try again!"
> cursor=conn.close()
> But when i tested from DTML Document I got this error
>
> *Error Type: NameError*
> *Error Value: global name 'sifre' is not defined*
>
> Can anybody help me?
>
> Regards
>
> MuratB
>
>
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> https://mail.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> https://mail.zope.org/mailman/listinfo/zope-announce
> https://mail.zope.org/mailman/listinfo/zope-dev )
>
>
>