اذهب إلى المحتوى

Adnane Kadri

الأعضاء
  • المساهمات

    5129
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    51

كل منشورات العضو Adnane Kadri

  1. الأصح ليس تقسيم هاته العناوين أو هؤلاء الزوار على الدول، بل هو في استخراج الدول من عناوين الأيبيهات السابقة وحساب تكرار كل منها. أي أن العملية ستتبع المنطق التالي: نقوم بتحضير استعلام تحديد لعناوين أيبيهات الزوار. جلب اسم الدولة المعبر عن كل عنوان IP. تخزين الناتج في مصفوفة. حساب تكرار كل قيمة من المصفوفة (يمكنك إستعمال الدالة array_count_values في PHP). <?php $arr = ['algeria' ,'egybt' ,'ghana' ,'egybt']; print_r(array_count_values($arr)); // Array ( [algeria] => 1 [egybt] => 2 [ghana] => 1 ) تأكد من تتبع هاته الخطوات وخرج كل خطوة لربطها بالتي بعدها على نحو صحيح. توثيق الدالة array_count_values.
  2. يمكنك الاستفادة من هاته الإجابات على سؤال سابق لك
  3. العناصر التي ذكرتها لم يأت بها لارافيل أو اخترعها، بل قد كانت مجموعة مفاهيم تقنية شائعة جمعها ولخصها و جاء بها كمميزات، فلارافيل ليس إلا مجموعة شيفرات جاهزة تجعل التطوير عليه أسهل وأكثر وضوحا مما هو عليه في PHP بتوفير مجموعات من الأصناف والتوابع والمساعدات والملفات التي تخدم غرضا أو مفهوما معينا، وفيما يأتي مجموعة المفاهيم الأساسية: التهجير بشكلها العام تعرف عمليات تهجير قواعد البيانات على أنها عملية ترحيل البيانات من قاعدة بيانات مصدر واحدة أو أكثر إلى قاعدة بيانات هدف واحدة أو أكثر. فعند الانتهاء من هذا الترحيل ، تتواجد مجموعة البيانات في قواعد البيانات المصدر بالكامل على الرغم من نشاطها في القاعدة الهدف. وعلى الرغم من احتمال إعادة هيكلتها في قواعد البيانات الهدف. لارافيل هو نفسه أيضا يستعمل هذا المفهوم ويقوم بتوفير طريقة لإنشاء هياكل قاعدة بيانات مصدر وبأمر بسيط ترحيلها إلى قاعدة بيانات هدف والحفاظ على هيكلة قواعد البيانات الأساسية. تشبه عمليات التهجير في لاراففيل نظم التحكم في الإصدار لقاعدة البيانات الخاصة بك، بشكل يجعل فريق قادرا على تعديل مخطط قاعدة بيانات التطبيق ومشاركته بكل سهولة. فلو أردت مثلا بعد عام من نشاط موقعك من إضافة عمود إلى جدول المستخدمين سيمكنك إنشاء ملف تهجير جديد. النموذج Model ، العرض View و المتحكم Controller يعرف نمط الـ MVC كنمط تصميم Design Pattern، أي أنه أقرب الى أن يكون اسلوب برمجة وليس برمجة في حد ذاتها، ينطلق من مبدأ فصل المهام concerns separation ليقوم بفصل كل من: مكونات النموذج Model: تضم كل المنطق المتعلق بالبيانات الذي يعمل به المستخدم وتفاعلها معها. على سبيل المثال ، استرداد البيانات من قاعدة البيانات ، ومعالجتها وتحديثها. مكونات العرض View: وهي مجموع المكونات التي يتم فيها تمثيل البيانات وعرضها للمستخدم والتفاعل معها. مكونات المتحكم Controller: وحدات التحكم كواجهة بين مكونات النموذج والعرض لمعالجة جميع الطلبات الواردة ، توثيقها وفحصها. ومعالجة البيانات باستخدام مكون النموذج والتفاعل مع طرق العرض لتقديم الخرج النهائي، أي أنها المكون الأساسي في العملية فهي المنسق بين مكونات العرض و النماذج. لارافيل يستعمل هذا النمط في تفصيل اهتماماته أيضا، ويوفر لنا ثلاث أنواع من المكونات تتكامل فيما بينها. التوجيه Routing بشكل عام، التوجيه هو عملية تحديد المسار في شبكة أو بين شبكات متعددة أو عبرها. والتوجيه في لارافيل هو ليس إلا طريقة تسمح لك بتوجيه جميع طلبات التطبيق إلى وحدة التحكم المناسبة لكل طلب.
  4. بجانب إعطاء المعامل قيمة افتراضية في تعريفه ضمن الدالة سيكون عليك إما عدم تمريره في حالة كون ترتيب هذا المعامل الأخير وإلا فسيمكنك تمرير undefined ليتم اعتبار القيمة الافتراضية لهذا المتغير. مثال: const test = (a, b = 0, c) => { return a + b + c } الإستدعاء: const sum = test(5,undefined,10) console.log(sum) // 15 ولكن بشكل عام، يفضل لأسباب مثل المحافظة على نظافة الشيفرة وتجنب أية مشاكل يقترح جعل هاته المعاملات في آخر الترتيب مثلما أشار المدرب محمد، ولكن ان اضطررت لسبب ما لعدم ذلك فسيمكنك العمل بما تم توضيحه حول undefined. وبشكل خاص، ككتابة أفضل وإستعمال أكثر مرونة لدالة تعيد مجموع معاملات، يمكنك عن طريق بعض التتايل قبول عدد لا متناهي من المعاملات عن طريق إستعمال هاته الصيغة: function sum(...nums){} حيث سيمكن إستدعاءها كـ: sum(1,2,4) أو: sum(1,2,68,7,5,654,353,342) تستقبل الدالة sum مصفوفة من المعاملات التي يتم تمريرها عبرها. يمكننا إستعمال الدالة reduce المضمنة في جافاسكربت لإختزال هاته المعاملات في معامل واحد: function sum(...nums){ return nums.reduce((a, b) => a + b); } الناتج: sum(1,2,4) // 7 sum(1,2,68,7,5,654,353,342) // 1432 sum(1,2,68,7,5,654,353,342,63,537,3256,3561,675,647,2362) // 12533 تعرف أكثر على الدالة reduce .
  5. في الغالب، ستحتاج هيكلة هاته البيانات في صفحة HTML ومن ثم تصديرها وطباعتها بصيغة PDF مثلا. كما يمكنك تصدير هاته البيانات بصيغ أخرى مثل SQL و CSV و JSON. نذكر من بين الحزم المستعملة في ذلك في لارافيل: حزمة barryvdh/laravel-dompdf، إذ توفر هاته الحزمة إمكانية تحويل ملف عرض view بسيط إلى ملف PDF و تحميله. كما توفر حزمة datatables إمكانية تقرير وتنظيم وهيكلة هاته البيانات في جداول بيانية والإستفادة من ميزة الأزرار لتوفير إمكانية لتصدير هاته البيانات بأشكال وصيغ مختلفة (PDF ,CSV ,JSON). يتم تضمين الحزمة كالتالي: تضمين ملفات التنسيقات: <link rel="stylesheet" hre="//cdn.datatables.net/1.11.3/css/jquery.dataTables.min.css"> تضمين ملف جافاسكربت الحزمة: <script src="//cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js"></script> تهيئة الحزمة وفق خيارات أزرار التصدير: $(document).ready( function () { $('#myTable').DataTable({ buttons: [ 'copy', 'excel', 'pdf' ] }); } ); لاحظ أن الحزمة تستعمل jQuery وتتطلبها، ولذلك تأكد من تضمين ملف الجافاسكربت الخاص بمكتبة jQuery.
  6. تماثل الكتابة هاته: (n === +n && n !== (n|0)) ? نفس الكتابة: if(n === +n && n !== (n|0)){ } أما عن المعاملين + و | ف: المعامل | في n|0 يستعمل بنفس غرض OR أو || ولكنه يستهدف الأعداد الصحيحة integers، فهاته الكتابة n|0 تعني قم بإعادة 0 في حالة لم يكن العدد n صحيحا integer. المعامل + في n+ فهو ليس إلا إشارة موجبة للتحقق من أن نوع n يماثل نوع n موجبا، فهاته الكتابة n+ تعني موجب n. لنقم بتجزئة الشرط حتى نقوم بفهمه جيدا: if(n === +n && n !== (n|0)) return 'double'; /*//////////////////// لشطر الأول*/ n === +n التحقق من ما ان كانت قيمة n تساوي القيمة الموجبة لـ n. فيما يعني ، أنه ان كان قيمة عددية فسيتم إعادة خطأ وإلا فإن الشرط محقق وصحيح. /*//////////////////// لشطر الثاني*/ n !== (n|0) التحقق من ما ان كان نوع n مساويا لناتج n|0 (يكون الناتج n في حالة كون n عددا صحيحا أو صفرا فيما غير ذلك). إستنتاجات: n مساو لقيمته الموجبة ===> n عدد. (مثال : 5 مساو لـ 5+ و 2.1 أيضا مساو 2.1+) n غير مساو لقيمته الموجبة ===> n ليس عددا. ("hsoub" ليس مساويا لـناتج "hsoub"+ والتي هي NaN). نوع n مساو لناتج n|0 (تذكر: n أو صفر) ===> n عدد صحيح integer. (مثال: 5 مساو لـ ناتج 0|5 والذي هو 5 لأن هذا الأخير صحيح). نوع n غير مساو لناتج n|0 (تذكر: n أو صفر) ===> n عدد عشري double. (مثال: 2.1 غير مساو لناتج 0|2.1 والذي هو 0 لأن هذا الأخير عشري).
  7. كدالة مضمنة في جافاسكربت، يمكنك الإستعانة بالدالة typeof التي تقوم بتحديد نوع البيانات الممرر إليها مباشرة، تقوم بإعادة أحد النتائج: typeof {name:'Hsoub', type:'academy'} => Object typeof new Date() => Date typeof [1,2] => Array typeof "string" => String typeof 1.21 => Number typeof true => Boolean typeof null => null typeof x => undefined أما ولخدمة غرضك بالضبط فستحتاجين بعض التخصيص. يمكنك عمل ذلك وفق المنطق التالي : نقوم بعمل دالة تقوم بـ: تحويل أي سلسلة نصية تمرر إليها إلى رقم Number. في كل ما هو ليس رقم أو معبر به عن رقم يتم إرجاع NaN. في حالة المعامل الممرر رقم : يتم التحقق ما ان كان هذا الرقم double أو integer. في حالة لم يكن المعامل الممرر رقم : يتم التحقق من نوعه عن طريق typeof. مثال عملي: function getType(data){ var n = Number(data); if(! Number.isNaN(n)){ if(n === +n && n !== (n|0)) return 'double'; if(n === +n && n === (n|0)) return 'integer'; } else{ return typeof data; } } getType(1); // integer getType("1"); // integer getType(1.5); // double getType("1.5"); // double getType("sara"); // string getType([2,4,42]); // array كتابة أكثر اختصارا: function getType(data){ var n = Number(data); return (n === +n && n !== (n|0)) ? 'double' : (n === +n && n === (n|0)) ? 'integer' : typeof data; } تعرف أكثر عن الأعداد (numbers) في جافاسكربت.
  8. في هيروكو، أي متغيرات تخص البيئة يجب إضافتها إلى قسم إعداد المتغيرات ليتم العمل بها لأن ملف البيئة env. متجاهل افتراضا من عليها. للإجابة على سؤالك الثاني بشأن تجاهل ملف التهجير يجب أولا فهم طريقة لارافيل والمنطق وراء تعقب ملفات التهجير وتطبيقات الشيفرات داخلها حتى يمكن تحديد المشكل بالضبط. تحمل ملفات التهجير في لارافيل الأسماء على النحو التالي: 2021_12_03_100000_create_users_table يتم تقطيع سلسلة الاسم النصية إلى 7 أجزاء كالتالي: 2021 12 03 100000 create users table يتم اقتطاع الأربع أجزاء الأولى الممثلة بتاريخ إنشاء ملف التهجير ليتبقى: create users table يتم إعادة تشكيل السلسة النصية و كتابة الأحرف الأولى كأحرف كبيرة كالتالي: CreateUsersTable يكون هذا هو اسم الصنف الموجود داخل ملف التهجير، ولارافيل تقوم بكل هذا عند إنشاء ملف تهجير عن طريق الأمر: php artisan make:migration create_users_table أو عند إنشاء ملف نموذج: php artisan make:model -m تحدث أحيانا مشكلة تجاهل ملف التهجير هاته عند إنشاء الملفات يدويا أو تعديل أسماءها لاحقا، ويكون ذلك عن الإخلال بترتيب أو خطأ بخصوص توافق اسم ملف التهجير مع الصنف المحتو فيه مثل: وضع تاريخ الإنشاء آخرا، وهذا في الأرجح ما حصل معك. وبالتالي يجب دوما عند إنشاء ملفات التهجير يدويا مراعاة القواعد التي يستعملها لارافيل في استخراج الأصناف المستهدفة من الملفات. [year]_[month]_[day]_[HHMMSS]_[action]_[tableName] حل آخر يقدمه لارافيل، هو في إنشاء ملفات التهجير المجهولة التي لا يتطلب اسم ملفها مراعاة لقواعد التسمية في لارافيل. إذ يمكنك تسمية هذا الملف وفق ما تشاء بشرط أن يحتوي التعريف التالي داخله: <?php use Illuminate\Database\Migrations\Migration; return new class extends Migration { // }; تعرف أكثر عن تهجير قواعد البيانات (migrations) على Laravel.
  9. لا يجب عليك النظر إلى ملفات المكتبة إلا كملفات css أو جافاسكربت عادية، وبالتالي فإنه يمكنك الإعتماد على الأنترنت في تحميل ملفات أي المكتبة أولا ومن ثم سيمكن تضمينها كأي ملف css أو جافاسكربت آخر. على سببيل المثال: قم بتحميل ملف bootstrap.min.css. قم بإنشاء مجلد ملفات داخل public وليكن libs وضع به ملفات المكتبة. يمكنك الآن بأي ملف عرض تضمينه كالتالي: <link rel="stylesheet" href="{{ asset('libs/bootstrap.min.css') }}" وبمثل الطريقة تضمين ملف الجافاسكربت وهكذا .. في حالة توفر المكتبة لمدير الحزم npm يفضل تثبيتها وفقه مثلما أشار المدرب صلاح الدين.
  10. بحسب ما يظهر من الشيفرة، يحتمل أن يكون التطبيق مبني على الـ Vue أو الـ React أو الـ Angular فالمطور هنا يقوم بعمل Rendering لمكون بعد تحميل موارد الصفحة، هذا المكون هو العنصر app-root . حيث أن ملف الجافاسكربت المرفق يقوم بضبط الصفحة بناءا عليه بعد تحميل مواردها، وفي حالة طلب تفحص لمصدر الصفحة لن يتم إظهار إلا وسم المكون مرفقا بملف الجافاسكربت، فيظهر وكأن التطبيق قد تم إخفاء مصدره. لأن عملية إخفاء مصدر صفحة عن المتصفح مستحيلة عمليا ولن يمكن ذلك بشتى الطرق، ففكرة الويب المفتوح هي في مشاركة البيانات، ومادام المتصفح يقوم بعرض الصفحة بشكل طبيعي فهذا يعني أن له وصولا عليها. أي باختصار: مصدر الصفحة ليس مخفيا، وإنما يتم تحميل مكونات الصفحة وعناصرها بعد تحميل موارد هاته الصفحة. وعلى نحو خاص جدا، هاته الفكرة شائعة في تطبيقات الويب التقدمية وتطبيقات الصفحة الواحدة SPA's ولا تقتصر على الـ Vue أو React أو Angluar. بل يمكن حتى مماثلة نفس الفكرة عن طريق الجافاسكربت أو الجيكويري بشكل بسيط. مثال عن تطبيق Vue. مثال عن تطبيق React. مثال 2 عن تطبيق React. مثال عن تطبيق Angular. التطبيق لا يفتح معي أيضا، ولكن يمكن التخمين أن هذا التطبيق تطبيق Angular، ﻷن مطوري هذا الأخير يستعملون عادة اسم أو مصطلح app-root كإسم المكون الجذر الذي يتم فيه عمل Rendering لكامل المكونات الفرعية الأخرى لتطبيق الـ angular. (قد تجد البعض الآخر يسمونه wt-root أيضا). وبالتالي فإن ذات الفكرة تنطبق عليه أيضا, فهو ليس إخفاءا وإنما تحميل لمكونات الصفحة بعد مواردها، وطلب تفحص مصدر صفحة ما ليس إلا تفحصًا لمصدرها قبل تحميل أي مورد.
  11. يمكنك مراجعة هاته الإجابة للإستفادة من ذلك:
  12. هلاّ قمت بدل ذلك بتطبيق الحل المقترح مباشرة على النسخة الغير معدلة؟ لا بأس بالإشارة إلى أي مشكلة تواجهينها في أي خطوة
  13. الأمر يلخص في ثلاث خطوات بسيطة: يفضل المحاولة أولا، ولا بأس بمشاركة الملفات لاحقا.
  14. تخبر التعليمات أنه بعد وضع ملف جافاسكربت البرنامج: <script type="text/javascript"> var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"}; </script> <script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script> يجب عليك إستدعاء أحد الدوال المتضمنة في الملفات، حيث تم إرفاق بعض الأمثلة الشائعة للإستعمال والإستدعاء: <button onclick="CPABuildLock()">Click me!</button> الآن وبعد تضمينها على نحو صحيح، سيمكنك فتح نافذة منبثقة تحتوي على رابط الأفلييت الخاص بك. لخدمة هذا الغرض، وإستبدال الروابط المخزنة في هاته الأزرار : يقترح عمل الفكرة التالية: بملف config.php قومي بإضافة المتغيرين التاليين قبل علامة الإغلاق <? : $cpa_script = '<script type="text/javascript"> var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"}; </script> <script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script>'; $event_launcher = 'onclick="CPABuildLock()"'; ?> ثم بملف movie.php قومي بإستبدال هذا الجزء من كل سطر من التالي: <a href="<?php echo $cpa_link ?>" target="_blank" class="btn btndown btn-lg btn-block mb-3 mt-3"> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ بـ : role="button" <?php echo $event_launcher; ?> لتصبح كامل العناصر المشابهة كالتالي: <a role="button" <?php echo $event_launcher; ?> target="_blank" class="btn btndown btn-lg btn-block mb-3 mt-3"><i class="fas fa-download"></i> SD Quality <b class="langflag"> - EN </b></a> تأكدي من تعميم هذا على باقي العناصر. الآن وكخطوة أخيرة، قومي بفتح ملف header.php الكائن داخل مجلد inc ، وقومي بإضافة هذا السطر قبل وسم إغلاق head كالتالي: <link href="css/main.css" rel="stylesheet"> <?php echo $cpa_script; ?> </head> تأكدي من حفظ كامل هاته الملفات، ثم قومي بتحديث الصفحة على المتصفح وجربي الضغط على أاي من الأزرار الستة و ستلاحظين تطبيق الفكرة. ففي الحقيقة، لا توفر كامل برامج التسويق بالعمولة روابط جاهزة لوضعها والإستفادة منها مباشرة، فقد تحتاج بعضها تهيئة أو تخصيصا على أزرار معينة.
  15. هل هذا مثال عن النافذة المنبثة التي تودين إظهارها؟ حيث يتضمن العنصر "أرسل رسالة الآن لتحميل لعبة غير محدودة" رابط أفلييت بالفعل! إذ ان هذا نتيجة تطبيق التعليمات الموضحة.
  16. العملية غير ممكنة أصلا، فمطور السكربت قام بتخصيص المتغير cpa_link لتخزين رابط الأفلييت وليس لتخزين سكربت. ﻷنه يقوم بطباعته لاحقا في خاصية href لرابط تشعبي a ، وهو مكان لا يصلح لطباعة وسمي سكربت. قد كنت افترضت أن السكربت الذي تحاولين لصقه مقدم من برنامج تسويق بعمولة ومرفق بتعليمات عن كيفية وضع هذا السكربت، وعن ما هي الأصناف التي يقوم بوضع روابط الأفلييت عليها و غيرها من التفاصيل المهمة للإشتراك في أي برنامج تسويق بالعمولة.
  17. مبدئيا، لا يمكنك وضع سكربت بدل الرابط هكذا وفقط. ومثلما تم الإشارة سابقا : هل تم إعطاءك رابط cpa أم سكربت فقط؟ أرجوا أيضا إرفاق توثيق برنامج التسويق أو يكفي إرفاق رابط الموقع، لأن طريقة عمل السكربت غير واضحة أصلا. يبدوا أنه يحتاج إعدادا ولا يكفيه لصق السكربت
  18. لمساعدتك بشكل أفضل، يمكنك إرفاقه بشكل كامل وسيتم إخفاءه أو يمكنك حذفه بعد الإطلاع عليه. كما يفضل إرفاق الموقع الذي يقدم برنامج التسويق بالعمولة، قد يمكن الإستفادة من توثيق البرنامج
  19. لا مشكلة إن كانت هاته الصفحة مستدعاة في كامل صفحات موقعك، يمكنك أيضا إضافة هذا السطر في ملف config.php : <?php // ================================================================= // // ================================================================= // // =============== By Mohammed Cha : Re-skinning GRP =============== // // ================================================================= // // ================================================================= // $uri = 'https://www.sitedialek.com'; $wname = 'smia dial site dialek'; $descrip = 'description dial site dialek'; $cpa_link = '<script type="text/javascript"> var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"}; </script> <script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script>'; $ImdbApi = 'a913ee104db6b795d20852a9ed989036'; $comingsoon = '1'; // 1 to display coming soon or 0 to hide $related = '1'; // 1 to display related movies or 0 to hide /////////////// إضافة السكربت $cpa_script = '<script type="text/javascript">var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"};</script><script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script>'; echo $cpa_script; ?> قومي بهذا وأخبريني بالنتيجة
  20. أظن أن الفكرة هي في مجرد إرفاق شيفرة الجافاسكربت في عنصر head لكل صفحات موقعك فالسكريبت المقدم من البرنامج سيتولى كل هاته الأمور، هل حاولت طباعتها كالتالي: <?php $cpa_script = '<script type="text/javascript">var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"};</script><script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script>'; echo $cpa_script; ?> وذلك بين وسمي head في صفحة ما من موقعك: <head> <?php $cpa_script = '<script type="text/javascript">var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"};</script><script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script>'; echo $cpa_script; ?>
  21. هل تحاولين قول أن لديك موقع يقوم بعرض تريلرات أفلام وعند طلب المشاهدة أو التحميل يتم توجيه المستخدم إلى رابط الأفلييت الخاص بك؟
  22. لا توجد أي مشكلة بالإستبدال حرفيا، لاحظي: <?php // ================================================================= // // ================================================================= // // =============== By Mohammed Cha : Re-skinning GRP =============== // // ================================================================= // // ================================================================= // $uri = 'https://www.sitedialek.com'; $wname = 'smia dial site dialek'; $descrip = 'description dial site dialek'; $cpa_link = '<script type="text/javascript"> var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"}; </script> <script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script>'; $ImdbApi = 'a913ee104db6b795d20852a9ed989036'; $comingsoon = '1'; // 1 to display coming soon or 0 to hide $related = '1'; // 1 to display related movies or 0 to hide ولو قمت بطباعة قيمة المتغير cpa_link عن طريق echo فسيتم طباعته بشكل عادي، ولن يتم إظهار أية أخطاء. ولكن أفهم من الشيفرة، أنك تحاولين إرفاق الرابط الخاص بك في برنامج تسويق بالعمولة في شيفرة PHP. وتحاولين في ذلك وضع سكريبت الجافاسكربت الذي تم إعطاءه لك مكان الرابط المرفقة بالشيفرة المثال ، ثم ستقومين بلصق هاته الشيفرة في صفحات موقع معينة. إن كان هذا هو غرضك من وضع شيفرة الجافاسكربت بداخل متغير PHP فلا أظن أن هذا هو الطريق الصحيح لإستعمال ذلك. قد حاولت البحث عن أية توثيقات لبرامج تسويق بالعمولة في الموقع المرفق: https://sitedialek.com/ ، ولكن لا أجد أيا مما يتعلق بذلك. هل لم أفهم ما تحاولين القيام به جيدا؟
  23. يمكنك إستعمال أي تخطيط جدول في HTML لعمل الفكرة، على سبيل المثال: <table> <thead> <td>خلية ترويسة للجدول </td> <td>خلية ترويسة للجدول </td> <td>خلية ترويسة للجدول </td> <td>خلية ترويسة للجدول </td> </thead> <tbody> <tr> <td>خلية جسم للصف الأول للجدول </td> <td>خلية جسم للصف الأول للجدول </td> <td>خلية جسم للصف الأول للجدول </td> <td>خلية جسم للصف الأول للجدول </td> </tr> <tr> <td>خلية جسم للصف الثاني للجدول </td> <td>خلية جسم للصف الثاني للجدول </td> <td>خلية جسم للصف الثاني للجدول </td> <td>خلية جسم للصف الثاني للجدول </td> </tr> </tbody> </table> النتيجة : وهذا كمثال يسهل من عليه تطبيق نفس الفكرة على برنامج توزيع المياه. خطوات عملية: الجدول يحوي ترويسة تمتلك الخليتين : المنطقة ، الأحياء. الجدول يحوي جسم به 11 صف، حيث أن الخلية الأولى من كل صف تحوي اسم المنطقة، والخلية الثانية مجموع الأحياء والمناطق المرافقة. النتيجة المطلوبة: على أن هذا ليس إلزاما، فلغة HTML ليست إلا لغة تخطيطية يمكنك عن طريق بضعة وسوم أو عناصر هيكلة الصفحة التي تريدينها على أي نحو تميزينه. قد تحتاجين أيضا التعرف على الجداول في HTML.
  24. أظن أنك الأدرى بما ستحتاج الإستغناء عليه أو لا، ولكن بشكل عام لا أظن أنه هنالك حاجة من أسطر التحقق: if (filter_var($ip, FILTER_VALIDATE_IP) && in_array($purpose, $support)) { فالواجهة تقوم بعمل ذلك بدلا عنك، وفي حالة عدم صلاحية هذا العنوان فلن يتم إعادة أي رد. خصوصا وأنك لا تقوم بخزن هذا العنوان إلا بعد إستلام الرد. ولا من هذا الشرط أيضا: if (@strlen(trim($ipdat->geoplugin_countryCode)) == 2) { فكامل الcountry codes مميزة بمحرفين ولا حاجة للتحقق من ذلك. أما باقي الشيفرة فجيدة.
×
×
  • أضف...