burada yapmak istediğim şey kısaca şu. articles tablosundan bir makale aratıyorum ve bu makaleyi yapan kişinin kullanıcı adını alıp başka bir sorguda kullanmak istedim fakat bi hata aldım. kodu düzeltebilecek birisi var ise veya yardımcı olabilecek birisi var ise çok iyi olur
hata:
bir değerle ilişkili olmadığı 'cevaplanan' yerel değişkenine erişilemiyor
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
# 1. Authentication Kontrolü if "username" not in session: flash("Oturum açmalısınız.", "danger") return redirect(url_for('login')) # 'login' fonksiyonunu varsayımsal olarak kullandım.
cevap = CevapVer(request.form)
if request.method == "POST" and cevap.validate(): icerik = escape(cevap.icerik.data.strip()) # 2. XSS önleme
try: # Veritabanı işlemleri için context yöneticisi kullanma with mysql.connection.cursor() as cursor: # 3. SQL Injection önleme sorgu2 = "SELECT author FROM articles WHERE title = %s AND content = %s" cursor.execute(sorgu2, (article_title, cevap.icerik.data)) sonuclar = cursor.fetchall() cevaplanan = sonuclar[0]['author'] if sonuclar else None
hocam bu kafamı baya karıştırdı ben uyuyorum. teşekkürler yardımın için ama kodun şuan başka bir yerinde hata veriyor. büyük ihtimal bir tane databaseyi kaydedip close işlemini yapmadım. gözümden kaçmış olabilir. ama buraya kodu bırakıyorum yinede siz isterseniz incelersiniz. Şimdiden Teşekkürler
@app.route("/addarticle", methods=["GET","POST"]) def addarticle(): form = ArticleForm(request.form) if request.method=="POST" and form.validate(): title = form.title.data content = form.content.data
cursor = mysql.connection.cursor()
sorgu = "Insert into articles(title,author,content) VALUES(%s,%s,%s)" name = session["username"] cursor.execute(sorgu,(title,name,content))
mysql.connection.commit()
cursor.close() flash("Makale Başarıyla Eklendi","success")
''@app.route('/yorum/<string:article_title>/', methods=["GET","POST"])
def yorum_ekle(article_title):
cevap = CevapVer(request.form)
form = ArticleForm(request.form)
if request.method=="POST" and cevap.validate():
icerik = cevap.icerik.data
cursor2 = mysql.connection.cursor()
cnt = form.content.data
tit = form.title.data
sorgu2 = "SELECT author FROM articles WHERE title = %s AND content = %s "
cursor2.execute(sorgu2,(cnt,tit))
sonuclar = cursor2.fetchall()
cevaplanan = None
cursor = mysql.connection.cursor()
sorgu = "insert into yorum(icerik,cevaplayan,cevaplanan) values(%s,%s,%s)"
cursor.execute(sorgu,(icerik,session["username"],cevaplanan))
mysql.connection.commit()
cursor.close()
flash("Yorum eklendi","success")
return render_template('cevapla.html', article_title=article_title, cevap=cevap)
''
burada yapmak istediğim şey kısaca şu. articles tablosundan bir makale aratıyorum ve bu makaleyi yapan kişinin kullanıcı adını alıp başka bir sorguda kullanmak istedim fakat bi hata aldım. kodu düzeltebilecek birisi var ise veya yardımcı olabilecek birisi var ise çok iyi olur
hata:
bir değerle ilişkili olmadığı 'cevaplanan' yerel değişkenine erişilemiyor
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.