يوم سوالف، في 7 أغسطس القادم

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#1 (permalink)  
حيلة مع ال GET ربما تنفعك !


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

سنتكلم عن حيلة او طريقة اخرى للتعامل مع ال GET

ما هو معروف عند جميع المبرمجين ان طريقة جلب معلومات من العنوان يكون عن طريق GET

وطريقة عملها هي

Test.php?id=254

ونكتبه برمجيا

كود PHP:

$id
=$_GET['id']; 
ولكن ماذا لو اردنا ان نجعل الرابط هكذا

Test.php?254



بكل سهولة اولا يجب علينا معرفة ان $_GET تصبح مصفوفة يوجد داخلها المفتاح وقيمته

سنطبع ما يوجد في هذا الرابط test.php?id=254 لكي نفهم ماذا بداخل $_GET

كود PHP:

Print_r
($_GET); //Array ( [id] => 254 ) 
ولو اردنا ان نطبع هذا الرابط test.php?254 ؟

النتيجة هي ان القيمة ستصبح هي المفتاح او بالأصح المتغير

كود PHP:

Print_r
($_GET); //Array ( [254] => ) 
لاحظ ان مكان القيمة اصبح فارغا

وماذا لو اردنا ان يكون الرابط يحتوي على لكثر من قيمة ؟

بكل بساطة سنضيف & ويكون الرابط هكذا test.php?id=254&cat=13

وستصبح المصفوفة على هذا الشكل

كود PHP:

Print_r
($_GET); // Array ( [id] => 254 [cat] => 13 ) 
ومرة اخرى نزيل id و cat ليصبح هكذا

كود PHP:

Print_r
($_GET); // Array ( [254] => [13] => ) 
والأن كيف نستفيد من هذه الطريقة لاستخراج المعلومات من القاعدة ؟

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

مثلا لدينا اثنين الأول هو id والثاني هو cat

بكل بساطة

كود PHP:

/* نتأكد اولا من استخدام الرابط بشكل سليم
ونعمل حلقة تكرار لاستخراج ما يوجد في ال GET وتخزينها في مصفوفة
*/
if(isset($_GET)){
foreach(
$_GET as $val => $value ){
$Nad[]=$val;
}
}
$id=$Nad[0]; // متغير يحفظ فيه رقم المقال على سبيل المثال
$cat=$Nad[1]; // متغير يحفظ فيه رقم القسم

// وتستخدمه في جلب المعلومات من القاعدة
$sql="select * from table_name where id='$id' AND cat='$cat'";
'
"; 
والسلام عليكم






عبد الواحد البشيري غير متواجد حالياً   قديم 12-01-2008, 12:34 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Aug 2005-
#2 (permalink)  

روعة و الله يا اخ Nadorino بارك الله فيك
و نفعنا بعلمك






__________________
أحمد أبو النصر
Junior php Developer
+20166196074
أحمد أبو النصر غير متواجد حالياً   قديم 12-01-2008, 12:37 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2007-
#3 (permalink)  

جميل جدا جدا فعلا






__________________
انتظروا المفاجاه (سكربت ......... الاول من نوعه )
-----
شركه ارت نت
برمجه
(العاب - مواقع - ويندوز ابلكيشين )
( اداره للمواقع - حمايه للسيرفيرات)
(كشف ثغرات المواقع والسكربتات )
artint.net غير متواجد حالياً   قديم 26-01-2008, 01:12 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#4 (permalink)  

درس جميل اخوي بارك الله فيك ...






EbNCaNa غير متواجد حالياً   قديم 26-01-2008, 02:57 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#5 (permalink)  

شكرا لكم جميعا على المرور والتعليق






عبد الواحد البشيري غير متواجد حالياً   قديم 26-01-2008, 03:20 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Sep 2006-
#6 (permalink)  

درس وفكره جميله
تشكرررررررررررر






__________________
الامانة بالتعامل هي بوابة النجاح
شبكة عمان لخدمات تطوير واستضافة المواقع
oman-web.com
omansecurity.com
MSN: Security (@) oman-web.com
OmanSecurity غير متواجد حالياً   قديم 27-01-2008, 12:24 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#7 (permalink)  

جميل جدا، استمتعت بالفكرة






DNSerror غير متواجد حالياً   قديم 27-01-2008, 01:08 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#8 (permalink)  

فكرة جميلة ، لكن قد يحدث خطأ عند تغيير ترتيب المتغيرات ..
t.php?1&2 لا يساوي t.php?2&1






dev11 متواجد حالياً   قديم 27-01-2008, 11:13 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#9 (permalink)  

OmanSecurity

شكرا على المرور اخي اتمنى انك استفدت من الطريقة

DNSerror
مرحبا بك اخي الحمد لله ان الطريقة اعجبتك

asaamas

اخي الكريم نعم سيقع خطأ ان لم تكن القيمة لا تساوي ما في القاعدة كذلك في الروابط العادية نفس المشكل

عندنا
index.php?c=117&a=1696

لنجعله هكذا

index.php?c=1696&a=117

المبرمج عندما يستخدم هذه الحيلة سيكون في الحسبان ان اي زائر ربما يغير القيم وبذلك يضع الشرط ... الى اخره

بارك الله فيك اخي






عبد الواحد البشيري غير متواجد حالياً   قديم 27-01-2008, 11:41 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#10 (permalink)  

ما أقصده هو أن
index.php?c=117&a=1696 يساوي index.php?a=1696&c=117
بينما
index.php?117&1696 لا يساوي index.php?1696&117






dev11 متواجد حالياً   قديم 30-01-2008, 10:32 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#11 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة asaamas مشاهدة المشاركة
ما أقصده هو أن
index.php?c=117&a=1696 يساوي index.php?a=1696&c=117
بينما
index.php?117&1696 لا يساوي index.php?1696&117
عادي جدا اذا كان الزائر يريد تغيير القيم من مكانها الصحيح سيسبب مشكلة اقول مشكلة وليست تثغرة وهذا المشكل يتحمله نفس الزائر

وهنا يأتي دور المبرمج في تحديد قيمة كل GET

اما اذا كان الزائر دخل الى الصفحة بالطريقة المشروعة لن يكون اي مشكل..
اتمنى انك فهمت المقصود

والسلام عليكم






عبد الواحد البشيري غير متواجد حالياً   قديم 31-01-2008, 10:49 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#12 (permalink)  

نعم ،، بالضبط






dev11 متواجد حالياً   قديم 31-01-2008, 02:39 PM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: May 2007-
#13 (permalink)  

درس ممتازوفكرة ممتازة أيضاً






__________________
مركز تحميل الايجابي
www.alejaaby.com/up
الايجابي غير متواجد حالياً   قديم 31-01-2008, 06:49 PM
رد مع اقتباس
رد


أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
اطلالة سريعة على الوندوز 2003 سيرفر + تنصيب+شرح كامل NaT-Server الشبكات والخوادم في نظام ويندوز 21 07-02-2008 04:01 AM
» خدمة وسيطي ( للتعاملات الأجنبية) up700.com خدمات البيع والشراء والإعلانات التجارية 0 25-11-2007 10:10 AM
Microsoft تطلق خدمة تسكين المواقع مجانا مع نطاقات com , net , org أمير عبدالله تطوير الويب 22 21-10-2006 08:48 PM
إطلاق أكبر خدمة موزعين Easy Host .. أفضل الحلول على الإطلاق! مربع قسم تبادل خبرات الاستضافة 15 02-05-2006 09:45 AM
تعرف على (4) الـ FTP محمود المسعودي تطوير الويب 5 11-03-2003 04:40 PM


الساعة الآن: 07:16 PM بتوقيت المملكة العربية السعودية