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

التاكد من صحة دخول المستخدم

مغلق
بدأه waleedoha في 2 مارس 2006 · 6 رد · 3,198 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم,

أرجو ان تساعدوني اريد ان اتاكد من صحة اسم المشترك وكلمة السر التي يدخلها المستخدم فكيف ذلك

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

وشكرا

#2

اولا عندك form بيدخل فيها المستخدم اسم الدخول و كلمة السر

بعد كدة انت بتبحث فى قاعدة البيانات عن العضو صاحب الأسم دة و صاحب نفس كلمة السر

كما فى المثال :

SELECT * FROM users WHERE user_name = 'waleedoha' AND pass = 'hgk5Gkfbv4C'

بعد كدة بتشوف إذا كان فى نتائج راجعة من الأستعلام

إذا رجع ناتج واحد يبقى المستخدم اعطى اسم مستخدم و كلمة سر صحيحين

إذا مرجعتش نتائج يبقى اسم المستخدم او كلمة السرغلط

ملحوظات :

1- عند تسجيل المستخدمين فى قاعدة البيانات (مثلا كما فى حالة إنشاء اشتراك) :

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

غير كدة انت الأحسن انك تشفر كلمات السر عند حفظها فى قاعدة البيانات بأستخدام md5 مثلا

و عند تسجيل الدخول شفر كلمة السر الى اعطاها المستخدم فى الـ Form و قارنها بكلمة السر المشفرة المحفوظة فى قاعدة البيانات بنفس الطريقة الى قولناها فوق

تم تعديل هذه المشاركة بواسطة shreef في 2 مارس 2006 في 17:32

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#3

جزاك الله خيرا

انا عندي فورم مشان يعبي المستخدم اشتراكه بعدين بتروح على الداتا بيز

اسم الحقول عندي في الداتا بيز Username و Password

واسم الحقول في الفورم username و password

رجاء تعطيني الكود كامل بعد ما عملت اتصال بالداتابيز كيف بدي اعمل استعلام عن طريق if بالتفصيل لاني اول مرة بعمل استعلام

واكون لك من الشاكرين

#4

السلام عليكم

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

أنا أعطيك كود في رأيي مهم ولكنه من الأخير وأنت ما عليك إلا أن تكتشف الحل

طبعاً الدالة التي تنشئها هي check_user()

وهي التي تتولى التحقق من قواعد البيانات

وهي تتولى تسجيل الجلسة والكوكيز ثم تنقل الزائر إلى الصفحة التي جاء منها

#---------------------------------------------------------------#
$post = '';
if (is_array ($_POST) ) {
    for( reset( $_POST);  $key = key( $_POST);  next( $_POST) ) {
  if (empty ($_POST[$key]) )  continue;
  else $post[$key] = (get_magic_quotes_gpc()) ? trim(htmlspecialchars($_POST[$key])) : trim(htmlspecialchars(addslashes($_POST[$key])));
	}
}
#---------------------------------------------------------------#

	function login() {
  global $post;
  $username = isset($post["username"]) ? $post["username"] : "";
  $password = isset($post["password"]) ? md5($post['password']) : "";
  $expire = ($post["savelogin"] == 1) ? time()-3600 : time() + 2592000;

  if ($check_user () ) {
  	if  (isset($_GET['login'])) @header ("Location: ".HomePage);
  	else header('Location: '.$_SERVER['REQUEST_URI']);
  } else {
  	@header ("Location: ".LoginPage);
  }
	}
#---------------------------------------------------------------#

أرجوا لك حظاً سعيداً

تم تعديل هذه المشاركة بواسطة أبو محمد اللحياني في 2 مارس 2006 في 22:07

ولو وافيت ربك دون ذنب *** وناقشك الحساب إذاً هلكتا

ولم يظلمك في عملٍ ولكن *** عسير أن تقوم بما حملتا

#5

شكرا جزيلاً لك أخي الفاظل

#6

أخي الكريم ... جرب هذا الكود مع اضافة التعديلات المناسبة لبرنامجك مع العلم بأن ال user_n$ هو خانة ادخال اسم المستخدم في الفورم وال user_pass$ هو خانة ادخال الباسوورد وال mainpage هي الصفحة المطلوب الوصول لها و login هي الصفحة التي بها الفورم وال insert_action$ هو اسم زر الفورم وال index.php هي صفحة البداية

if ($insert_action && $page = "login")
{
$get_user = @mysql_query("select * from users where username='".$user_n."' and user_password='".$user_pass."'")or die("couldn't execute the query");

if (mysql_fetch_array($get_user))

header ("location: index.php?page=mainpage");
else
header ("location: index.php?page=login");
}

وإن شاء الله الكود ينفعك

تم تعديل هذه المشاركة بواسطة osms2000 في 13 فبراير 2007 في 12:43

#7

شكرا لك .. على هذه المعلومات القيمة

اود إضافة استفسار عن كيفية إنشاء دالة لتعقب المستخدم .. ووضع صلاحيات للدخول... .. ولو بمثال او مرجع يمكن الاستفاده منه

بالنسبة للجدول المستخدم

CREATE TABLE `user` 
(`user_no` INT(4) UNSIGNED NOT NULL AUTO_INCREMENT, 
`employee_id` VARCHAR(20) NOT NULL, 
`user_id` VARCHAR(20) NOT NULL, 
`password` VARCHAR(32) NOT NULL, 
`use_rip` VARCHAR(15), 
`user_session` VARCHAR(32), 
`user_last_visit` DATE, 
PRIMARY KEY (`user_no`), 
UNIQUE KEY `employee_id` (`employee_id`))
TYPE=MyISAM ROW_FORMAT=FIXED
PACK_KEYS=0 CHECKSUM=0 DELAY_KEY_WRITE=0 MIN_ROWS=158 MAX_ROWS=68 AVG_ROW_LENGTH=132 AUTO_INCREMENT=201

وجزاك الله كل خير

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

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