الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إستخدام مُدخلات سابقة في cgi.FieldStorage

بدأه Mr.B في 13 أبريل 2011 · 1 رد · 532 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السّلام عليكم ورحمة الله وبركاته

لديّ خلل في سكربت cgi في طريقة سيره :

#!/usr/bin/python2.7

import cgi,sys,random

sys.stderr = sys.stdout

num1 = random.randrange(1,11)
num2 = random.randrange(1,11)
answer = num1 + num2

print("Content-type: text/html\n")
print("<code>%d + %d :</code>") % (num1,num2)
print("""
<form method=POST action="">
<TR>
<TH align=right>
<code><b>Answer:</b></code>
<input type=text name="answer">
<TR>""")

form = cgi.FieldStorage()

try:
	if form["answer"].value == str(answer):
		print "<br><b>Good</b>"
	else:
		print "<br><b>Wrong</b>"

except KeyError:
	pass

السكربت يعتمد في المُقارنه على قيمّ أُعيد توليدها

مثلاُ إذا طلب إجابة 1 + 3 , وأدخل المُستخدم 4

فإنّها ستكون خطأ لأنّ الأرقام تغيّرت وتغيّرت الإجابة

هل يعرف أحد طريقة لحلّ هذه المُشكلة ؟

#2

ممكن تضع الجواب ك hidden في الفورم وتقارنه بالناتج من حقل الإدخال

لايوجد sessions مع CGI

انصحك بالتوقف عن CGI والإتجاه لإطار عمل مناسب مثل Django

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 15 أبريل 2011 في 00:39

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

مواضيع مشابهة