• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

البحث في المنتدى

Showing results for tags 'اعطئي كلمة السر حق الدخول ضروري منتضر ردكم'.

  • البحث بالتاقات

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • البحث بكاتب الموضوع

تم إيجاد 26 نتيجة

  1. نظام التحكم    Access Control   تقدم شركة كينج الهندسيه للانظمة الامنيه انظمة تحكم فى فتح وغلق الابواب اتوماتيكيا (Access Control System)   ما هو ال ACCESS CONTROL SYSTEM هو منظومة للتحكم في الدخول والخروج من والي اماكن محددة في اوقات محددة تحكم كامل بمعني يقدر شخص معين يدخل مكان ما ولا يستطيع شخص اخر الدخول الي نفس المكان في حين ان نفس الشخص الذي له حق الدخول يمكنني التحكم في الاوقات التي يمكنه الدخول فيها ويمكن منعه من الدخول في اوقات اخري.  ويتكون الـ Access Control    من: ·        لوحات التحكم Access Control ·        الكالون المغناطيسى أو الكالون الكهربى ·        قارئ الكروت ·        الكروت و الميداليات ·        Power Supply • توريد وتركيب وبرمجة • ضمان عام شامل لمده عام • يوجد لدينا عقود صيانة للانظمة القديمة الماركات المتاحه Fermax الاسبانيه/ Elid  /  TC CONTROLL /   ECO.TECH / iD Watcher  / ZKTECO /ZK Software / Fingertech ماليزى  / FingerTec الماليزى متاح لدينا جميع الموديلات التالية : EL-0330 ,  FC21E , FP52+MD71,  EL-0363, SA31-M , SA32-M ,  SA33-M , SA521-M , SKW-V2 , SC103 , SC403 , SC503 , SF100,  F16, SF200, MA300, MA500, SF300, F18 , TF1700 , Watcher 20S , Prox 500, EchoTech , IDP255 IDWATCHER , K5EM, S600 EM-W , [url=https://www.0zz0.com][/url] [url=https://www.0zz0.com][/url]                                                               للاستفسار موبايل:   01007771327  - 01007773521 01000127629 - 01143100053 – 01020002971   العنوان :10 الشطر العاشر بجوار كارفور المعادي القاهرة Email: [email protected] Website: http://www.ksedco.com   YouTube:https://www.youtube.com/channel/UC4uDtUd2oRuSum3ChmMBeTw   Facebook: https://www.facebook.com/ksedco.company/ https://www.facebook.com/ksedco   Google+: https://plus.google.com/100471050354784765950/posts   BlogSpot:http://ksedco.blogspot.com   دمـتـم بخـيـر   كلمات دلالية   Access, control system, Access control in Egypt, Ksedco, Cairo , port said, Alex, Access control ZKtech , H logic, Door Strike, Electromagnetic lock , ACCESS CARD , ACCESS CARD READER , CONTROL PANEL , DOOR MONITOR , MANAGEMENT SOFTWARE , data package , smart card reader اكسس كنترول, اجهزة التحكم فى الدخول والخروج , اكسس كنترول فى مصر ,اجهزة التحكم بالصمة ,التحكم بالكروت ,كينج الهندسية, الدخول والخروج بالكروت, شرح اجهزة الاكسس كنترول ، امن , تعمل بالكارت او بالبصمه، بالرقم السري , فى القاهرة , أسكندرية , مرسى مطروح ,كورى , ماليزى , المانى, اسعار , برمجة منزلك , شركتك , تركيب وبرمجة , صيانة , توريد , شرح  access control system, معدن , ضد الماء , العوامل الجوية , الاحتفاظ بالبيانات , القاهرة - الجيزة - القليوبية الإسكندرية - البحيرة - مطروح الدقهلية - كفر الشيخ - الغربية - المنوفية - دمياط بورسعيد - الإسماعيلية - السويس - الشرقية - شمال سيناء - جنوب سيناء بني سويف - المنيا - الفيوم أسيوط - الوادي الجديد سوهاج - قنا - الأقصر - أسوان - البحر الأحمر Cairo - Giza - Qalyubia Alexandria - Bahrin - Matrouh Dakahlia - Kafr el-Sheikh - Gharbiya - Monoufia - Damietta Port Said - Ismailia - Suez - Alsharkia‏ - North Sinai - South Sinai Beni Suef - Minia - Fayoum Assiut - Wady gaded Sohag - Qena - Luxor - Aswan – Sharm El-Sheikh, Hurgada, Ain El-Sokhna - Red Sea  
  2. عرض جهاز الأكسس كنترول للتحكم في  الاسانسير التركيب مجانا وضمان عام كامل دلوقتى تقدر تتحكم فى اسانسير عمارتك وتمنع اي حد غير مرغوب فيه من دخول العماره واستخدام الاسانسير مع جهاز الاكسس كنترول الجهاز يعمل بالميداليات اوالكروت او الارقام وكمان هديه مع كل جهاز 10كروت                                            لا تتردد بالاتصال بنا Mobile /  01000127629 - 01143100053 – 01020002971 WhatsApp / 01007773521 - 01007771327 شركة كينج الهندسيه للانظمة الامنية المتكاملة العنوان :10 الشطر العاشر بجوار كارفور المعادي القاهرة   Email:[email protected] Website: http://www.ksedco.com YouTube:https://www.youtube.com/channel/UC4uDtUd2oRuSum3ChmMBeTw Facebook:https://www.facebook.com/ksedco.company/?ref=bookmarks القاهرة - الجيزة - القليوبية الإسكندرية - البحيرة - مطروح الدقهلية - كفر الشيخ - الغربية - المنوفية - دمياط بورسعيد - الإسماعيلية - السويس - الشرقية - شمال سيناء - جنوب سيناء بني سويف - المنيا - الفيوم أسيوط - الوادي الجديد سوهاج - قنا - الأقصر - أسوان - البحر الأحمر Cairo - Giza - Qalyubia Alexandria - Bahrin - Matrouh Dakahlia - Kafr el-Sheikh - Gharbiya - Monoufia - Damietta Port Said - Ismailia - Suez - Alsharkia‏ - North Sinai - South Sinai Beni Suef - Minia - Fayoum Assiut - Wady gaded Sohag - Qena - Luxor - Aswan – Sharm El-Sheikh, Hurgada, Ain El-Sokhna - Red Sea
  3. عرض جهاز الأكسس كنترول للتحكم في  الاسانسير التركيب مجانا وضمان عام كامل دلوقتى تقدر تتحكم فى اسانسير عمارتك وتمنع اي حد غير مرغوب فيه من دخول العماره واستخدام الاسانسير مع جهاز الاكسس كنترول الجهاز يعمل بالميداليات اوالكروت او الارقام وكمان هديه مع كل جهاز 10كروت                                            لا تتردد بالاتصال بنا Mobile /  01000127629 - 01143100053 – 01020002971 WhatsApp / 01007773521 - 01007771327 شركة كينج الهندسيه للانظمة الامنية المتكاملة العنوان :10 الشطر العاشر بجوار كارفور المعادي القاهرة   Email:[email protected] Website: http://www.ksedco.com YouTube:https://www.youtube.com/channel/UC4uDtUd2oRuSum3ChmMBeTw Facebook:https://www.facebook.com/ksedco.company/?ref=bookmarks القاهرة - الجيزة - القليوبية الإسكندرية - البحيرة - مطروح الدقهلية - كفر الشيخ - الغربية - المنوفية - دمياط بورسعيد - الإسماعيلية - السويس - الشرقية - شمال سيناء - جنوب سيناء بني سويف - المنيا - الفيوم أسيوط - الوادي الجديد سوهاج - قنا - الأقصر - أسوان - البحر الأحمر Cairo - Giza - Qalyubia Alexandria - Bahrin - Matrouh Dakahlia - Kafr el-Sheikh - Gharbiya - Monoufia - Damietta Port Said - Ismailia - Suez - Alsharkia‏ - North Sinai - South Sinai Beni Suef - Minia - Fayoum Assiut - Wady gaded Sohag - Qena - Luxor - Aswan – Sharm El-Sheikh, Hurgada, Ain El-Sokhna - Red Sea
  4. عرض جهاز الأكسس كنترول للتحكم في  الاسانسير التركيب مجانا وضمان عام كامل دلوقتى تقدر تتحكم فى اسانسير عمارتك وتمنع اي حد غير مرغوب فيه من دخول العماره واستخدام الاسانسير مع جهاز الاكسس كنترول الجهاز يعمل بالميداليات اوالكروت او الارقام وكمان هديه مع كل جهاز 10كروت                                            لا تتردد بالاتصال بنا Mobile /  01000127629 - 01143100053 – 01020002971 WhatsApp / 01007773521 - 01007771327 شركة كينج الهندسيه للانظمة الامنية المتكاملة العنوان :10 الشطر العاشر بجوار كارفور المعادي القاهرة   Email:[email protected] Website: http://www.ksedco.com YouTube:https://www.youtube.com/channel/UC4uDtUd2oRuSum3ChmMBeTw Facebook:https://www.facebook.com/ksedco.company/?ref=bookmarks القاهرة - الجيزة - القليوبية الإسكندرية - البحيرة - مطروح الدقهلية - كفر الشيخ - الغربية - المنوفية - دمياط بورسعيد - الإسماعيلية - السويس - الشرقية - شمال سيناء - جنوب سيناء بني سويف - المنيا - الفيوم أسيوط - الوادي الجديد سوهاج - قنا - الأقصر - أسوان - البحر الأحمر Cairo - Giza - Qalyubia Alexandria - Bahrin - Matrouh Dakahlia - Kafr el-Sheikh - Gharbiya - Monoufia - Damietta Port Said - Ismailia - Suez - Alsharkia‏ - North Sinai - South Sinai Beni Suef - Minia - Fayoum Assiut - Wady gaded Sohag - Qena - Luxor - Aswan – Sharm El-Sheikh, Hurgada, Ain El-Sokhna - Red Sea
  5. عرض جهاز الأكسس كنترول للتحكم في  الاسانسير التركيب مجانا وضمان عام كامل دلوقتى تقدر تتحكم فى اسانسير عمارتك وتمنع اي حد غير مرغوب فيه من دخول العماره واستخدام الاسانسير مع جهاز الاكسس كنترول الجهاز يعمل بالميداليات اوالكروت او الارقام وكمان هديه مع كل جهاز 10كروت                                            لا تتردد بالاتصال بنا Mobile /  01000127629 - 01143100053 – 01020002971 WhatsApp / 01007773521 - 01007771327 شركة كينج الهندسيه للانظمة الامنية المتكاملة العنوان :10 الشطر العاشر بجوار كارفور المعادي القاهرة   Email:[email protected] Website: http://www.ksedco.com YouTube:https://www.youtube.com/channel/UC4uDtUd2oRuSum3ChmMBeTw Facebook:https://www.facebook.com/ksedco.company/?ref=bookmarks القاهرة - الجيزة - القليوبية الإسكندرية - البحيرة - مطروح الدقهلية - كفر الشيخ - الغربية - المنوفية - دمياط بورسعيد - الإسماعيلية - السويس - الشرقية - شمال سيناء - جنوب سيناء بني سويف - المنيا - الفيوم أسيوط - الوادي الجديد سوهاج - قنا - الأقصر - أسوان - البحر الأحمر Cairo - Giza - Qalyubia Alexandria - Bahrin - Matrouh Dakahlia - Kafr el-Sheikh - Gharbiya - Monoufia - Damietta Port Said - Ismailia - Suez - Alsharkia‏ - North Sinai - South Sinai Beni Suef - Minia - Fayoum Assiut - Wady gaded Sohag - Qena - Luxor - Aswan – Sharm El-Sheikh, Hurgada, Ain El-Sokhna - Red Sea
  6. حساب المستخدمين بدون اكواد الجزء 5 تسجيل وقت الدخول والخروج فكرة تسجيل وقت دخول المستخدم تلقائى  وتسجيل وقت الخروج تلقائى فى جدول  https://www.youtube.com/watch?v=ZIHi754180U https://www.youtube.com/watch?v=ZIHi754180U https://www.youtube.com/watch?v=ZIHi754180U
  7. السلام عليك شباب ارجو المساعده في برنامج الاجازات لدي قاعده بيانات واريد اضافة الرصيد سنويا 36 يوما برمجيا يعني كل سنه يضيف للموظف 36 يوما بدون ماضيف انا الرصيد يعني كل سنه يضيف 36 يوما او بمعنى 2016/12/31 وغدا هو 1/1/2017 يتم اضافة 36 يوما للرصيد القديم المدخل سابقا ارجو من يساعدني بهذا الخصوص ولكم الدعاء والشكر  Vacations_UP5.rar
  8.  كينج الهندسية المتخصصة فى الانظمة الأمنية تقدم كالون الفنادق   - يمكنك الان التحكم فى الابواب للمنازل والفنادق والمكاتب  عن طريق البصمه او الكارت او الكود السرى   - الجهاز يمكن برمجته بحيث انه يسمح للعاملين بالدخول والخروج فى اوقات معينه وخلال فترات معينه او طول العام   - النظام مناسب للاحساس بالامان داخل منزلك او شركتك او فندقك  - كما انه يمكنك ربط اكثر من باب معا والتحكم بهم عن طريق السوفت وير - سعه تخزين 1000 مستخدم  - بطاريه تدوم 3 سنوات تنبيه قبل نفاذ البطاريات  بايام  - سحب البيانات عن طريق الفلاش او الUSB -        جهاز برمجة الكروت على الابواب (Encoder)         • توريد وتركيب وبرمجة • ضمان عام شامل لمده عام • يوجد لدينا عقود صيانة للانظمة القديمة الموديلات المتاحة LH1000  , LH4000 , PL10 , L7000S , L5000 , FL1000 , SHS-H705 , SHS-5120XMK/EN , SHS-2320XMK/EN , SHS-3320XMK/EN , SHS-P717 , SHS-P718 , SHS-G517 , الماركات المتاحة  SAMSUNG-  ZKTECO [url=http://www.qqq4.com/][/url] [url=http://www.qqq4.com/][/url]       موبايل 01000127629 - 01143100053 – 01020002971 01007773521     العنوان :10 الشطر العاشر بجوار كارفور المعادي القاهرة       Website : http://www.ksedco.com     YouTube:https://www.youtube.com/channel/UC4uDtUd2oRuSum3ChmMBeTw     Facebook: https://www.facebook.com/ksedco.company https://www.facebook.com/ksedco     Google+: https://plus.google.com/100471050354784765950/posts     BlogSpot: http://ksedco.blogspot.com/                                           
  9. شركة   baker tecبكيرتك للانظمة الامنيه تقدم اجهزة الحضور والانصراف بالبصمه و الوجه والكارت و الرقم السرى و التى تساعدك فى استخراج تقارير منظمة ودقيقة للحضور والانصراف يتوافر ضمان عام ضد عيوب الصناعة وتوفر الماكينة امكانية مراقبة حضور وانصراف الموظفين من أي مكان في العالم حيث أن الماكينة يمكن ربطها عن طريق الانترنت. لها القدرة علي التعرف على المستخدم خلال 1 ثانية تمتاز بوجود طرق  واساليب مختلفة للاتصال بالحاسب الآلي : RS232 / RS485 / TCP / IP تتوافرلدي الماكينة القدرة علي  تحويل البيانات المحفوظة إلي Excel Sheet وأيضا يمكن التحويل إلي امتدادات أخري. وحفظ التقارير الناتجة في أكثر من صيغة مثل : PDF . Excel. TXT يمكن تخزين من 500 مستخدم و حتى 3000 مستخدم يتوافر لدي شركة بكيرتك موديلات متنوعة لكافة الاحتياجات IN01-DS100-TK100C-X628T-X628TC-LX50-iface402   للاتصال بنا:  01272449539  فى أى وقت طوال أيام الأسبوع لمتابعة الاسعار تفضلوا بزيارة صفحتنا علي الفيس بوك https://goo.gl/xXFXAu ولمتابعة احدث منتجاتنا او http://cutt.us/bakertec للتواصل عبر البريد لاليكتروني [email protected]
  10. السلا عليكم  الرجو مساعدتي لقد فقدة الرقم السري للبرنامج Users Maker 2  كيف استعيد الرقم او اعمل سوفت وير 
  11.  اسم المستخدم و   كلمة السر حق الدخول لا برنامج إدارة صيدلية.zip
  12. جدول به حقل مسلسل وحقل الاسم استخدمت هذا الكود في مصدر سكل النموذج لترتيب السجلات ترتيبا عشوائيا  SELECT Table1.ID, Table1.nam,hh, Rnd([id]) AS [Rnd()] FROM Table1 ORDER BY Rnd([id]); اريد ان استخدم هذا الرتيب العشوائي علي حقل اخر به السماء بحيث لا يتكرر اسم في القل الاول مع اسم في الحقل الثاني وقد جربت ان اضيف للكود الحقل الثاني ولكن يخرج الاسم في الحقل الاول مع الاسم في الحقل الثاني مع كل ترتيب وhh هذه كانت حقل الاسماء الثاني الذي اضفته للجدل واضفته للكود هنا كما تري باللون الاسود
  13. لدى قاعدة بيانات معمولة بالسيكول 2008 وعايز انقلها لمشروع بالدوت نت اريد ان اجعل لها كلمة سر  
  14. السلام عليكم المشكلة اننى لدى نظام تكويد للأصناف عبارة عن ثلاث ارقام يفصل بينهم علامة / الرقم الاول يمثل كود المجموعة الرقم الثانى كود المجموعة الفرعية الرقم الثالث رقم الصنف   مثلا 1/10/20 معناها مجموعة 1 من مجموعة فرعية 10 بها صنف رقمة 20 المطلوب عند عمل استعلام للأصناف ترتيب الاصناف حسب كود المجموعة ثم كود المجموعة الفرعية ثم رقم الصنف المشكلة أن كود الصنف فى الجدول حقل واحد غير مقسم فكيف يمكن تقسيم كود الصنف اثناء الاستعلام و ترتيبة ؟؟؟
  15. الأساتذة الكرام ... السلام عليكم ورحمة الله ... لماذ بعد كل عملية نسخ إحتياطي backup file لملف محمي بكلمة سر يتم إلغاء كلمة السر للملف الجديد  نأمل الإفادة وكيف يتم تفادي المشكلة وعند النسخ الإحتياطي يكون الملف الإحتياطي محمي بكلمة السر ... ملحوظه : الكود من ضمن سلسلة ابداع الاستاذة / زهرة بارك الله فيها .... Option Compare DatabaseOption ExplicitPublic Function Backup()On Error GoTo Error_HandlerDim sFile As String, oDB As DAO.DatabaseDim strCurrentName As StringDim oTD As TableDefDim qDF As QueryDefDim obj As AccessObjectstrCurrentName = Application.CurrentObjectNamesFile = CurrentProject.Path & "\" & Left(CurrentProject.name, Len(CurrentProject.name) - 6) & " " & Format(date, "dd-mm-yyyy") & ".accdb"If Dir(sFile) <> "" Then Kill sFileSet oDB = DBEngine.Workspaces(0).CreateDatabase(sFile, dbLangGeneral)'ÇáÌÏÇæáFor Each oTD In CurrentDb.TableDefsIf Left(oTD.name, 4) <> "MSys" ThenDoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acTable, oTD.name, oTD.name, FalseEnd IfNext oTD'ÇáÇÓÊÚáÇãÇÊFor Each qDF In CurrentDb.QueryDefsIf Left(qDF.name, 1) <> "~" ThenDoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acQuery, qDF.name, qDF.name, FalseEnd IfNext qDF'ÇáäãÇÐÌFor Each obj In CurrentProject.AllFormsDoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acForm, obj.name, obj.name, FalseNext obj'ÇáÊÞÇÑíÑFor Each obj In CurrentProject.AllReportsDoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acReport, obj.name, obj.name, FalseNext obj'ÇáãÇßÑæFor Each obj In CurrentProject.AllMacrosDoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acMacro, obj.name, obj.name, FalseNext obj'ÇáæÍÏÇÊ ÇáäãØíÉFor Each obj In CurrentProject.AllModulesDoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acModule, obj.name, obj.name, FalseNext objMsgBox " ãÈÑæß ... Êã ÇäÔÇÁ äÓÎÉ ÅÍÊíÇØíÉ Ýí äÝÓ ãÌáÏ ÇáÞÇÚÏÉ ÈÊÇÑíÎ Çáíæã ", vbInformation, "BackUp"Error_Handler_Exit:On Error Resume NextSet qDF = NothingSet oTD = NothingSet obj = NothingoDB.CloseExit FunctionError_Handler:MsgBox "The following error has occured." & vbCrLf & vbCrLf & "Error Number: " & Err.Number, vbCritical, "An Error has Occured!"Resume Error_Handler_ExitEnd FunctionFunction RunSub()Call BackupEnd Functionمشكورين مقدماً
  16. http://www.063358380.com/programs/csms+.rar     ده رابط البرنامج الي عنده حل ياااريت يفيدني فيه وجزاكم الله خير عاوز اشغل البرنامج علي 3 اجهزة كمبيوتر واكتر عن طريق SQL Server 
  17. مشكله في النت بينز

    السلام عليكم    لدي مشكله ارجوا مساعدتي ولكم منى جزيل الشكر    انحلت المشكله    شكرا  ...
  18.  [ السلام عليكم اشلونكم شباب ]     طبعا محتاج كود ضروري     انا عندي برنامج قيد التطوير ...   هذ صوره البرنامج       الكود المحتاجه ...... اريد من نضغط على زر مثلا        aMeeR55   يصبح الرابط     http://www.bing.com/search?q=IP:192.168.1.1 aMeeR55     يعني اريد ان يضاف الايبي الموجود في التكست بوكس + الكود الموجود في زر aMeeR55   في ال URl ويبحت                 وشكرااااااااا     في انتضارردودكم ............  
  19. السلام عليكم ورحمة الله وبركاته، الكثير من الإخوة والأخوات يجدون صعوبة في برمجة نافذة الدخول – مع أنها سهلة جدا – أتينا بهذا الدرس على أمل أن نساعدهم ولو بشيء قليل، خلال هذه الحصة إن شاء الله سوف نتعرف على كيفية التحقق من البيانات المدخلة من قبل المستخدم ونقارنها بالبيانات المحفوظة في قاعدة البيانات، فإن كان هنالك تباين أظهرنا رسالة خطأ وإن كان هنالك توافق في القيم قمنا بالتحقق من وظيفة المستخدم: إن كان مستخدما عاديا نقلناه إلى فضاء المستخدمينن وإن كان مديرا نقلناه إلى فضاء المدراء.     رابط مشاهدة الدرس    
  20. الحمد لله والصلاة والسلام على رسول الله   السلام عليكم ورحمة الله وبركاته   * إستخدام النمط JSON لتخزين وجلب البيانات :   هذا الدرس ضمن سلسة دروس الدورة التالية لتعلم لغة php !   تخزين البيانات : - تتم عملية تخزين البيانات إما بإستخدام قواعد البيانات أو إستخدام الملفات , واليوم بإذن الله سنتعرف على كيفية حفظ البيانات بواسطة الملفات ولن نتطرق كثيراً لدوال التعامل مع الملفات إلا فتح الملف لحفظ سلسة نصية أو إستيرادها وسيأتي الحديث عن التعامل مع الملفات بشئ من التفصيل فيما بعد , وربما لا تحتاج لها بعد تناولنا الدرس التالي   - ولكن قبل أن نتعرف على تنسيق الـ JSON لحفظ البيانات سأذكر موضوع مدى المتغيرات * مدى المتغيرات : - يقصد بمدى المتغيرات هي الفترة من لحظة تعريف المتغير إلى أن يصبح غير مُعَرَف ولا تستطيع إستخدامه والوصول للقيمة التي يحملها . - عند تعريف متغير فهو متاح لكل العناصر تحته - أي بعد تعريفه - وحتى إذا تم تضمين ملف بعد تعريف المتغير يكون هذا المتغير متاح للإستخدام داخل أكواد الملف , ولكن لا يكون المتغير معرف داخل الدوال مثال لتتضح الصورة : <?php$var1 = 'ahmed';function test(){    echo $var1;}test();?> - هذا الكود سيعطي خطأ لأنها عملية وصول لمتغير غير معرف بالنسبة للدالة - المتغيرات داخل الدوال أو وسائط الدالة تعتبر متغيرات محلية تنتهي بإنتهاء الدالة ولا نستطيع إستخدام هذه المتغيرات وهذا مثال على ذلك : <?phpfunction test(){    $var1 = 'ahmed';}echo $var1;?>- فالكود السابق أيضاً يعطينا خطأ عند تنفيذه لمحاولة الوصول لمتغير محلي خاص بالدالة - إذاً على هذا يمكن لنا إستخدام نفس اسماء المتغيرات خارج الدالة وداخلها لأنها تعتبر متغيرات منفصلة عن بعضها البعض كالمثال التالي : <?php$var1 = 'ahmed';function test(){    $var1 = 'Mohammed <br>';    echo $var1;}test();echo $var1;?>- وواضح من الكود السابق أن قيمة المتغير الأول لم تتأثر عند إستدعاء الدالة على الرغم من أن اسم المتغير واحد - إذا أردنا إستخدام نفس المتغير داخل الدالة وإجراء تعديلات عليه فعلينا - كما تعلمنا من الدرس الثالث - تمرير عنوان المتغير كوسيط للدالة بإستخدام العلامة & قبل اسم المتغير كالتالي : <?php$var1 = 'ahmed';function test(&$var1){    $var1 = 'Mohammed <br>';    echo $var1;}test($var1);echo $var1;?>أو استخدام الكلمة المحجوزة gobal لتعريف الدالة على أن هذا المتغير هو متغير عام وليس خاص بالدالة كالتالي : <?php$var1 = 'ahmed';function test(){    global $var1;    $var1 = 'Mohammed <br>';    echo $var1;}test();echo $var1;?>- وعلى هذا تتعامل الدالة مع المتغير العام وأي تعديل على قيمة هذا المتغير تتم على المتغير العام , نعود لموضوعنا ... التنسيق JSON : - JSON وهي إختصار لـ javaScript Object Notation وهي طريقة في لغة javaScript للتعامل مع البيانات , وتم إنتشارها ودعمها في أغلب لغات البرمجة الأخرى لسهولة وديناميكية التعامل مع هذه الطريقة ويمكن لنا إستخدام هذه الصيغة كبديل أمثل لنقل البيانات بدلاً من إستخدام ملفات XML . وأيضاً تستخدم هذه التقنية في جلب البيانات من مواقع شهيرة كموقع twitter من خلالـ twitter json api وحالة الطقس من موقع yahoo من خلالـ yahoo json weather api هذه كانت مقدمة لموضوع كنت قد كتبته عن هذه التقنية في قسم لغة java على هذا الرابط . الموضوع بسيط سأوضحه هنا بشكل سريع : - يتم حفظ البيانات في تنسيق JSON على شكل كائن وتوضع العناصر بين الأقواس {} أو على شكل مصفوفة وتوضع عناصر المصفوفة بين الأقواس [] - القيم التي يتم حفظها داخل الكائن أو المصفوفة هي أعداد صحيحة وأعداد كسرية وسلاسل نصية وقيم منطقية وكائنات أخرى أو مصفوفات أخرى ويمكن الجمع بين جميع هذه الأنواع داخل كائن واحد أو مصفوفة واحدة ويتم إسناد القيم للعناصر بإستخدام الرمز : ويتم الفصل بين العناصر بإستخدام الفاصلة ,   * أمثلة للقيم داخل الكائن : {"var1":10,"var2":true,"var3":null,"var4":"Ahmed","var5":12.55}ملاحظة : يجب أن يكون اسم العنصر بين علامتي إقتباس لأن بعض لغات البرمجة لا تقبل اسم العنصر بدونها , وأيضاً يجب وضع السلسة النصية بين علامتي إقتباس .   * أمثلة للعناصر داخل المصفوفة : [10,20.25,"Ahmed",null,true]كما يمكن الجمع بين الإثنين معاً كأن يحتوي الكائن على مصفوفات أو تحتوي المصفوفات على كائنات   * كائن يحتوي على مصفوفة : {"var1":10,"var2":[10,20,30]}مصفوفة تحتوي على كائن : [10,20,{"var1":"ahmed","var2":900},"Khaled"]وهكذا يتم إحتواء الكائنات والمصفوفات داخل بعضها البعض وهكذا ... وما سبق هو كيفية هيكلة البيانات بإستخدام أسلوب الـ JSON والتالي الدوال التي تتعامل مع هذا التنسيق في لغة php : - دالة json_encode للتحويل إلى تنسيق الـ JSON - دالة json_ decode لتحويل تنسيق JSON إلى كائنات ومصفوفات يمكن التعامل معها من خلال لغة php ملاحظة : المصفوفات الترابطية hash table في لغة php يتم تحويلها إلى كائن في تنسيق JSON - أولاً : تحويل البيانات إلى صيغة JSON بإستخدام دالة json_encode   * أمثلة :   1- لدينا مصفوفة ترابطية بها قيم مختلفة سيتم تحويلها لتنسيق JSON كالتالي : <?php    $data['var1'] = 10;    $data['var2'] = 20.13;    $data['var3'] = null;    $data['var4'] = true;    $data['var5'] = 'Ahmed';    echo json_encode($data);?>* المخرجات : {"var1":10,"var2":20.13,"var3":null,"var4":true,"var5":"Ahmed"} 2- لدينا مصفوفة عادية -أي معرفاتها عبارة عن أرقام- وتحتوي على قيم مختلفة لاحظ شكل المصفوفة في المخرجات : <?php    $data[] = 10;    $data[] = 20.13;    $data[] = null;    $data[] = true;    $data[] = 'Ahmed';    echo json_encode($data);?>* المخرجات : [10,20.13,null,true,"Ahmed"]    3- مصفوفة عادية تحتوي على قيم وعلى مصفوفة ترابطية وعلى مصوفة عادية أخرى كالتالي : <?php    $data[] = 300;    $data[] = array(10,20,30);    $data[] = array("var1"=>12.3,12.8,"var2"=>"Ahmed",9000,"var3"=>array(true,false));    echo json_encode($data);?>* المخرجات : [300,[10,20,30],{"var1":12.3,"0":12.8,"var2":"Ahmed","1":9000,"var3":[true,false]}]  4- مصفوفة ترابطية تحتوي على قيم وعلى مصفوفة عادية كالتالي : <?php    $data = array("var1"=>12.3,12.8,"var2"=>array("Ahmed","Jamal","Mostafa"),9000);    echo json_encode($data);?>* المخرجات : {"var1":12.3,"0":12.8,"var2":["Ahmed","Jamal","Mostafa"],"1":9000} - ثانياً : تحويل صيغة JSON إلى كائنا ومصفوفات يمكن التعامل معها من خلال لغة php بإستخدام دالة json_encode ملاحظة : بما أننا لم نتطرق للتعامل مع الكائنات حتى الآن فدالة json_encode تأخذ وسيط ثاني في حالة إعطائه القيمة true يتم تحويل كائنات الـ JSON إلى مصفوفات ترابطية hash table وإن أردت إستخدام الكائن بدون تحويله لمصفوفة يمكنك الوصول للعناصر بإستخدام الرمز -> * أمثلة :   1- جلب كائن في تنسيق JSON وتحويله إلى مصفوفة ترابطية في لغة PHP وبه الشكلان إما إستخدام الكائن مباشراً أو تحويله لمصفوفة ترابطية واستخدامه كالتالي : <?php    $json = '{"var1":10,"var2":true,"var3":null,"var4":"Ahmed","var5":12.55}';    $data1 = json_decode($json);    $data2 = json_decode($json,true);    // الوصول للعناصر من خلال الكائن    echo $data1->var4;    echo "<br>";    // الوصول للعناصر عن طريق مصفوفة ترابطية    echo $data2['var4'];?>* المخرجات : AhmedAhmed    2- هنا تنسيق JSON لمصفوفة تحتوي على قيم ومصفوفات وكائنات تحتوي أيضاً بداخلها على قيم ومصفوفات وهكذا يمكن العملية أن تتابع والكود التالي تم استخدام وسم العناصر ul لترتيب المخرجات وتوضيح العملية كالتالي : <?php    $json = '[300,[10,20,30],{"var1":12.3,"0":12.8,"var2":"Ahmed","1":9000,"var3":[true,false]}]';    $data = json_decode($json,true);    $HTML = "<ul>";    foreach($data as $key=>$value)    {                if(is_array($value))        {            $HTML .= "<li>$key=>Array<ul>";            foreach($value as $key2=>$value2)            {                                if(is_array($value2))                {                    $HTML .= "<li>$key2=>Array<ul>";                    foreach($value2 as $key3=>$value3)                    {                        $HTML .= "<li>$key3=>$value3</li>";                    }                    $HTML .= "</ul></li>";                }                else                {                    $HTML .= "<li>$key2=>$value2</li>";                }            }            $HTML .= "</ul></li>";        }        else        {            $HTML .= "<li>$key=>$value</li>";        }    }    $HTML .= "</ul>";        echo $HTML;?>* المخرجات : 0=>3001=>Array    0=>10    1=>20    2=>302=>Array    var1=>12.3    0=>12.8    var2=>Ahmed    1=>9000    var3=>Array        0=>1        1=>والآن وكمثال تطبيقي لما سبق عملية التسجيل وتسجيل الدخول في موقع ما , في الدرس الرابع تم شرح التعامل مع النماذج وكيفية الحصول على البيانات منها , وفي الدرس السابق تعلمنا كيفية التعامل مع التعابير القيايسية والدوال المستخدمة معها في لغة php .   سنقوم بتقسيم العمل لمجموعة دوال وشرح كل دالة على حدة   - سنقوم بإنشاء نموذج لعملية التسجيل كما تعلمنا سابقاً ونضعه في ملف وليكن باسم signup.php وسيكون ملف معالجة البيانات هو نفسه ملف النموذج أي سنضع للخاصية الـ action للنموذج اسم الملف ذاته والكود التالي كود هذا الملف : <!doctype html><html dir="rtl">    <head>        <meta charset="utf-8">        <title>            تسجيل مستخدم جديد        </title>        <link href="style.css" rel="stylesheet" type="text/css" />    </head>    <body>        <div class="mainLayout">            <div class="header">                <a href="#"> الرئيسية </a>                <a href="login.php"> تسجيل الدخول </a>                <a href="signup.php"> تسجيل مستخدم جديد </a>            </div>            <div class="content">                <form action="signup.php?action=submit" method="POST">                    <table>                        <tr>                            <td><label> اسم المستخدم : </label></td>                            <td><input type="text" name="username" value="<?php echo isset($_POST['username'])?$_POST['username']:''; ?>"></td>                        </tr>                        <tr>                            <td><label>البريد الإلكتروني : </label>                            <td><input type="text" name="email" value="<?php echo isset($_POST['email'])?$_POST['email']:''; ?>"><br>                        </tr>                        <tr>                            <td><label>تأكيد البريد الإلكتروني :</label>                            <td><input type="text" name="email2" value="<?php echo isset($_POST['email2'])?$_POST['email2']:''; ?>"><br>                        </tr>                        <tr>                            <td><label> كلمة المرور : </label>                            <td><input type="password" name="password"><br>                        </tr>                        <tr>                            <td><label>تأكيد كلمة المرور :</label>                            <td><input type="password" name="password2"><br>                        </tr>                        <tr>                            <td colspan="2"><input type="submit" name="submit" value="  تسجيل  "></td>                        </tr>                    </table>                </form>            </div>            <div class="footer">                <span > حقوق كذا وكذا محفوظة لشركة كذا وكذا :) </span><br />            </div>        </div>    </body></html>- لاحظ أنني في خاصية القيمة لكل عنصر وضعت كود php وهو عبارة عن حالة if المختصر , ففي حالة الضغط على زر الإرسال سيتم إرسال البيانات للملف نفسه وبهذا يمكن لنا إستخدامها ووضعها كقيم للحقول حتي لا يتم إعادة كتابة هذه القيم في كل مرة يتم الضغط فيه على زر الإرسال , فالشرط هو في حالة كون العنصر معرف يتم طباعة قيمته وإلا تكون قيمة الحقل فارغة .   والآن سنقوم بكتابة دوال للتحقق من قيم النموذج , وسنقوم بتعريف متغير عام لنضع به صيغة الخطأ وليكن $error   * دالة التحقق من اسم المستخدم username_v وهي لا تأخذ وسائط كالتالي : function username_v(){    global $error;        if(isset($_POST['username']) and $_POST['username'] != null)    {        if(preg_match('/^([a-zA-Z0-9._-]){6,30}$/',$_POST['username']))        {            return true;        }        else        {            $error = "يجب أن يكون اسم المستخدم مكون من الحروف الإنجليزية الكبيرة أو الصغيرة أو الأرقام أو العلامات الخاصة . و _ و - أو خليط منهم فقط ويكون طول اسم المستخدم من 6 إلى 30 عنصر";            return false;        }    }    else    {        $error = "يرجى ملئ حقل اسم المستخدم";        return false;    }}- تم إخبار الدالة باسم المتغير العام لإستخدامه داخلها - الشرط في حالة أن اسم المستخدم username معرف داخل المصفوفة  $_POST ويحمل قيمة بخلاف القيمة الفارغة يتم يتم تنفيذ الشرط التالي وإلا يتم حفظ نص الخطأ في المتغير $error وتعود الدالة بالقيمة الخطأ false . - في حالة تحقق الشرط الأول يتم الإنتقال للشرط التالي وهو التحقق من اسم المستخدم باستخدام دالة preg_match والتعابير القياسية , فهنا جعلنا اسم المستخدم يجب أن يتكون من الحروف الإنجليزية الكبيرة أو الصغيرة أو الأرقام أو العلامات الخاصة . و _ و -  وأن لا يقل اسم المستخدم عن 6 عناصر ولا يزيد عن 30 ففي حالة تحقق هذا الشرط تعود الدالة بالقيمة الصحيحة true وإذا لم يتحقق الشرط يتم حفظ نص الخطأ في المتغير $error والعودة بالقيمة الخطأ false .   * دالة pass_v للتحقق من كلمة المرور  ومطابقتها بحقل تكرار كلمة المرور : function pass_v(){    global $error;        if((isset($_POST['password']) and $_POST['password'] != null)        and (isset($_POST['password2']) and $_POST['password2'] != null))    {        if(preg_match('/^([a-zA-Z0-9]){6,20}$/',$_POST['password']))        {            if($_POST['password'] != $_POST['password2'])            {                $error = "كلمة المرور غير متطابقة";                return false;            }            else            {                return true;            }        }        else        {            $error = "يرجى كتابة كلمة مرور تحتوي على حروف إنجليزية كبيرة أو ضغيرة أو أرقام أو خليط منهم فقط وأن يكون طول كلمة المرور من 6 إلى 20 عنصر";            return false;        }    }    else    {        $error = "يرجى ملئ حقول كلمة المرور";        return false;    }}- الشرط في حالة أن حقل كلمة المرور password وحقل تكرار كلمة المرور password2 معرفين وبهما قيم بخلاف القيم الفارغة يتم تنفيذ الشرط التالي وإلا يتم حفظ نص الخطأ والعودة بالقيمة الخطأ . - الشرط التالي هو شرط التحقق من كلمة السر فيجب أن تكون مكونة من الحروف الإنجليزية الكبيرة والصغيرة والأرقام فقط بحد أدنى 6 عناصر وحد أقصى 20 عنصر , في حالة تحقق الشرط يتم الإنتقال للشرط التالي وإلا يتم حفظ نص الخطأ والعودة بالقيمة الخطأ . - الشرط التالي يتم مطابقة كلمة المرور مع تأكيد كلمة المرور في حالة تحقق الشرط تعود الدالة بالقيمة الصحيحة true وإلا تقوم بحفظ نص الخطأ والعودة بالقيمة الخطأ .   * دالة email_v للتحقق من البريد الإلكتروني ومطابقته كالتالي : function email_v(){    global $error;        if((isset($_POST['email']) and $_POST['email'] != null)        and (isset($_POST['email2']) and $_POST['email2'] != null))    {        if(preg_match('/^([a-zA-Z])([a-zA-Z0-9._-]){2,30}@([a-zA-Z0-9.-])+\.([a-zA-Z0-9]){2,5}$/',$_POST['email']))        {            if($_POST['email'] != $_POST['email2'])            {                $error = "البريد الإلكتروني غير متطابق";                return false;            }            else            {                return true;            }        }        else        {            $error = "يرجى كتابة بريد إلكتروني صحيح";            return false;        }    }    else    {        $error = "يرجى ملئ حقول البريد الإلكتروني";        return false;    }}- بنفس مبدأ عمل الدوال السابقة لعملية التحقق والمطابقة بخلاف تغير التعبير القياسي لللتحقق من صحة البريد الإلكتروني .   * سنقوم بحفظ بيانات المستخدمين على شكل مصفوفة بتنسيق JSON وهذه المصفوفة تحتوي على مصفوفات أخرى بعدد المستخدمين كل مصفوفة تحتوي على اسم المستخدم وكلمة المرور والبريد الإلكتروني ويتم حفظ هذا الكود في ملف وليكن باسم login.json كما في الشكل التالي : [{"username":"ahmed","password":"123456","email":"[email protected]"},{"username":"mohammed","password":"333666999","email":"[email protected]"}]* دالة checkUser للتحقق من وجود هذا المستخدم في الملف login.json أم لا , كما سنقوم بتعريف متغير عام باسم $data لحفظ البيانات التي سيتم جلبها من الملف كالتالي :     function checkUser()    {        global $data;        $jsonData = file_get_contents('login.json');        if($jsonData == false ) return false;        $data = json_decode($jsonData,true);        foreach($data as $value)        {            if($value['username'] === $_POST['username']) return true;        }        return false;    }- قمنا بإخبار الدالة باسم المتغير العام - وقمنا بتعريف متغير محلي باسم $jsonData لحفظ البيانات يتم جلبها من الملف بإستخدام الدالة file_get_contents وتأخذ وسيط هو مسار الملف . - في حالة عدم جلب محتوى من الملف تعود الدالة file_get_contents بالقيمة false وعلى هذا ستعود هذه الدالة بالقيمة false وتعني أن الملف فارغ . - في حالة لم يكن الملف فارغ وبه بيانات نقوم بتحويل تنسيق JSON إلى مصفوفة ترابطية بإستخدام الدالة json_decode  وإعطائها الوسيط الأول محتوى الملف والوسيط الثاني القيمة الصحيحة true وحفظ الناتج في المتغير العام $data - الآن لدينا مصفوفة ترابطية نقوم بالمرور على محتوياتها بإستخدام حلقة الدوران foreach وفي حالة وجود مستخدم بهذا الاسم يتم العودة بالقيمة الصحيحة true وإلا تتم العودة بالقيمة الخطأ false   * دالة signUp لتسجيل مستخدم جديد وحفظ البيانات في ملف signup.json كالتالي : function signUp(){    global $data;    $data[] = array('username'=>$_POST['username'],                    'password'=>$_POST['password'],                    'email'=>$_POST['email']);    $FH = fopen("login.json", 'w') or die("خطأ في فتح الملف للقراءة");    fwrite($FH, json_encode($data));    fclose($FH);}- سنستخدم المتغير العام $data في بإضافة مستخدم جديد للمصفوفة $data وسيتم جلب اسم المستخدم وكلمة المرور والبريد الإلكتروني من النموذج وإدخال مستخدم جديد في المصفوفة $data - الآن سنقوم بفتح الملف بإستخدام fopen الوسيط الأول مسار الملف والثاني نوع العملية سنختار w أي عملية الكتابة على الملف , ودالة die للخروج من الكود في حالة حدوث خطأ في عملية فتح الملف وطباعة ما بداخلها على المتصفح , والدالة die  تستخدم بشكل عام للخروج من الكود كالدالة exit . - وتعود الدالة fopen في حالة نجاحها في فتح الملف بما يعرف بمقبض الملف ويتم حفظه في متغير أو إعطائه لدالة الكتابة مباشراً. - دالة الكتابة على الملف fwrite تقوم بالكتابة على الملف الوسيط الأول هو مقبض الملف الذي تم فتحه والوسيط الثاني البيانات التي سيتم كتابتها في الملف . - دالة fclose لإغلاق مقبض الملف .   وبعد أن إنتهينا من شرح الدوال المستخدمة سنقوم بكتابة الكود الأساسي لعملية تسجيل مستخدم جديد , وهذا الكود سيكون اسفل النموذج وهو كالتالي : <?php        // متغير لحفظ البيانات التي يتم جلبها من الملف    $data;        // متغير لحفظ نصوص الأخطاء    $error;        if(isset($_GET['action']) and $_GET['action'] == 'submit')    {        if( username_v() and email_v() and pass_v() )        {            if(checkUser())            {                echo ("<h4 style='color:#FF0;'>هذا المستخدم موجود بالفعل !</h4>");            }            else            {                signUp();                echo ("<h4 style='color:#0F0;'>تم التسجيل بنجاح !</h4>");            }            }        else        {            echo "<h4 style='color:#F53;'>$error</h4>";        }    }?>- تعريف المتغيرات العامة $error و $data والدوال سيتم وضعها اسفل الوثيقة . - لو لاحظنا أن الـ action للنموذج هو signup.php?action=submit  أي هناك متغير يضاف للرابط عند الضغط على زر التسجيل وهذا الأمر حتي لا يتم طباعة جملة الخطأ بوجود حقول فارغة عند الدخول لأول مرة للنموذج , ومن خلال هذا يمكن لي أن أقوم بتنفيذ أكثر من كود في نفس الصفحة كالتسجيل وتسجيل الدخول ولكن هنا سنكتفي بأن يكون كل ملف مختص بشئ . - الشرط يتم التحقق من تعريف المتغير action وإحتوائه على القيمة submit وإلا لا يتم تنفيذ الكود . - الشرط التالي هو إستدعاء دالة التحقق من اسم المستخدم وكلمة المرور والبريد الإلكتروني وأن جميعهم يجب أن يعودوا بالقيمة الصحيحية true وإلا يتم طباعة رسالة الخطأ للمستخدم المخزنة في المتغير العام $error . - في حالة تحقق الشرط يتم إستدعاء دالة التحقق من وجود مستخدم بهذا الاسم مخزن من قبل في الملف , فهي تعود بالقيمة الصحيحة True في حالة وجود مستخدم بنفس الاسم أو تعود بالقيمة false إذا كان الملف فارغ أو ليس هناك مستخدم بهذا الاسم وعلى هذا يتم تسجيل مستخدم جديد وطباعة رسالة تفيد بذلك أو إظهار رسالة بأن هذا الاسم مستخدم من قبل .   وبهذا إنتهينا من عملية تسجيل الدخول ولكن هذه الطريقة لا تصلح للمواقع التي يكون بها عدد مستخدمين كبير , فهنا علينا إستخدام قواعد البيانات أو تطوير بنية هذا النظام لمزيد من سرعة البحث والمعالجة .   والتالي رابط تنزيل نموذج التسجيل كامل json.zip   * ثانياً : عملية تسجيل الدخول : - في البداية سنحتاج نموذج لتسجيل الدخول كالتالي : <form action="login.php?action=submit" method="POST">    <table>        <tr>            <td><label> اسم المستخدم : </label></td>            <td><input type="text" name="username"></td>        </tr>        <tr>            <td><label> كلمة المرور : </label>            <td><input type="text" name="password"><br>        </tr>        <tr>            <td colspan="2"><input type="submit" name="submit" value="تسجيل الدخول"></td>        </tr>    </table></form>وسنحتاج لدالة لعملية تسجيل الدخول وهي   * دالة login لعملية تسجيل الدخول : function login($username,$password){    $jsonData = file_get_contents('login.json') or die("لم يتم جلب محتوى الملف");    $data = json_decode($jsonData,true);    foreach($data as $value)    {        if($value['username'] == $username and $value['password'] == $password) return true;    }    return false;}- تأخذ هذه الدالة وسيطين هما اسم المستخدم وكلمة المرور -يمكن لنا تفيذ هذه الدالة كالدوال السابقة بدون وسائط ولكن أردت التنويع فقط - - نقوم بجلب محتوى الملف كما تم شرحه في الأعلى - نقوم بالمرور على عناصر المصفوفة للتحقق من وجود المستخدم , ففي حالة مطابقة اسم المستخدم وكلمة المرور يقوم الدالة بالعودة بالقيمة الصحيحة true وإلا تعود بالقيمة الخطأ false   والآن مع الكود الأساسي للصفحة : <?php    if(isset($_GET['action']) and $_GET['action'] == 'submit')    {        if(isset($_POST['username']) and $_POST['username'] != null and isset($_POST['password']) and $_POST['password'] != null)        {            $username = preg_replace('/[^a-zA-Z0-9._-]/','',$_POST['username']);            $password = preg_replace('/[^a-zA-Z0-9]/','',$_POST['password']);            if(login($username,$password))            {                echo "<h3 style='color:#0F0;'> تم تسجيل الدخول مرحباً بك <h3>";            }            else            {                echo "<h3 style='color:#F33;'> لم تتم عملية تسجيل الدخول حاول مجدداً <h3>";            }        }        else        {            echo "<h3 style='color:#F33;'>يرجى ملئ جميع الحقول<h3>";        }    }?>- في البداية التحقق من أن المستخدم قد ضغط على زر تسجيل الدخول من خلال متغير الرابط action وقيمته هي submit - الشرط في حالة تعريف اسم المستخدم وكلمة المرور وإحتوائهم على قيم غير القيمة الفارغة يتم تنفيذ الشرط التالي وإلا طباعة رسالة بالخطأ . - يتم إزالة أي رموز غير الحرورف الإنجليزية والأرقام والرموز المسموح بها -وهذه العملية تعتبر عملية أمنية لحماية الموقع من الإختراق- فمن خلالها يمكن إختراق قاعدة البيانات وتعرف بـ sql injection -ونفس الشئ لكلمة المرور مع إختلاف التعبير القياسي فهنا يزيل كل شي بخلاف الحرورف الإنجليزية والأرقام - بعد هذه العملية يتم إستدعاء دالة تسجيل الدخول للتحقق من وجود المستخدم من عدمة وطباعة رسالة تفيد بذلك   رابط تنزيل الملف json2.zip   التمرين : - أكتب تطبيق لملئ إستمارة لأحد المصالح الحكومية بها بيانات التسجيل التي تحتاجها وقم بحفظها في ملف بتنسيق JSON , وعمل صفحة لعرض وتنسيق محتويات الملف .   وإلى هنا والسلام عليكم ورحمة الله وبركاته , نلقاكم على خير بإذن الله تعالى   الدرس السابق | الإنتقال للموضوع الأساسي
  21. السلام عليكم   اود منكم مساعد في مشروع   ولقد بحث في المنتدى والمنتديات الاجنبية ايضا قبل طرحي للموضوع   ولم اجد الكود لكي اكمل مشروعي وارجو ان اجد المساعد منكم   المشروع عبارة عن بحث عن كلمة في صفحة الموقع     url= ريط صفحة الموقع name_search= الكلمة المراد ايجادها   واخيرا حفط النتيجة في ملف نصي   ارجو ان اجد الكود لمشروعي وبرك الله في الجميع   اخوكم عماد get.rar
  22. ممكن الاخوة يدلوني على لينكات او دروس تعليم C#.NET ضروري
  23. مبتدئة في دراسة الفيجوال بيسك دوت نت ولي بعض التساؤلات وارجو شرحها من الاخوة   وجدت في موقع كود للالة الحاسبة حيث يحتوى على الكود التالي      Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click, btn2.Click, btn3.Click, btn4.Click, btn5.Click, btn6.Click, btn7.Click, btn8.Click, btn9.Click, Button2.Click txtsource.Text = txtsource.Text & sender.text End Sub   حيث تم كتابة الكود الخاص للازرار من رقم 0 الى رقم 9 في كود واحد   - برجاء شرح الكود وما المقصود   ,  sender , handles (ByVal sender As System.Object, ByVal e As System.EventArgs)   - وايه الفرق بين اني اكتب  (ByVal sender As System.Object, ByVal e As System.EventArgs) او اكتب ( sender As System.Object,  e As System.EventArgs)       برجاء التوضيح ضروري
  24. ممكن من الاخوة ان يشرحوا لي composite keys بالتفصيل  ويفضل بالعربي
  25. السلام عليكم   لدي برنامج حسابات و كنت قد عملت كلمة مرور لكود البرمجة VBA وانا الان لا اذكر كلمة المرور هل هناك برنامج يمكن ان يساعدني او طريقة لحل هذه المشكلة    أرجوا مساعدتكم