| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| درسان لعمل تعدد الصفحات بكل بساطة فكرت كثيرا في عمل طريقة بسيطة لعمل تعدد الصفحات وبعد ساعات توصلت وبحمدالله لهذه الفكرة ان كان احدكم يرى بها عيبا فليخبرني بها وجزاه الله خيرا هناك طريقتين في هذه الدروس وهي تقسيم الاستعلام لعدة صفحات ويتم وضع ارقام الصفحات في شريط به ارقام الصفحات مثال : 1 2 3 4 5 تماما مثل ماهو موجود في منتديات في بي ( مثال سوالف ) الطريقة الثانية عبارة عن رابطين : السابق || التالي اترككم مع الدرسين وبانتظار نصائحكم وملاحظاتكم الطريقة الاولى ( ارقام الصفحات) الطريقة الثانية ( السابق||التالي) تحياتي أبوعامر
__________________ www.abu3amer.com | |||||
|
| |||||
|
يعطيك العافية
__________________ العاب اون لاين (سكربيت العاب فلاشية) ............................ سكربيت مقاطع الفيديو | |||||
|
| |||||
|
السلام عليكم ورحمة الله اخواني مدمن أنترنت , Dr.no , moooon و izaq العفو ,,, واتمنة انكم تستفيدون من الدرس اقتباس:
الان سنجعل قيمة count عبارة عن count المأخوذة عنطريق GET ونضيف لها عدد النتائج التي نريد عرضها في الصفحة التالية , ونخزن هذه القيمة في next ثم نرسل للمتصفح ان قيمة count للصفحة القادمة اصبحت next ![]() كلام معقد شوي , ولكن لو ركزت فيها حتفهم قصدي اخذنا قيمة count من المتصفح اضفنا لها عدد النتائج التي نريدها في الصفحة التالية خززّنا القيمة الاجمالية في المتغير next اعطينا للمتصفح القيمة الجديدة لـ count وهي قيمة next لكي يرسلها للصفحة القادمة؟ اتمنى تكون فهمت شرحي المتواضع تحياتي
__________________ www.abu3amer.com | |||||
|
| |||||
|
كيف سيكون التعامل في حين اودع لي احد الزوار قيمه ناقصه -10 مثلا وشكرا لك ابو عامر على الدرس الجميل
__________________ مؤسسة المهمات البرمجية 00966507585887 0507585887 www.mr-php.com.sa www.mr-php.com | |||||
|
| |||||
|
السلام عليكم ورحمة الله أهلا بك اخي المهمة 9 تم معالجة هذا الأمر فلو لاحظت انه في السكربت ستجد الشرط , انه لو كانت قيمة count أقل من صفر ( يعني قيمة سالبة ) فسيكون رابط السابق غير نشط ولكنها لن تظهر أي نتائج ( وهذا الشئ حسب علمي وارد في كل الطرق المشابهة التي شاهدتها , وذلك لأنه ليس من المفترض ان يدخل المستخدم الرقم بشكل يدوي ) على العموم هذه يمكن معاجلتها , وذلك باضافة شرط انه اذا كانت قيمة count اقل من صفر يظهر رسالة خطأ او يعتبرها موجبة او يظهر الصفحة الاولى اتمنى ان تجرب السكربت والبحث عن اي هفوات قد لاتكون قد خطرت ببالي , تحياتي
__________________ www.abu3amer.com | |||||
|
| |||||
| مشكور يابو عامر
بصراحة الدرسين استفدت منها كثير واحسن ما اعجبني سهولة الشرح الله يوفقك لكن فيه نقطة راح اناقشك معاها على تطوير الكود ... اولاً : عندما يضغط المستخدم (التالي) أو رقم الصفحة اللي الاحظه انه تظهر قيمة أول عدد للسجل في عنوان المتصفح وهي المتغير count وهذي ثغرة بسيطة .. لماذا لا تجعل المتغير مرقم تسلسلي ؟ يعني بدل 10،20،30،40،50 تخليها ترقيم عادي يعني رقم الصفحة 1 أو 2 أو 3 لأن الأرقام كذا بتكشف تسلسل أرقام القاعدة أو السجلات طبعاً الوضع مو سهل لكن مو صعب حلها ... ثانياً : النقطة التي تطرق إليها الأخ (المهمة9) ... وهي لو تم وضع رقم يدوياً في عنوان المتصفح أنا جربت كودك وبذلك لن يتم إخراج أية نتائج ... لكن طريقة وضع الرسالة هنا المشكلة بعد التعديل على النقطة الأولى حيث افرض انه لو كانت لديك 53 سجل وعدد السجلات في كل صفحة 10 فكيف ستتم القسمة؟؟ ستقول لي لماذا القسمة سأقول لك لكي يتم إدراج العدد في الشرط الذي سيخرج الخطأ إذا كيف ستعرف عدد الصفحات عند كل قاعدة سيستخدمها أي شخص ؟ الجواب أيضاً سهل وذلك باستخدام الدالة ceil إذا سيتم تقريب العدد العشري إلى أكبر وأقرب عدد صحيح .. على كل أنا طولت عليك لكن بغيت أخذ كودك من جميع النواحي وأرد على الأسئلة عنك ... الكود تبعك انا جربته أو بالأحرى جربت الإثنين وكلها اشتغلت زي اللوز وما فيها أي مشكلة لكن بعد النقطتين اللي ذكرتها صار لازم تعديل ... خذ الكود مع انه ( مخربص ) لأن ما كان عندي وقت ... وآسف على الإطالة والسلام عليكم ... كود PHP: طبعاً بالنسبة لقاعدة البيانات راح اوفر عليكم هذي قاعدة بيانات بسجلاتها على عجل ... كود: CREATE TABLE `names` ( `id` int(11) NOT NULL auto_increment, `name` varchar(250) default NULL, `email` varchar(250) default NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM; # # Dumping data for table 'names' # INSERT INTO names VALUES (1,'mohammed','alkha6ar@msn.com'); INSERT INTO names VALUES (2,'zhswg','zhswg@hotmail.com'); INSERT INTO names VALUES (3,'zvq','zvq@hotmail.com'); INSERT INTO names VALUES (4,'gufhzfq','gufhzfq@hotmail.com'); INSERT INTO names VALUES (5,'dxceyo','dxceyo@hotmail.com'); INSERT INTO names VALUES (6,'tbjbbqub','tbjbbqub@hotmail.com'); INSERT INTO names VALUES (7,'lbopsc','lbopsc@hotmail.com'); INSERT INTO names VALUES (8,'segcuw','segcuw@hotmail.com'); INSERT INTO names VALUES (9,'dgijen a','dgijen a@hotmail.com'); INSERT INTO names VALUES (10,'nlo atriu','nlo atriu@hotmail.com'); INSERT INTO names VALUES (11,'jtzvdr','jtzvdr@hotmail.com'); INSERT INTO names VALUES (12,'uocqmvi','uocqmvi@hotmail.com'); INSERT INTO names VALUES (13,'vhd','vhd@hotmail.com'); INSERT INTO names VALUES (14,'cyxsxzy a','cyxsxzy a@hotmail.com'); INSERT INTO names VALUES (15,'qtmuuizv','qtmuuizv@hotmail.com'); INSERT INTO names VALUES (16,'ldcpmnm','ldcpmnm@hotmail.com'); INSERT INTO names VALUES (17,'lpsvjb','lpsvjb@hotmail.com'); INSERT INTO names VALUES (18,'zlspoy','zlspoy@hotmail.com'); INSERT INTO names VALUES (19,'d anjin','d anjin@hotmail.com'); INSERT INTO names VALUES (20,'gzhqvwb','gzhqvwb@hotmail.com'); INSERT INTO names VALUES (21,'sveumor','sveumor@hotmail.com'); INSERT INTO names VALUES (22,'d aqxl','d aqxl@hotmail.com'); INSERT INTO names VALUES (23,'gkfepxl','gkfepxl@hotmail.com'); INSERT INTO names VALUES (24,'neggyifj','neggyifj@hotmail.com'); INSERT INTO names VALUES (25,'ktpzu alpfz','ktpzu alpfz@hotmail.com'); INSERT INTO names VALUES (26,'rkvkrwf a','rkvkrwf a@hotmail.com'); INSERT INTO names VALUES (27,'lfslxyer','lfslxyer@hotmail.com'); INSERT INTO names VALUES (28,' apsikzzj',' apsikzzj@hotmail.com'); INSERT INTO names VALUES (29,'ztregsj asr','ztregsj asr@hotmail.com'); INSERT INTO names VALUES (30,'uwpnwbrs','uwpnwbrs@hotmail.com'); INSERT INTO names VALUES (31,'mpjfpisxs','mpjfpisxs@hotmail.com'); INSERT INTO names VALUES (32,'kjtqkh','kjtqkh@hotmail.com'); INSERT INTO names VALUES (33,'eersczsfv','eersczsfv@hotmail.com'); INSERT INTO names VALUES (34,'yrjsqqo','yrjsqqo@hotmail.com'); INSERT INTO names VALUES (35,'rsbmyl','rsbmyl@hotmail.com'); INSERT INTO names VALUES (36,'pbkygbw','pbkygbw@hotmail.com'); INSERT INTO names VALUES (37,'qpzeq','qpzeq@hotmail.com'); INSERT INTO names VALUES (38,'edhrtwqgf a','edhrtwqgf a@hotmail.com'); INSERT INTO names VALUES (39,'kv a arrn','kv a arrn@hotmail.com'); INSERT INTO names VALUES (40,'rqycx','rqycx@hotmail.com'); INSERT INTO names VALUES (41,' amwtpwfwq',' amwtpwfwq@hotmail.com'); INSERT INTO names VALUES (42,'ibhydjos','ibhydjos@hotmail.com'); INSERT INTO names VALUES (43,'phrmvxmc','phrmvxmc@hotmail.com'); INSERT INTO names VALUES (44,'yu atooox','yu atooox@hotmail.com'); INSERT INTO names VALUES (45,'fzivejdfi','fzivejdfi@hotmail.com'); INSERT INTO names VALUES (46,'rrovrmkz','rrovrmkz@hotmail.com'); INSERT INTO names VALUES (47,'h awexwq','h awexwq@hotmail.com'); INSERT INTO names VALUES (48,'dxipykkhb a','dxipykkhb a@hotmail.com'); INSERT INTO names VALUES (49,'mtzxixxx','mtzxixxx@hotmail.com'); INSERT INTO names VALUES (50,' aqhbz',' aqhbz@hotmail.com'); INSERT INTO names VALUES (51,'eqdec','eqdec@hotmail.com'); INSERT INTO names VALUES (52,'iplyv','iplyv@hotmail.com'); INSERT INTO names VALUES (53,'xvlrziqf','xvlrziqf@hotmail.com');
__________________ **************************** Danger For Make Dreams **************************** | |||||
|
| |||||
|
وعلى فكرة انا استخدمت الكود تبع السابق والتالي وليس الترقيم وأي استفسار انا حاضر ومشكور يابوعامر على فتح المجال وعلى شرحك الجميل تمنياتي لك بالتوفيق والنجاح
__________________ **************************** Danger For Make Dreams **************************** | |||||
|
| |||||
|
السلام عليكم ورحمة الله وبركاته اخي alkha6ar , الف شكر لك , فانا شخصيا ممن يعشقون الحوار في تطوير الامور فلنأتي الى ردكم الكريم : ردا على (أولا ) : عندما يضغط المستخدم (التالي) أو رقم الصفحة اللي الاحظه انه تظهر قيمة أول عدد للسجل في عنوان المتصفح وهي المتغير count وهذي ثغرة بسيطة .. لماذا لا تجعل المتغير مرقم تسلسلي ؟ عفوا هذه ليست بثغرة (في نظري ) لانه هذا ترتيب السجل وليس رقم السجل حتى انه من الطريقة التي قمت بعملها في ردك السابق , فكل ماعلي هو طرح عدد النتائج من رقم الصفحة لمعرفة ترتيب السجل الحالي وحتى وان كن رقم السجل , ففي كل سكربتات العالم , سيظهر لك رقم الid لاي سجل ( مثلا هذا الموضوع رقمه 483520 ) وcount سيتغير بناء على حسب المعطيات التي تدخلها فمثلا لو استخدمنا الدرس في نتائج محرك بحث فالرقم سيتغير في كل مرة تدخل فيها بحثا ( حسب الشروط الموضوعه في الاستعلام )يبدوا ان هناك نقطة لم افهمها في قصدك , الرد على (ثانيا) اذا انتفت الحاجة لاولاً , فثانيا لاحاجة لها وكما ذكرت في ردك الكريم ,,, كل شي ممكن عمله , لكن القصد هو الوصول للفكرة بصراحة , قبل ان تخرج من (نفوخي ) هذه الطريقة , كنت اعتبر عمل تعدد الصفحات قضية طويلة ومعقدة وصعب الوصول اليها , لاني شاهدت طرقا كثيرة معقدة جدا جدا جدا , اضف الى الكثير من الناس وجدتها تسئل عن الطريقة , ولايوجد من يجيب فلهذا كنت دائما اترك هذا الجزأ جانبا حتى اتفرغ له وبالفعل جاء اليوم الذي قررت ان لا اعمل اي شي في هذا اليوم حتى اصل الى حل ,, وفي النهاية ضحكت كثيرا وتعجبت من بساطة الفكرة ,, واني كنت (مكبّر ) الموضوع حبتين على العموم هنا درس لعمل فكرة قريبة من التي تقصدها وهي ارقام الصفحات : http://www.phpfreaks.com/quickcode/C...Results/18.php ( ويمكنك تصور التعقيد الموجود في الفكرة ) بانتظار ردك الكريم
__________________ www.abu3amer.com | |||||
|
| |||||
|
أهلا بك يا أخي ـ بالنسبة للنقطة الأولى تعتبر ثغرة ولكن حسب نوعية السكربت المستخدم فلو لاحظت إني لو حطيت يدوياً رقم في العنوان المتصفح لأتى لي البرنامج بالسجلات بعد هذا الرقم وهذه تعتبر ( بعثرة ) يعني بدل ماهي 10.20.30.40 ضع رقم 22 يدوياً وانظر ما سيحدث لكن إذا كانت متسلسلة لن يستطيع الستخدم تغيير اي شي وإن تم تغييره فسيت رفض طلبه لأن الكود عدل بناء على النقطة الثانية . والصفحة اذا كان نسبة تحكم المستخدم فيها 1% فهذه تعتبر ثغرة ( إن شاء الله تقتنع بالفكرة ) ـ النقطة الثانية لم اكن افكر فيها من الأساس ولكني عدلت الكود بناء على كلام الأخ مهمة9 وهذا ما جعلني مقتنع بالكود المعدل أكثر منه في الكود السابق ... هذه وجهة نظري أرجو أن تفهمها وبالنسبة للكود تبع محرك البحث الذي في موقع phpfreaks قرأته وهو شبيه بكودك وهذا يدل على بساطة الفكرة والذي علينا حالياً هو تطويره ليتم استخدامه بشكل أفضل ... أرجو أن اكون لا ضايقتك بكلامي أو من هذا القبيل واستمتعت صراحة بالنقاش معك وشكراً لك...
__________________ **************************** Danger For Make Dreams **************************** | |||||
|
| |||||
|
السلام عليكم ![]() انا من استمتع بالحوار معك فهمت قصدك , ان كنت تقصد انها ثغرة ان يتحكم المستخدم بها فيمكن تلافيها بابسط طريقة وهو وضع القيمة في زر (وليست رابط ) والاخذ لايكون عن طريق GET بل عن طريق POST وانتهت المشكلة مارأيك الان؟
__________________ www.abu3amer.com | |||||
|
| |||||
|
هههههههه مو مشكلة انت حل المشكلة وانا راح اطلع لك مشكلة ... اول شيء ياحبيبي في الله الأزرار يستطيع تحليلها أي شخص عن طريق عرض المصدر وحتى إن لم تكن هناك حاجة للتحليل فبمجرد ضغطك على الزر ستتم كتابة العنوان تلقائياً في المتصفح ... وحتى لو باستخدام POST لأن البيانات بالعكس ستظهر علنياً في عنوان المتصفح أيضاً ... حتى ولو كانت مشفرة لكن في سكربتك البيانات مجرد أرقام وليست حروف أو من هذا القبيل يعني سهل تحليلها ... شكراً لك على ردك الكريم أخ أبو عامر ... ( <- والله النشبة !! )
__________________ **************************** Danger For Make Dreams **************************** | |||||
|
| |||||
|
السلام عليكم ![]() انا النشبة اذا وضعناها في زر , لن نرسلها بنفس الطريقة عن طريق الرابط في المتصفح , بل مثل النماذج ( الفورم) وبذلك سنتقبلها عن طريق POST وليس عن طريق GET POST يجب ان يكون الرقم عن طريق الفورم وليس عن طريق الرابط(في المتصفح ) اتمنى تكون فهتني يعني حتى لو حلل وعرف اي شي لن يستطيع ارسالها للصفحة التي ستستقبلها
__________________ www.abu3amer.com | |||||
|
| |||||
![]() انا عارف قصدك اخ بو عامر وكلامك سليم بس في حالتنا هذي المشكلة وش هي ؟؟ المشكلة إنه ما فيه صفحة لا للإرسال ولا للإستقبال الشغل على PHP_SELF$ ... يعني المستخدم يستطيع ان يعرف رقم السجلات ...!! ههههههه أرجو أن لا تكثر ( بربرتنا ) بلا فائدة ... وشكراً لك ..
__________________ **************************** Danger For Make Dreams **************************** | |||||
|
| |||||
|
جازك الله خيراً ووفقك الله لما تحب وترضى وانا ابحث عن هذه الطريقة من مدة
__________________ http://kliege.jeeran.com/Alwin.JPG عرب هاردوير عرب سوفتوير فداكم و فدا مبادىء أمتنا المجيدة،وفدا رايات الجهاد ودينها ومعاينها،النفس والأهل والد.. السيد الرئيس القائد صدام حسن | |||||
|
![]() |
| أدوات الموضوع | |
| |