اذهب إلى المحتوى

السؤال

نشر

لدي تطبيق متصل بقاعدة بيانات MySQL

اريد عندما يدخل احد بيانات الى التطبيق يتأكد من الان البيانات موجودة في قاعدة البيانات ام لا

مثال:

اسم المستخدم موجود في عامود name

و البريد الالكتروني موجود في عامود email 

وكلمة المرور  موجودة في عامود password 

اذا كانت البيانات موجودة يعطيني تنبيه واذا لم تكن موجودة يسجل البيانات 

ممكن الطريقة.

Screenshot_20220829-155956_MySql auth.jpg

Recommended Posts

  • 0
نشر

الجواب على هذا السؤال يحتمل عدة طرق بحسب التقنية التي قمت باستعمالها لبناء التطبيق، من ناحية قاعدة البيانات يمكنك فرض القيد Unique على العمود حتى يتم منع إضافة قيم مكررة، و لكن من الأفضل أيضاً معالجة ذلك من ناحية التطبيق.

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

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

  • 0
نشر

لا نقوم بالتحقق من وجود كلمة المرور password عادة ولا يوجد طريقة للتحقق منها ولاسيما اننا نقوم بحفظها بشكل مشفر.

أما بالنسبة لل Email و الـ Name فيمكنك التحقق من عدم تكرارهما في الجدول بإضافة ال Unique للعمود عند انشائه كالتالي :

CREATE TABLE User (   
    Name UNIQUE ...,
    Email UNIQUE ...,
    Password  ...,
.
.
.
);

 

 

  • 0
نشر (معدل)

بما أنك لم تحدد أي لغة برمجية تستخدم في تطبيقك , سأفترض أنك تستعمل PHP

 الطريقة بأختصار هي أن تتحقق من وجود الأيميل (email)  في قاعدة البيانات قبل أدخال قيمة جديدة. تابع الكود التالي

 

	<?php
	    //email to check
	    $email = "john@example.com";
	    $name = "john";
	    $password = "password";
	    //prepare the statement
	    $stmt = $pdo->prepare("SELECT * FROM users WHERE email=?");
	    //execute the statement
	    $stmt->execute([$email]);
	    //fetch result
	    $user = $stmt->fetch();
	    if ($user) {
	        // email exists
	        echo "User is already existed."
	 
	    } else {
	        // email does not exist
	        $sql = "INSERT INTO USERS (name, email, password)
	        VALUES ($name, $password, $email)";
	 
	        if ($conn->query($sql) === TRUE) {
	            echo "New record created successfully";
	        } else {
	            echo "Error: " . $sql . "<br>" . $conn->error;
	        }
	    }
	?>
	


شرح الكود:
أولاً: نقوم بحفظ المدخلات القادمة من http request (POST)   في متغيرات بأسماء مناسبة.
ثانياً: ننفذ SQL QUERY   لمحاولة أيجاد سطر في قاعدة البيانات يحتوي نفس قيمة email المدخل. 
ثالثاً: أذا تم العثور على شيء نعيد للمستخدم رسالة مفادها أن مستخدما بنفس الأيميل مسجل بالفعل.
رابعاً: أذا لم يتم العثور علىى شئ ننفذ SQL QUERY لأدخال سطر جديد ألى قاعدة البيانات ومن ثم نعيد ألى المستخدم رسالة نجاح المهمة.

تم التعديل في بواسطة علي محسن
تنسيق النص

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...