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 )