-
المساهمات
2852 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
38
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Hassan Hedr
-
لاحظ اللاحقة min.js في نهاية الملف، وهي تدل أن الشيفرة داخل هذا الملف هي نتيجة عملية تقليص وتعمية لشيفرة جافاسكربت أخرى أصلية، يمكنك تجميل تنسيق الشيفرة مجددًا أي إلغاء مفعول التقليص عبر أدوات مخصصة لذلك مثل موقع beautifier.io فقط انسخ تلك الشيفرة إلى الحقل المخصص لها ضمن الموقع ونفذ عملية التجميل، وانسخ النتيجة مجددًا إلى الملف الخاص بك وعدل ما تريد، لكن ستلاحظ أن أسماء المتغيرات والتوابع لا معنى لها ويصعب فهم الشيفرة، هذا بسبب عملية التعمية التي مرت بها تلك الشيفرة لتقليصها إلى أكبر درجة ممكنة، وللأسف لا يمكن تعديل ذلك سوى يدويًا عبر إعادة تسمية المتغيرات التي تحتاجها وقد تقع في خطأ بذلك وينصح بتجنب تلك العملية، يمكنك الاستفادة من قراءة المقال التالي للتعرف على فائدة عملية التصغير:
- 1 جواب
-
- 1
-
-
لا يمكن تعريف محرف فارغ في ++C، بما أن الغرض من عملي الإسناد تلك هو حذف محرف في المكان الحالي، فيمكنك استخدام التابع erase لمسح محرف ما بالطريق التالية: for (int i = 0; i <= 4; i++) { sss.erase(i, 1); .. }
-
الهدف من إتاحة وصولك إلى أول مسار من كل دورة هو اطلاعك عليها في حال رغبت لاحقًا بالاشتراك في دورة أخرى لتأخذ فكرة عن تلك الدورة، الامتحان النهائي يكون ضمن تخصص الدورة التي اشتركت بها فقط، أي دورة علوم الحاسوب، ولا علاقة لباقي الدورات في ذلك، إذا رغبت اتطلع على دروسها عند الانتهاء من دورتك الحالية قد ترغب في الاشتراك بإحداها لاحقًا لتعلم اختصاص جديد
- 1 جواب
-
- 1
-
-
يبدو أنه لا يوجد أي من الحقول المستخرجة توافق الشروط ما ينتج عنه استعلام خاطئ، تأكد من البيانات المرسلة مع الطلب ويمكنك إضافة فحص لذلك قبل تحضير الاستعلام لتجنب الخطأ كالتالي: $validated = []; if($name !== null) $validated['name'] = $name; if($ExtraData !== null) $validated['ExtraData'] = $ExtraData; if($IDColors !== null) $validated['IDColors'] = $IDColors; if(empty($validated)){ // لم ترسل أي حقول throw new Error('No fields received, please send one of `name`, `ExtraData`, `IDColors` fields.'); } وفي حال واجهت ذلك الخطأ حاول طباعة محتوى POST_$ وتأكد من البيانات التي تصل إلى الخادم
-
عندما يعيد التابع prepare قيمة منطقية bool فهذا يعني إما خطأ في الاتصال بقاعدة البيانات أو خطأ في الاستعلام نفسه، حاول إضافة السطر التالي في بداية الملف : mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); والآن بدلًا من إعادة قيمة منطقية عند حدوث خطأ، سيتم رمي الخطأ وفيه رسالة توضح المشكلة، حاول تنفيذ العملية مجددًا وعاين رسالة الخطأ التي ستظهر والتي ستحدد لك المشكلة
- 9 اجابة
-
- 1
-
-
يوجد خطأ في نص الاستعلام يجب وجود فراغ قبل اسم الجدول عدل النص ليصبح كالتالي وحاول مجددًا: $sql = "UPDATE Table User SET {$fields} WHERE id=?"; ^
- 9 اجابة
-
- 1
-
-
يمكنك بناء نص استعلام تحديث البيانات ديناميكيًا، حيث تتحقق من كل حقل إذا طابق الشروط التي تريدها تضيف له تعليمة تحديث، ويمكنك تمرير الحقول المقبولة ضمن مصفوفة كمعامل أول للتابع execute حتى يتم إدراجها ضمن نص الاستعلام كالتالي: <?php $id =$_POST['id']; $name =$_POST['name']; $ExtraData = $_POST['ExtraData']; $IDColors = $_POST['IDColors']; $validated = []; if($name !== null) $validated['name'] = $name; if($ExtraData !== null) $validated['ExtraData'] = $ExtraData; if($IDColors !== null) $validated['IDColors'] = $IDColors; $fields = implode(',', array_map(fn($field) => $field.'=?', array_keys($validated))); $sql = "UPDATE TableUser SET {$fields} WHERE id=?"; $stmt = $con->prepare($sql); $values = array_values($validated); $values[] = $id $stmt->execute($values);
- 9 اجابة
-
- 1
-
-
لا يوجد تسعيرة موحدة الأمر يعتمد على طرفي الاتفاق، صاحب المشروع والمطور أو الجهة المطورة، ولكل منهما عوامل عدة في التسعير، بحسب مثلًا التقنيات المستخدمة والجودة المطلوبة والجهد والوقت الذي يحتاجهما إتمام هذا العمل، وحتى العرض والطلب والقيمة التي تقدمها لصاحب المشروع، أنصحك بقراءة المقال التالي فهو يتطرق للكثير من جوانب وعوامل التسعير:
-
لا يمكن اختيار الأفضل كل من لغة PHP لها مجالها وطلبها في السوق، ولغة جافاسكربت أيضًا لها مجالاتها وطلبها في عدة نواحي، بما أن لديك خبرة في رياكت وبالتالي خبرة بجافاسكربت فسيكون من الأسهل لك الاشتراك بدورة تطوير التطبيقات باستخدام جافاسكربت، أما إذا كنت تنوي تعلم لغة جديدة أو العمل ضمن إطار عمل محدد مثل لارافل أو ووردبرس فاختر دورة تطوير تطبيقات الويب باستخدام PHP، أنصحك بقراءة المقال التالي ففيه شرح مفصل عن كل المجالات في عالم تطوير الويب واللغات الممكنة وشرح أيضًا عن الدورات التي تقدمها الأكاديمية في ذلك السياق:
-
قد يكون توقف والرسالة الظاهرة قديمة، تأكدي من تشغيله بالضغط باليمين على ملف HTML الذي تريدين معاينته واختيار "Open with Live Server"
-
يمكن بناء أي برنامج بأي لغة برمجة تقريبًا، والأمر في الاختيار بين اللغات يعتمد على عدة عوامل، أولها شهرة لغة البرمجة ففي حالتك كل من لغتي ++C و بايثون مشهورتين، الأخرى مزايا لغة البرمجة ضمن نطاق المشكلة التي نحاول حلها، وجوابًا على سؤالك التالي: في تطوير نظم الذكاء الاصطناعي إذا كنت تريد الوصول لنموذج ما والتطوير عليه فلغة بايثون هل لغة عالية المستوى وستساعدك في عملية التطوير كثيرًا، بينما إذا كان لديك نموذج سابق أو محدد وتريد تضمينه ورفع كفاءته وتحسين أداءه على أخفض المستويات فلغة ++C تعتبر أفضل من هذه الناحية لما تتيحه من تحكم في العمليات ضمن الذاكرة والمعالج، ولهذا السبب يختار مطورو الألعاب اللغات منخفضة المستوى لأن الهدف الأساسي رفع الأداء لتلك الألعاب، بسبب العامل الثالث هو توفر المكتبات التي تساعد في حل المشكلة، حيث يتوفر في بايثون الكثير من المكتبات المخصصة لذلك والتي تقريبًا تغطي كل ما ستحتاجه في هذا المجال، وهو سبب اختيار المطورين للعمل عليها لتطوير أنظمة الذكاء الاصطناعي يمكنك التعرف على الفرق بين اللغتين بالتعرف على أساسياتهما والمقارنة بينهما، ويمكنك الاستفادة من السلسلات التالية لتعلم اللغتين: وللتعرف على مجال الذكاء الاصطناعي أنصحك بقراءة كتاب "مدخل إلى الذكاء الاصطناعي":
- 3 اجابة
-
- 1
-
-
إذا كنت تقصد بالبرنامج تطبيق للجوال فكما ذكرت الأمر يعتمد على عدة عوامل للتسعير من قبل المطور الذي سيعمل على المشروع، لكن إذا كنت تقصد الكلف الأخرى غير كلفة التطوير فالتطبيقات لا تحتاج لتكاليف خارجية أخرى سوى كلفة استضافتها ضمن متجر التطبيقات، فمثلًا متجر جوجل يحتاج لفتح حساب مطور ويكلف 25 دولار تدفع لمرة واحدة، ويمكن بعدها رفع التطبيق إليه، بينما متجر تطبيقات IOS يكلف حساب المطور 99 دولار سنويًا وستتمكن من رفع تطبيقاتك ونشرها، لكن إذا كان تطبيقك يحتاج للتواصل مع نظام خارجي وهو جزء من المشروع فستضاف كلفة استضافة ذلك المشروع كخادم خلفي Backend مثلًا إلى كلفة التطبيق
- 1 جواب
-
- 2
-
-
هذه رسالة معلومات تدل على تشغيل خادم المعاينة بنجاح وأنه يستمع إلى المنفذ رقم 5500 على جهازك، أي يمكنك الوصول لصفحة المعاينة عن طريق الرابط التالي localhost:5500، ويمكنك إلغاء هذه الرسالة من الظهور مجددًا بالضغط على الزر الأزرق "Don't show again" ولن تظهر الرسالة مرة أخرى.
-
يمكن الاستفادة من extends@ لإنشاء قوالب الصفحات بلغة blade، حيث ننشئ ملف عرض قالب يحوي بداخله عدة أقسام بأسماء معينة باستخدام yield@، ولاحقًا يمكن استخدام ملف القالب هذا لإنشاء عدة ملفات عرض، حيث يسمح ذلك بتقليل التكرار لهيكلية بيانات الصفحات المتشابهة وتوحيدها، فمثلًا يمكن إنشاء ملف قالب أساسي لجميع الصفحات view/layouts/main.blade.php كالتالي: <html> <head> <title>@yield('header')</title> </head> <body> @yield('content') </body> </html> ويمكن استخدامه ضمن أي صفحة كالتالي: @extends('layouts.main') @section('title') صفحة فرعية @endsection @section('content') <h1>أهلًا بكم</h1> @endsection وسينتج عن تفسير الصفحة السابقة محتوى HTML التالي: <html> <head> <title>الصفحة الرئيسية</title> </head> <body> <h1>أهلًا بكم</h1> </body> </html> أما include@ فهي تشبه في عملة include في PHP، حيث تقتصر مهمتها على جلب محتوى ملف العرض المذكور وطباعته مكانها، يفيد ذلك في إنشاء مكونات وإعادة استخدامها في أكثر من مكان دون الحاجة لتكرار كتابة هيكليتها في كل مرة، مثلًا إذا كان لدينا المكون views/components/nav.blade.php كالتالي: <nav>...</nav> وفي أي مكان ضمن أي ملف عرض آخر استخدمنا المكون السابق باستخدام include@ كالتالي: @include('components.nav') <div>..</div> فبعد تفسير الصفحة السابقة سينتج ما يلي: <nav>..</nav> <div>..</div>
-
راجع صفحة اكتب معنا ففيها شرح عن طريقة تقدمك لكتابة أو ترجمة المقالات لصالح أكاديمية حسوب، حيث تذكر أن الأكاديمية تنشر مشاريع للكتابة والترجمة على منصة مستقل يمكنك متابعة الأعمال المنشورة هناك والتقديم على ما يناسبك منها، أما في حال كان لديك محتوى جاهز وتريد نشره تواصل مع مركز المساعدة واشرح لهم بالتفصيل عما ترغب بتقديمه وسيخبروك عن امكانية ذلك
- 1 جواب
-
- 1
-
-
تدل الخاصية parentElement على العنصر الحاوي للعنصر الذي يملك هذه الخاصية مثال: <div> <-- العنصر الأب <p id="target">..</p> </div> وهو مفيد في حال لدينا مرجع للعنصر الابن وأردنا التعامل مع العنصر الحاوي له كالتالي: const paragraph = document.getElementById('target') paragraph.parentElement // العنصر الأب بحسب التطبيق الذي نعمل عليه والمشكلة التي نحاول تضمينها وحلها قد يكون الوصول لذلك العنصر عن طريق العنصر الابن أسهل طريقة، وإلا يمكن استخدام إحدى الطرق التي ذكرتيها الأمر يعود لك ولطبيعة التطبيق كالتالي: <div id="target"> <p>..</p> </div> <script> const div = document.getElementById('target') // العنصر مباشرةً </script>
-
يمكنك بطرف الخادم مباشرة تجميع وتنسيق البيانات بالشكل الذي تحتاجه الواجهة لديك، ابدأ بالاستعلام عن البيانات من الجدول كما تفعل حاليًا: $getDATA = $conn->query("SELECT langName, langVar, translation FROM lang "); وخزن القيم من ذلك الاستعلام ضمن مصفوفة مفاتيحها هي قيمة langVar وقيمها هي مصفوفة الترجمات المتوفرة للمصطلح كالتالي: $byLangVar = []; foreach($getDATA as $data) { $byLangVar[$data['langVar']][] = $data; } ستحصل على بنية بيانات مشابهة لما يلي: [ 'ad_cmrcaldsc' => [ ['langVar' => 'ad_cmrcaldsc', 'langName' => 'EN', 'translation' => '..'], ['langVar' => 'ad_cmrcaldsc', 'langName' => 'AR', 'translation' => '..'] ], .. ] يمكنك الآن المرور على هذه المصفوفة بدلًا من بيانات الاستعلام السابقة، ولكل مفتاح تطبع سطرًا واحدًا يعبر عن الترجمات المتعددة لهذا المتغير كالتالي: foreach($byLangVar as $langVar => $translations): ?> <tr> <td><?php echo $langVar ?></td> <?php foreach($translations as $translation): ?> <td><?php echo $translation['translation'] ?></td> <td><?php echo $translation['translation'] ?></td> <?php endforeach ?> </tr> <?php endforeach ?>
- 6 اجابة
-
- 2
-
-
-
لغة البرمجة هي لغة بينك وبين جهاز الحاسوب، تعبر بها عما تريده أن يفعل، سواء بتنفيذ بعض الخطوات، أو التعبير عن ذلك بلغة قريبة من اللغة المحكية، ويوجد الكثير من لغات البرمجة، بدءًا من اللغات منخفضة المستوى مثل C و ++C وصولًا إلى عالية المستوى مثل Python و Java و PHP وغيرها الكثير، وستجد اللغات العالية المستوى أسهل لتعلم البرمجة، يمكنك أن تبدأ بإحدى تلك اللغات، وليس من المهم عدد لغات البرمجة التي تعرفها بل ما يهم هو غرضك الأساسي منها، هل تريد تطوير مواقع إلكتروني أم تطبيقات جوال أم سطح مكتب أم فقط تريد تعلم البرمجة، أنصحك بقراءة المقالين التاليين فهما يشرحان ما هي البرمجة وكيف تبدأ وكيف تختار أول لغة البرمجة لتتعلمها، وما هي مجالات كل لغة برمجة:
- 1 جواب
-
- 1
-
-
يمكنك التواصل مع مركز المساعدة وشرح مشكلتك وما تريد معرفته ووسائل الدفع المتاحة لديك، وسيساعدونك في عملية الشراء والتوجيه لكي تشترك بالدورة، فقط أرسل رسالة توضح بها ما تريد بالتفصيل وسيتم التواصل معك بأقرب وقت، بالتوفيق لك
- 2 اجابة
-
- 1
-
-
تأكد إذًا من وجود الدالة update ضمن المتحكم ClassificationController كالتالي: class ClassificationController extends Controller { .. public function update($id) { .. } }
- 4 اجابة
-
- 1
-
-
المشكلة في حالة عدم وجود استعلام ضمن search_query أن السطر ضمن else يجلب كل البيانات ورسالة الخطأ تخبرك بعدم وجود الدالة orderBy ضمن مجموعة المنتجات التي تم جلبها، يمكنك حل المشكلة بإنشاء استعلام query بداية ثم تطبيق الشروط عليه فقط في حال كان هناك داعٍ لذلك، وبعدها وفقط في آخر سطر تنفذ الاستعلام باستخدام get لتكون الشيفرة كما يلي: $query = Product::query(); if ($search_query) { $query->where('name', 'LIKE', "%$search_query%"); } $products = $query->orderBy('created_at', 'desc')->with('tags')->get();
-
يوجد حوالي 48 كلمة محجوزة في جافاسكربت، والعدد سيختلف من إصدار لآخر بحسب المزايا التي يدعمها، بعضها لتعريف الجمل الشرطية، وبعضها للحلقات التكرارية بأنواعها، وأخرى لتعريف الأصناف والواجهات مع ميزاتها، وأخرى تعبر عن قيم كالقيم المنطقية و null، وأخرى للتعامل مع الوحدات البرمجية من تصدير واستيراد، التالي قائمة بتلك الكلمات: await break case catch class const continue debugger default delete do else enum export extends false finally for function if import in instanceof let new null return super switch this throw true try typeof var void while with arguments eval implements interface package private protected public static yield
- 1 جواب
-
- 1
-