إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

Authentication Code


11 رد (ردود) على هذا الموضوع

#1 mer123

mer123

    مشترك

  • الأعضــاء
  • 59 مشاركة

تاريخ المشاركة 24 May 2009 - 08:18 PM

hi everyone, I created an interface where there are 2 items text and botton for authentication password login
I would like, if possible, give me a PL / SQL code to manage this interface
thanks a lot

#2 mustafagamiel

mustafagamiel

    مشرف قسم النماذج والمشاريع

  • فريق الإشراف
  • 2,095 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 24 May 2009 - 08:37 PM

try do like this
http://www.araboug.o...showtopic=29597
then tell us what is your problem in your interface

اللهم إن كان رزقي في الســــــــــماء فأنزله
وإن كان في الأرض فأخرجـه
وإن كان بعيدا فقربه وإن كان قريبا فيسره
وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه

اللـــهم آمين
لا إله إلا الله وحده لاشريك له- له الملك وله الحمد وهو على كل شيء قدير
لا إله إلا أنت سبحانك-- إني كنت من الظالمين






#3 mer123

mer123

    مشترك

  • الأعضــاء
  • 59 مشاركة

تاريخ المشاركة 24 May 2009 - 10:49 PM

thank you for the reply, I read the article, sorry but I found it complicated as far as beginner, I have created a table that contains the user code varchar(30)and his ID varchar(30) and password varchar(30) ( id and password to access the application)
and I just want to make an interface for access and another to change the password and if I can interface to password forgotten what I want is exactly the code pl / sql to realise this interfaces
plz i need your help it's my project and i have juste two weeks
thaks alot

#4 sara gamal

sara gamal

    عضو نشط

  • الأعضــاء
  • 411 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 24 May 2009 - 11:56 PM

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

الموضوع سهل بأذن الله نفترض انك عندك جدول فيه user name and password and user_id and is_blocked
اخر عمود رأي انك تزوده لان افرض ان user ده خلاص اتمنع من الدخول فمروض اوضح انه ليه الحق انه يدخل او لا

اولا انت عندك 2items يبقى لازم تتاكد قبل ما تعمل check على الباسوررد وال user name
انه دخلهم وان القيم بتاعتهم مش ب null
ولما تتأكد انه دخلهم تعمل جمله select من الجدول ويكون ال where هو اسم المستخدم الدخلته وهتخرج ال password في متغير وتقارنها بالقيمه الادخلها المستخدم لو هى صحيحه يدخله لو غلط يطلع رساله ان كلمه المرور واسم المستخدم خطأ
طبعا في حاجات كتير بتتزود مثلا ان مينفعش يدخل كلمه المرور خطأ اكثر من مره
وهكذا دى الفكره الفكرت فيها لو هى قريبها من العايز تعملها قولى وبأذن الله نعملها

#5 mer123

mer123

    مشترك

  • الأعضــاء
  • 59 مشاركة

تاريخ المشاركة 25 May 2009 - 12:09 AM

thank you sara for the replay, that's what I need to do

#6 mustafagamiel

mustafagamiel

    مشرف قسم النماذج والمشاريع

  • فريق الإشراف
  • 2,095 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 25 May 2009 - 12:38 AM

الاخ الكريم هل تريد مثال على كلام الاخت أم اتحلت المشكلة

اللهم إن كان رزقي في الســــــــــماء فأنزله
وإن كان في الأرض فأخرجـه
وإن كان بعيدا فقربه وإن كان قريبا فيسره
وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه

اللـــهم آمين
لا إله إلا الله وحده لاشريك له- له الملك وله الحمد وهو على كل شيء قدير
لا إله إلا أنت سبحانك-- إني كنت من الظالمين






#7 sara gamal

sara gamal

    عضو نشط

  • الأعضــاء
  • 411 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 25 May 2009 - 12:44 AM

نفترض انك هتعمل في الفورم Button ok and text item in the footer of the form
عشان مثلا تطلع في الرسائل الانت عايزها او تعمل alert زي ماانت عايز وعملتلك برده شكل استدعاء ال alert
عشان لو عليز تستخدمه وكمان في حاجه عرفتها اسمها :global.counter
ده عباره عن عداد هيعد عدد مرات ادخال المستخدم لكلمه المرور انا عاملاها لو ادخل 3 مرات غلط تكتبله رساله انه مينفعش يغير تانى بس مفروض مكانها تتحط procedure تعمل update في حدول المستخدمين تخلى قيمه is_blocked=1
للمستخدم وتغلق الفورم هي سهله جدا جرب تعملها دى فكره الكود لو في حاجه مش باينه في قول

declare
i number(10);
n varchar2(20);
p varchar2(20);
a number(10);
begin if :log.user_name is null or :password is null then
:message:='';

else
select user_name,password,user_id,is_active into n,p,i,a from users
where upper(user_name)=upper(:log.user_name);
:global.userid:=i;
if a=0 then
if show_alert('note')=alert_button1 then
exit_form;
end if;

elsif :password=p then
if id_null(find_form('main')) then
new_form('main');
else
go_form('main');
end if;
else

:global.counter:=:global.counter+1;
:message:='';
clear_record;
end if;
end if;
if :global.counter=3 then
:message:=''
end if;
exception
when no_data_found then
:message:='';
clear_record;

end;


دى الرسايل بالترتيب عشان معرفش الللغه مالها
يجب ادخال الاسم وكلمه المرور
إادخال غير صحيح
ادخال غير صحيح
لايمكنك الادخال مره اخرى لقد تم منعك من الدخول
ادخال غير صحيح

تم التعديل بواسطة sara gamal, 25 May 2009 - 12:52 AM.


#8 sara gamal

sara gamal

    عضو نشط

  • الأعضــاء
  • 411 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 25 May 2009 - 01:08 AM

حاجه كمان نسيتها ان counter لازم تخلى قيمته تساوي صفر في بدايه الفورم يعنى في
when_new_form_instance

#9 Ahmad.Hasan

Ahmad.Hasan

    مشرف قسم الـ Forms & Reports والمشاريع

  • فريق الإشراف
  • 4,871 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Hasan
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Consultant

تاريخ المشاركة 25 May 2009 - 02:04 AM

السلام عليكم
اخي انت تعمل جدول خاص بالمستخدمين وصلاحياتهم....كالتالي:

CREATE TABLE  "user_acc" 
   (	"USR_ID" VARCHAR2(100), 
	"USR_ANAME" VARCHAR2(100), 
	"USR_ENAME" VARCHAR2(100), 
	"USR_PASSWORD" VARCHAR2(50), 
	"USR_TYPE" NUMBER, 
	"USR_STATUS" NUMBER, 
	 CONSTRAINT "GBT_LOGIN_PK" PRIMARY KEY ("USR_ID") ENABLE
   )
/

حيث user_type هو نوع المتسخدم ممكن يكون مدير او مستخدم عادي....
و usr_status هو حالة المستخدم هل يحق له الدخول للبرنامج ام لا...

وبعدين تعمل فورم فيه 2 تكست يوزر نيم وباسوورد
ودخل بروسيجر او زر تكتب الكود التالي:

PROCEDURE sys_CHECKUSER IS
VN_COUNT   NUMBER(10) := 0; 
VV_USRSTS  NUMBER(1)  := ''; 
VV_USRTYPE NUMBER(1)  := '';
VV_TYPE	NUMBER;
VV_FLAG	NUMBER(1):='';
VV_EXP_TO  DATE;
V DATE;

-------------------------------------------------------------------------------------------------------   
BEGIN

------------------
BEGIN 
SELECT COUNT(1)-
INTO   VN_COUNT 
FROM   GBT_LOGIN
WHERE  UPPER(USR_ID) = UPPER(:BLKLOGIN.USR_ID) AND UPPER(USR_PASSWORD) = UPPER(:BLKLOGIN.USR_PASSWORD);
EXCEPTION WHEN NO_DATA_FOUND THEN
VN_COUNT := 0;
END;

IF VN_COUNT = 0 THEN																			  ----- في هذا الكود تعمل براميتر وهنا بيشيك ازا المستخدم ادخل اليوزر او الباس 3 مرات غلط بطلع من البرنامج
:PARAMETER.P_TRIALS := NVL(:PARAMETER.P_TRIALS,0) + 1; 
IF :PARAMETER.P_TRIALS = 3 THEN
EXIT_FORM(NO_COMMIT,NO_VALIDATE);
ELSE
	MESSAGE('please insert the user name or password');
	  MESSAGE('please insert the user name or password');
GO_BLOCK('BLKLOGIN'); 
CLEAR_BLOCK(NO_COMMIT);
GO_BLOCK('BLKLOGIN');
END IF;
ELSE
	
BEGIN 

SELECT USR_STATUS , USR_TYPE				  --- هنا ياخد نوع المستخدم وحالته عشان يشيك عليه
INTO   VV_USRSTS , VV_USRTYPE
FROM   GBT_LOGIN 
WHERE  UPPER(USR_ID) = UPPER(:BLKLOGIN.USR_ID) AND UPPER(USR_PASSWORD) = UPPER(:BLKLOGIN.USR_PASSWORD);
EXCEPTION WHEN NO_DATA_FOUND THEN
NULL;
END;

-- CHECKING USER SETING						 --- هنا زا كانت حالة المستخدم صفر فما بقدر يدخل للنظام وهذه ممكن تعملها check box داخل فورم الصلاحيات والمستخدمين
IF VV_USRSTS <> '0' THEN
MESSAGE('the user cant login to the system');
EXIT_FORM(NO_COMMIT,NO_VALIDATE);
END IF;
----------------------------------------------------------------------------------------------------------
:GLOBAL.P_USER_TYPE:=VV_USRTYPE;	
:GLOBAL.P_USER_ID:=:BLKLOGIN.USR_ID; 
NEW_form('C:\GBT_SYS\FRM\MAIN_PAGE.fmx');
CLEAR_BLOCK(NO_COMMIT);
END IF;

END;

وتبدا تعمل كمان بنظام الصلاحيات وبامكانك استخدام global variable
واي سؤال نحن في الخدمه
بالتوفيق

تم التعديل بواسطة PALI.ORACLE, 25 May 2009 - 02:13 AM.

.Oracle E-Business Suite R12 HCM Certified Implementation Specialist

 

.Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist

 


#10 mer123

mer123

    مشترك

  • الأعضــاء
  • 59 مشاركة

تاريخ المشاركة 25 May 2009 - 04:00 AM

thank you very much for your interest,
sorry I know I annoy you, but if possible the code pl / sql to treat tableu without the column is_actived and more comments so I can better understand
sorry again, I can not concentrate

#11 sara gamal

sara gamal

    عضو نشط

  • الأعضــاء
  • 411 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 25 May 2009 - 04:13 PM

السلام عليكم
لو انت مش عايز ال column الزياده ماشى خلاص انت هتعرف 3variables واحد للاسم وواحد لكلمه المرور وواحد الid
n,p,i
انت عندك 2 items واحد لادخال الالسم والاخر لكلمه المرور اتاكد الاول ان المستخدم ادخل قيمفيهم عن طريق افرض ان واحد اسمه name والتانى pass
if :name is null or :pass is null then
ممكن تعمل text item تخرج فيه رساله انه لازم يدخل اسم وكلمه المرور
وليكون اسمهه
mess:=' '
واكتب بالداخل الرساله
دى اول حاله لو كان المستخدم ادخل قيم يبقى هتعمل check ان القيم دى صحيحه ولا لا عن طريق انك تجيب password من الجدول للاسم التم ادخاله
عن طريق جمله select
لو القيمه الداخل pasa تساوي قيمه الpassword من الجدول خلاص دخله على المرحله البعد الlogin سواء انك تفتح فورم تانيه عن طريق open_form او اي حاجه عايز تعملها لو ماكنتش صحيحه يطلع رساله انه ادخل الاشم وكلمه المرور خطأ ويمسح مثلا القيم الفي text items
واذا كان من البدايه مفيش اصلا مستخدم بالاسم ده يبقى جمله الselect مش هتخرج نتيجه وهيطلع خطأ no_data_found
عن طريق الexcepyion هتعمل handle للخطأ ده ومثلا يطلع رساله ان كلمه الاسم وكلمه المرور خطأ وده الكود
declare
i number(10);
n varchar2(20);
p varchar2(20);

begin if :name is null or :pass is null then
:mess:='you must enter name and password';

else
select user_name,password,user_id into n,p,i from users
where upper(user_name)=upper(:name);

if :password=p then
open_form('main');

else
:mess:='the name and password is incorrect';
clear_record;
end if;
end if;

exception
when no_data_found then
:mess:='';
clear_record;

end;

طبعا الكود ده لو بتتكلم على مشروع يبقى لازم يتزود فيه شروط كتير عشان يكون في security كويس بس دى ابسط حاجه ممكن اوصلك بيها الموضوع لو فهمتها زود عليها افكار من المشاركات الباقيه

#12 mer123

mer123

    مشترك

  • الأعضــاء
  • 59 مشاركة

تاريخ المشاركة 26 May 2009 - 03:07 AM

thank you very much, I am very pleased to find all this interest with my brothers and sisters, and I thank you for your patience and your advice, now I understand what I have to do, thank you lot, I feel that the English language does not convey my feelings and my respects to you, thank you very much and sorry for the inconvenience

allah yjazikome :P