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

تطبيق Login Box باستخدام مكتبة Xajax

بدأه eramax في 3 يوليو 2009 · 4 رد · 838 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخوانى الكرام

اليوم ساتكلم عن مكتبة قوية فى عالم ال Ajax وهى مكتبة XAJAX

post-115179-1246584106_thumb.png

هذه المكتبة توفر لك انت كمستخدم ان تستطيع ان تنادى دوال ال PHP من خلال كود ال HTML او الجافا سكربت الذى لدى ال Client

صممت بها تطبيق بسيط وهو لعمل Login ولكن دون تطرق لموضوع ال Session (لانى لم اذاكرها حتى الان :D )

post-115179-1246584126_thumb.png

اولا ابدأ بقاعدة البيانات :

CREATE DATABASE userX;
USE userX;


CREATE TABLE users (
	userName char(50) NOT NULL,
	pass  CHAR(20)  NOT NULL,
	id  int(4) NOT NULL,
	PRIMARY KEY(id));

INSERT INTO `userX`.`users` (`userName`, `pass`, `id`) VALUES ('ahmed', '123', '1');

INSERT INTO `userX`.`users` (`userName`, `pass`, `id`) VALUES ('essam', '456', '2');

لاحظ معى كود ال Server Side

  1.  
  2. <?php
  3.  
  4. require_once ("../xajax_core/xajax.inc.php");
  5. $xajax = new xajax("signup.server.php");
  6. $xajax->register(XAJAX_FUNCTION,"LoginX");
  7.  
  8.  
  9. function LoginX($user,$passy)
  10. {
  11. $objResponse = new xajaxResponse();
  12.  
  13. $db = mysql_connect("localhost","root","") or die("Can not Connect to MySql");
  14.  
  15. mysql_select_db("userX",$db);
  16.  
  17. /* Verify that user is in database */
  18. $q = "SELECT pass FROM users WHERE userName ='$user'";
  19.  
  20. $qr1 = mysql_query($q);
  21. $arr = mysql_fetch_array($qr1);
  22. $TruePass = $arr["pass"];
  23.  
  24. $rets ="";
  25. if($passy == $TruePass) {$rets .= "Login Successeded :)";}
  26. else $rets .= "Login Failed :)";
  27. $objResponse->assign("update","innerHTML",$rets);
  28.  
  29. return $objResponse;
  30. }
  31.  
  32. $xajax->processRequest();
  33.  
  34. ?>
  35.  
  36.  

اتمنى ان يكون الكود شارح نفسه ولكن هناك نقطة فقط اريد توضيحها وهى انك لابد ان تقوم بتسجيل الدوال التى ستستخدمها (لا اعلم ماذا تعنى تسجيل بالظبط )ولكن نستخدم السطر الثالث لذلك

فقط تعطيه اسم الدالة وبهذا يمكنك استخدامها فى ال Client Side

ما بداخل الكود هو اننى عملت select على الباسورد الخاصة بالمستخدم الفلانى الذى ياتى لى اسمه فى المتغير $user

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

ايضا لاحظ باننى استطعت ان اكلم الصفحة التى على ال Client Side بسهولة واتحكم بها وعلى سبيل المثال هذا السطر الذى يمكنك من ان تقوم بادخال محتوى ال DIV التى لها ال ID = "update"

لاحظ معى كود ال Client Side

  1.  
  2.  
  3.  
  4. <?php require_once ("../xajax_core/xajax.inc.php"); ?>
  5. <?php
  6.  
  7. $xajax = new xajax("login_ServerSide.php");
  8.  
  9. //write the relative path of
  10. $xajax->configure('javascript URI','../');
  11.  
  12. $xajax->register(XAJAX_FUNCTION,"LoginX");
  13.  
  14. ?>
  15.  
  16. <?php $xajax->printJavascript(); ?>
  17.  
  18.  
  19. <html>
  20. <head>
  21. <link rel="stylesheet" type="text/css" href="/xajax/pro1/login.css" />
  22. &#60;script language="javascript">
  23.  
  24. function CheckValues()
  25. {
  26. var us = document.getElementById('UserNM').value;
  27. var pas = document.getElementById('PassST').value;
  28. if(us && pas) {
  29. var dv = document.getElementById("update");
  30. dv.innerHTML="";
  31. xajax_LoginX(us,pas);
  32. }
  33. else alert("Fill All Fields");
  34. }
  35.  
  36. </script>
  37.  
  38. </head>
  39.  
  40. <body>
  41.  
  42. <div class="LoginBox">
  43. User:
  44. <input type="text" id="UserNM" name="UserNM" />
  45. Pass:
  46. <input type="password" id="PassST" name="PassST" />
  47.  
  48. <input class="subBut" type="button" id="Subm" value="Login Using XAJAX" onclick="CheckValues()" />
  49.  
  50. <div id="update">&nbsp;</div>
  51.  
  52.  
  53. </div>
  54. </body>
  55. </html>
  56.  
  57.  
  58.  

ايضا عملت تسجيل لاسم الدالة التى ساناديها ثم كتبت صفحة ال HTML الخاصة بى ولاحظ معى هذا ال Button

  1.  
  2. <input class="subBut" type="button" id="Subm" value="Login Using XAJAX" onclick="CheckValues()" />
  3.  
  4.  

انه عندما تضغط عليه ينادى دالة الجافا سكربت التى اسمها CheckValues

ندخل الى الدالة ونرى ما بها :

  1.  
  2. function CheckValues()
  3. {
  4. var us = document.getElementById('UserNM').value;
  5. var pas = document.getElementById('PassST').value;
  6. if(us && pas) {
  7. var dv = document.getElementById("update");
  8. dv.innerHTML="";
  9. xajax_LoginX(us,pas);
  10. }
  11. else alert("Fill All Fields");
  12. }
  13.  
  14.  

انا تقوم بجلب القيم التى فى مربعات الادخال وتقوم بالمشايكة عليهم هل يحتوا على قيمة ام لا هما الاثنين

وفى حالة كانوا غير فارغيين تقوم باخفاء محتوى ال Update Div مما يتسبب فى ان ال Height الخاص بهذا ال DIV يصبح صفرا فيختفى ال DIV ولا يظهر

ثم تنادى دالله ال PHP والتى اسمها LoginX والتى كل هذا الدرس بسببها وهى كيف تمكننا من ان ننادى دوال بسهولة تامة من على ال Client Side

اما لو كان هناك احد الحقول فارغ فستظهر لن رسالة تخبرنا بانه يجب ملئ الحقول كلها

طبعا المكتبة غنيتنا عن عمل XMLHttpRequest وسهلت الامور بشكل اكبر

هناك ملف CSS ايضا حتى يظهر الصندوق بشكل افضل :

  1.  
  2. .LoginBox {
  3. font-family:"Courier New", Courier, monospace;
  4. font-weight:bold;
  5. font-size:14px;
  6. color:#666;
  7. border:2px solid #0FF;
  8. width:183px;
  9. background:#0CF;
  10. }
  11.  
  12. .subBut {
  13. color:#00F;
  14. width:100%;
  15. }
  16.  
  17. #UserNM, #PassST {
  18. background:#CCC;
  19. font-size:13px;
  20. }
  21.  
  22. #UserNM:hover, #PassST:hover {
  23. background:#CF0;
  24. border:2px solid #FF0;
  25. }
  26.  
  27. #update {
  28. color:#3FF;
  29. }
  30.  
  31.  
  32.  

السورس مرفق كاملا

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

EraMaX

xajax.rar

تم تعديل هذه المشاركة بواسطة eramax في 3 يوليو 2009 في 12:47

amdvsintel22.jpg

--i use AMD--

لا اله الا الله محمد رسول الله

أستعن بالله و لا تعجز

تابعنى على تويتر

***

#2

ما شاء الله عنك أخي .. أتمنى لك دوام التقدم والنجاح

#3

رائع أخي الكريم

بارك الله بك

أنصحك بالبدء في تعلم السيشن فوراً لكي تصبح الطريقة فعالة حقاً

#4

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

ربنا يسهل الامور

amdvsintel22.jpg

--i use AMD--

لا اله الا الله محمد رسول الله

أستعن بالله و لا تعجز

تابعنى على تويتر

***

#5

وين كنت عن هاد الموضوع :unsure:

eramax عندنا بالمنتدى وأنا ماعندي علم :)

يا أهلا وسهلا .. بشوفك دايما بمنتدى التقنية , كنت بشوف بملفك فلقيت هاد الموضوع وإستغربت لآني دايما بمنتدى البي أتش بي وماشفته!!

على كل المكتبه رائعه كونها خاصه بالبي أتش بي وليست جافاسكريبت وهذا ما إستغربته , سأقوم بالتجربه وإن شاء الله أن تكون مفيدة في العمل, بارك الله بك

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

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