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

كيف امنع تكرر رقمين متساويين لمستخدمين؟

مغلق
بدأه فهيم في 1 مايو 2002 · 7 رد · 823 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوه : الاعزاء:

عندي استماره يسجل عليها المستخدم معلوماته ولو افترضنا ان 2 مستخدمين او اكثر اشتركوا في كل المعلومات

فهذا طبعا يشكل مشكله لدي المدير عند تفحص بيانات المستخدمين

فكيف لي ان امنع تكرر مثلا رقمين لمستخدمين اثنين ؟

اي بارسال نص للمستخدم يقول له لقد سبق التسجيل بهذا الاسم ارجو ان تغيره .

اخواني انا عارف بالفكره ولكن لا اعرف اين موقع وماهو الكود الذي يستخدم لهذا ......

تحياتي القلبيه لكل المشرفين والزملاء بالمقدمه الاخوين احمد الجفري والاخ عبد الرحمن المعزاب.(f)

#2

أخي هناك عدة طرق منها :

أولا جعل الحقل المتوقع تكرره مع الحاجة لعدم التكرار هو primary key في قاعدة البيانات ..

الطريقة الثانية و هي الشائعة و هي ارسال بيانات الحقل المتوقع تكراره إلى دالة تقوم باستخدام استعلام يبحث عن العنصر إن كان موجودا ام لا و تعود برسالة مثلا تقول أن العنصر موجود أو لا

.. و هكذا .. الأفكار كثيرة .. و انت حدد ما يناسبك ..

مع تحياتي ..

You can fly while you can touch the sky

#3

اخ محمد

مشكور على الحل لكنه لم يفدني بشي لاني لم اعرف اولا كيف اجعل الحقل في القاعده primary key ثانيا بالنسبه للمعادله ان وجدت فانا لا اعرف موضعها بالظبط اين يجب وضعها في الكود

ولو غلبتك اكثر :o ممكن ان تكتب لي هذه الداله ولو اخذنا جزء من وقتك

وسوف اكون شاكرا

معليش انا مش مستعجل عليها لبضع ايام

(f)

#4

أخوي فهيم

الرقم المعرف لا يكفي؟

ألا أذا أردت الأعضاء يدخلون الموقع او البرنامج بأستخدام هذا الرقم ..

و هذي أنت ماتبها صح؟

في هذه الحالة يجب أن تستخدم شيء ثاني لتعريف المستخدمين

كبريد المستخدم أو رقم الهاتف مثلا أو أسمه ...

مهما كان أختيارك : يجب عدم تكرار هذه البيانات المعرفه

مثال:

سجل مستخدم جديد أسمة Mr.ASP

select * From UserTable Where UserName='Mr.ASP'

شغل هذا الأستعلام ، و اذا رجعت نتائج فهذا الأسم موجود في قاعدة البيانات...

====

ال Primary Key :

في أي قاعدة بيانات مانت عارف تسوية؟

في MySQL

id INT(5) NOT NULL AUTO_INCREMENT ,

PRIMARY KEY(id)

في أكسس سهله؟

في MsSQL

ID INT Not NULL IDENTITY

#5

اخي العزيز انا مافهمت قصدك .... اللي انا عاوزه هو كالتالي :

عند جدول بيسجل بيانات مستخدمين وهذه البيانات هي : مثلا الاسم الرقم السري ورقم المستخدم حيث اني اريد ان يكون المستخدم يدخل برقمه ورعمه السري هذا اذا كان قد سبق له التسجيل

لكن المشكله هو ان البرنامج موجود لكن لست ادري كيف اجعله لا يسجل ارقام مستخدمين متشابهه اي اي رقمين مستخدمين متشابهين يمنع تسجيل الاخر ويقول له بعبارة ارجو ان تسجل برقم اخر لان هذا الرقم سبق التسجيل به

اخي العباره ومافيها هي اني لا اعرف اين موقع الكود هذا في اي فقره من البرنامج ولو حبيت اي سوف ارسلك بالكود كامل لفعلت

شكرا(f)

ملاحظه ان الكود مكتوب بلغة الvbscript

#6

أخوي فهيم خلك فهيم و ركز معاي:

أنت تبي تعرف المستخدمين بأرقامهم صح؟

الرقم البرنامج الي يحددة صح؟

البرنامج يستخدم قاعدة بيانات أكسس؟

زين ؟؟

جدول البيانات يجب أن يحتوي على رقم معرف لكل صف ..

الكود :

SQL="select * from UserTable Where 1=0"
RS.Open SQL,ADO,3
RS.AddNew
RS("Name") =Request.Form("UserName")
RS("Pws") =Request.Form("UserPws")
Rs.Update
UserID=RS("ID")
Rs.Close
Response.Write ( " رقمك هو " & UserID )

في الكود أعلاه أستخدمت جملة أستعلام لا ينتج عنها بيانات لآضافة صف جديد

#7

أخي أظن فهمت قصدك واضحا .. عالعموم لضيق الوقت و اكيد

انت عاذرني أنا عندي صفحة لموقعي الخاص بي التجاري به

صفحة للتسجيل طبعا يطلب منك بيانات ثم عند إرسال البيانات

يتم التأكد ما إذا قد كنت مسجلا من قبل أم لا .. و يعطيك رسالة ..

انت اقرأ الكود ستفهمه لوحدك ..

[l]

name=request("name")

password=request("password")

email=request("email")

age=request("age")

country=request("country")

city=request("city")

telephone=request("telephone")

mobile=request("mobile")

sql="select * from customers where name='"&name&"' and email='"&email&"'"

set rs=createObject("ADODB.recordset")

rs.open sql,cn,3,3

if rs.eof then

rs.AddNew

rs("name")=name

rs("password")=password

rs("email")=email

rs("age")=age

rs("country")=country

rs("city")=city

rs("telephone")=telephone

rs("mobile")=mobile

rs.Update

response.write ""

response.write ""

response.write ""

response.write "

Your registeration is complete"

response.write "

      User Name : " & name

response.write "

      Password : " & password

response.write "

Click Here to back to the main page .. "

else

%>

 

Sorry ..

You are registered

before ..

If you lost your

password select

lost password

link

 

>>>

end if

%>

[/l]

أتمنى أن تكون قد تمكنت من فهمه ..

و انا اسف الف مرة على التقصير ..

بس عالعموم هاي أحسن طريقة .. و هي لما تقرأ الكود و تفهمه و بعدين انت تعدل بما يناسبك .. أقوى طريقة للتعلم لأنك بتكون متأكد

انك لازم تتعلم مو راح تنسخ و تلصق ..

و نقاشنا الخاص على المسينجر ;) (f)

You can fly while you can touch the sky

#8

أسف أخي فهيم نسيت أشرح عن الكود السابق طبعا هو يأخذ بيانات التسجيل للعضو ثم يبحث في قاعدة البيانات عن اسمه و البريد الإلكتروني لا كلمة المرور لاحتمال تغيرها من تسجيل لاخر

ثم إذا وجده موجودا يخيرك إذا كنت قد نسيت كلمة المرور وحاولت التسجيل مرة أخرى فيذهب بك لصفحة البحث عن كلمة المرور لم لم يلاحظها و هذه الطريقة تحمي من ال over writing و هناك الإحتمال الثاني و هو أن لا تكون مسجلا و يتم تسجيلك ..

و شكرا لك ..

You can fly while you can touch the sky

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…