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

سمير عبود

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

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

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

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

    34

كل منشورات العضو سمير عبود

  1. تُخبرك رسالة الخطأ أن العمود joborederdata_id غير موجود في الجدول المطلوب الذي تحاول إضافة صف جديد فيه. تأكد من تواجد ذلك العمود، و قم بإضافته إذا لم تجده.
  2. لا أدري ما السبب، لم أتمكن من تحديده إنطلاقاً من الكود، رُبما إختلاف إصدار PHP بين البيئتين أدى لظهور هذا الخطأ. جرب إستخدام نفس الإصدار الذي تستخدمه محلياً. على كل الأحوال يُفضل إستخدام PDO بدل mysqli و إتباع نهج البرمجة كائنية التوجه.
  3. شرح المشكلة: عند إستدعاء التابع: bind_param $stmt->bind_param("sssssssssssss", $name,$defaultLang,$section,$workTitle,$hiring,$permission,$imageAdds,$username,$password,$email,$created_at,$created_at,$created_by); يجب أن يُستدعى إنطلاقاً من كائن من النوع mysqli_stmt لكن حالياً يتم إستدعاؤه من خلال متغير يحمل قيمة بوليانية false. أي أن stmt ليس من النوع mysqli_stmt و إنما bool ما يعني أن ما يُعيده السطر: $conn->prepare( "INSERT INTO users(first_name,lang, section, title, hiring, permission, profile_image, username, password, email,created_at,verified_at,created_by) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) "); هو false حيث أن تهيئة الإستعلام فشلت لسبب ما.
  4. قد يتأخر الرد أحياناً، هل لازلت لا تستطيع الوصول إلى دروس الدورة؟ إذا كان الأمر كذلك سأرفع المشكلة للمشرفين كي تُحل في أقرب وقت.
  5. هل يُمكنك الوصول لدروس الدورة التي اشتركت بها ؟ يُمكنك الوصول لصفحة دوراتي من خلال الرابط التالي: دوراتي من الممكن أنه لم يتم ربط حسابك بالدورة بعد لذلك في هذه الحالة يُمكنك الإنتظار قليلاً أو مراسلة الدعم الفني للإستفسار عن الأمر: مركز المساعدة
  6. إن السطر: imagettftext($image, 25, 0, 25, 110, $color, 'font.ttf', 'PHP:hypertext processor'); معناه أنني اريد كتابة النص "PHP:hypertext processor" على الصورة بحجم خط 25 باللون color و الإحداثيات x و y، و نوع الخط سيكون font.ttf. و هذا هو وصف الدالة في التوثيق الرسمي: imagettftext( GdImage $image, float $size, float $angle, int $x, int $y, int $color, string $font_filename, string $text, array $options = [] ): array|false font_filename يُشير إلى مسار ملف الخط الذي تريد أن تكتب به على الصورة. هل لديك بجانب السكربت ملف خط بالإسم font.ttf أم لا؟ يجب أن يتواجد ملف خط حتى تعمل الدالة، يُمكنك تحميل ملف خط من خلال موقع google fonts و إستخراج ملف الخط الذي تريد إستخدامه و وضع مساره ضمن إستدعاء الدالة، يُمكنك مثلاً إستخدام ملف الخط التالي: Roboto-Regular.ttf و وضعه بجانب السكربت ثم تمرير الإسم للدالة بالشكل: imagettftext($image, 25, 0, 25, 110, $color, 'Roboto-Regular.ttf', 'PHP:hypertext processor');
  7. لاحظ رسالة الخطأ: تُخبرك أنه لم يجد الملف image.jpgaa و رسالة الخطأ: تُخبرك أن المعامل الأول للدالة imagecolorat يجب أن يكون من النوع GdImage بينما استقبلت معامل من النوع bool. ما يعني أن المتغير image لا يحمل قيمة صحيحة و ذلك بسبب السطر: $image = imagecreatefromjpeg('image.jpg'); تأكد أنك تكتبه بنفس الشكل لأنه من خلال التحذير يبدو أنه بالشكل التالي: $image = imagecreatefromjpeg('image.jpgaa'); تأكد من الحفظ، رُبما غيرت و لم تحفظ الملف، أيضاً تأكد من أن الملف image.jpg يتواجد في نفس المستوى مع ملف السكربت الذي تقوم بتنفيذه. حسب الشيفرات التي أرفقتها لا يوجد خطأ في الشيفرة، و إنما الخطأ يمكن أن يكون في الحفظ أو مسار ملف الصورة.
  8. لا أدري إن كان يتوفر كوبون خصم في هذه الفترة، لمعرفة ذلك يُمكنك التواصل مع مركز المساعدة هم لديهم مثل هذه المعلومات، و سيجيبون على أسئلتك بصدر رحب، أما نحن هنا فمهمتنا هي الإجابة على الأسئلة البرمجية و تقديم المساعدة. بالتوفيق.
  9. إن كنت تحتاج إلى مستقل للعمل على مشروع مُعين بخصائص و متطلبات معينة يُمكنك التوجه لموقع مستقل و طرح مشروعك هناك و ستتلقى عددًا من العروض من طرف المستقلين يُمكنك دراسة تلك العروض و التواصل مع أصحابها و إختيار العرض الذي يُناسبك. يوجد أيضاً متجر بيكاليكا فهو تابع لحسوب و هو عبارة عن متجر أين يقوم المبرمجين و المصممين بطرح منتجاتهم الرقمية بأسعار معينة فيمكنك البحث عن غايتك هناك، لا أدري إن كنت ستجد برنامج لما تبحث عنه لأن المتجر حديث الإطلاق على ما أعتقد.
  10. يجب توضيح الخطأ أو رسالة الخطأ حتى يتمكن المدربون من الإجابة، أية تفاصيل مفيدة جداً للمدرب الذي سيجيب على سؤالك و إعطائك حلول للمشكلة. إن إستخدام الدوال imagecreatetruecolor، imagepng و غيرها لن يؤدي الغرض و سيُعطي خطأ إذا لم تقم بتفعيل الوحدة GD في PHP لأن هذه الدوال تابعة لها. تأكد أن GD extension مُفعلة لديك من خلال تنفيذ الأمر التالي في سطر الأوامر لديك: php -m سيُظهر لك الأمر السابق كل الوحدات المُفعلة لديك. تأكد من تواجد إسم gd بينهم. إذا لم تجده يتوجب عليك تفعيل الوحدة، الطريقة كالتالي إفتح ملف php.ini و ابحث عن الكلمة gd ستجد السطر التالي: ;extension=gd الفاصلة المنقوطة أمام السطر تعني أن السطر عبارة عن تعليق، لذلك هي غير مفعلة يجب إزالة الفاصلة المنقوطة و حفظ الملف، و هكذا تفعل إذا أردت تفعيل أو إلغاء التفعيل لأي وحدة.
  11. يُمكنك تحويل السلسلة النصية إلى مصفوفة في PHP بإستخدام الدالة explode مثال: <?php $imageTopic = "https://png.pngtree.com/element_our/20200703/ourlarge/pngtree-butterfly-purple-red-wings-ink-transparent-png-bright-image_2300442.jpg,https://www.picng.com/upload/butterfly/png_butterfly_61701.png,https://www.picng.com/upload/butterfly/png_butterfly_61701.png,https://www.picng.com/upload/butterfly/png_butterfly_61700.png"; $images = explode(',', $imageTopic); var_dump($images); الناتج سيكون: array(4) { [0]=> string(133) "https://png.pngtree.com/element_our/20200703/ourlarge/pngtree-butterfly-purple-red-wings-ink-transparent-png-bright-image_2300442.jpg" [1]=> string(62) "https://www.picng.com/upload/butterfly/png_butterfly_61701.png" [2]=> string(62) "https://www.picng.com/upload/butterfly/png_butterfly_61701.png" [3]=> string(62) "https://www.picng.com/upload/butterfly/png_butterfly_61700.png" } و بعد تحويل السلسلة النصية إلى مصفوفة ترسل الناتج إلى قسم العميل لعرضه بالطريقة التي ترغب فيها، لديك مصفوفة تحوي عدد من الروابط. الطريقة الثانية أن يكون التحويل في قسم العميل نفسه أعتقد أنك تستخدم لغة dart و في dart يُمكنك القيام بذلك بإستخدام التابع split: مثال: String imageTopic = "https://png.pngtree.com/element_our/20200703/ourlarge/pngtree-butterfly-purple-red-wings-ink-transparent-png-bright-image_2300442.jpg,https://www.picng.com/upload/butterfly/png_butterfly_61701.png,https://www.picng.com/upload/butterfly/png_butterfly_61701.png,https://www.picng.com/upload/butterfly/png_butterfly_61700.png"; List<String> images = imageTopic.split(","); print(images); الناتج سيكون: [https://png.pngtree.com/element_our/20200703/ourlarge/pngtree-butterfly-purple-red-wings-ink-transparent-png-bright-image_2300442.jpg, https://www.picng.com/upload/butterfly/png_butterfly_61701.png, https://www.picng.com/upload/butterfly/png_butterfly_61701.png, https://www.picng.com/upload/butterfly/png_butterfly_61700.png] و هو قائمة تحمل عدد من العناصر كل عُنصر هو رابط صورة. لك الحرية في طريقة العرض بعد ذلك.
  12. حاول عمل بناء لملفات الأصول من خلال تنفيذ الأمر: npm run build سيتم بناء الملفات بداخل public/build. تأكد من رفع تلك الملفات إلى مستودع github أعتقد أنك ستجد ذلك المجلد مستثنى من التتبع من خلال ملف gitignore. ثم قم بعملية deploy مجددا من حسابك Heroku
  13. تحتاج إلى تضمين: session_start(); في بداية كل سكربت برمجي يستخدم المتغير SESSION_$.
  14. يبدو أن هناك عدم توافقية بين الحزم أثناء التنصيب هل جربت الحل المرشح بإضافة الخيار: npm install --legacy-peer-deps
  15. عند رفع المشاريع على github لا نرفع ملفات الحزم البرمجية فمجلد node_modules لا يكون موجود عند التحميل. لذلك قبل تنفيذ أمر npm run build تحتاج إلى تنفيذ أمر: npm install لجلب الحزم الأساسية المستخدمة في المشروع، و من بينها حزمة webpack، هل قمت بهذه الخطوة ؟
  16. الصورة تقوم إما بإنشاء عُنصر img من خلال جافاسكربت و تضيف مسار الصورة الذي جلبته من قاعدة البيانات إلى الخاصية src للعُنصر الذي أنشأته ثم تضيف هذا الأخير إلى الصفحة الخاصة بك. أو يكون لديك مثلاً عُنصر img في الصفحة تقوم بإستهدافه من خلال جافاسكربت ثم تُغير قيمة الخاصية src له بما جلبته من قاعدة البيانات.
  17. تحتاج إلى إستخدام تقنية Ajax و هي عبارة عن وسيلة لجلب البيانات من الخادم دون الحاجة لإعادة تحميل الصفحة: اعرف أكثر عن Ajax مثال بإستخدام jQuery و لغة php: $(function() { $('#myBtn').on('click', function(){ var id= $('#myInput').val(); if(id != '') { $.ajax({ url:"fetch.php", method:"POST", data:{id:id}, dataType:"JSON", success:function(data) { console.log(data); // data is available do what u want here } }) } else { alert("Please enter a valid id"); } }); }); هنا يتم التسمع على حدث الضغط على الزر المطلوب، و معالجة الحدث بجلب ماتم إدخاله من طرف المستخدم، التحقق من الإدخال و التأكد من أنه ليس فارغ و إلا عرض رسالة تشير للمستخدم بضرورة إدخال id. إرسال طلب ajax للخادم في حالة تحقق الشرط يشمل ال id الذي تم إدخاله، معالجة الطلب في الملف fetch.php و إرجاع البيانات التي ستُصبح متاحة في حال نجاح الطلب و هو ما يتم عرضه بداخل success. ملف الخادم حسب اللغة التي تريد إستخدامها هنا في المثال نستخدم php لذلك الملف سيكون مشابه لـ: <?php //fetch.php if(isset($_POST["id"])) { $connect = mysqli_connect("localhost", "root", "", "testing"); // الإتصال بقاعدة البيانات $query = "SELECT * FROM tbl_name WHERE id = '".$_POST["id"]."'"; // بناء الإستعلام $result = mysqli_query($connect, $query); // تنفيذ الإستعلام while($row = mysqli_fetch_array($result)) // إنشاء مصفوفة حسب البيانات التي نريد إرجاعها { $data["column1"] = $row["column1"]; $data["column2"] = $row["column2"]; $data["column3"] = $row["column3"]; // ... // ... // ... } echo json_encode($data); } ?> طريقة العرض في الصفحة تعتمد عليك، يتم ذلك من خلال دالة المعالجة success حيث تستهدف العناصر في الصفحة من خلال تحديدها عن طريق المُعرف أو أي محدد ثم تحقن بداخلها البيانات التي جُلبت، بفرض أنه جلبنا الحقل name و بداخل الصفحة هناك عُنصر مثلا h3 و يحمل المُعرف nameEl فنُحدد العُنصر عن طريقه ثم بإستخدام التابع text نضع القيمة بداخله بهذا الشكل: $('#nameEl').text(data.name);
  18. إذا كان إستفسارك يتعلق بأحد دروس الدورة يُرجى طرحه في صفحة ذلك الدرس. بخصوص المشكلة التي تظهر لك، فواضح من نص الرسالة أن ملف العرض show.blade.php يستخدم متغير إسمه comments هذا المتغير لم تقم بتمريره من الحدث المسؤول عن عرض هذه الصفحة في المتحكم. يُفترض أن يكون إسم الحدث هو show في المتحكم PostController و بفرض وجود علاقة بين النموذج Post و النموذج Comment إسمها comments هي واحد لكثير أي يُمكن للمنشور أن يكون له عدة تعليقات تابعة له يُمكنك تمرير المتغير بالشكل التالي: public function(Post $post) { $comments = $post->comments; return view('posts.show', compact('post', 'comments')); }
  19. يُرجى كتابة كافة التفاصيل المتعلقة بإستفسارك حتى تتضح الرؤية لمن يستطيع المساعدة، لغة البرمجة التي تستخدمها، هل تستخدم إطار عمل إرفاق الشيفرة التي تريد التعديل عليها. صندوق طرح السؤال أو صندوق التعليق يشمل كل شيء يتيح لك إرفاق صور و ملفات بالإضافة إلى كتابة كود: مثال: // Your First C++ Program #include <iostream> int main() { std::cout << "Hello World!"; return 0; }
  20. نعم يُمكنك تعلم لغة بايثون فهناك عدة مصادر على الانترنت تشرح اللغة بداية من الأساسيات إلى التوسع في المجالات التي تستخدم فيها اللغة من تطوير ويب إلى تطوير تطبيقات سطح مكتب إلى الذكاء الإصطناعي و المكتبات المستخدمة، بالإضافة لتعلم الآلة و التعلم العميق و تحليل البيانات و غيرها من مجالات لغة بايثون. هناك مصادر متنوعة على شبكة الإنترنت بعضها مقاطع فيديو و البعض الآخر مكتوب على شكل مقالات و كل شخص له طريقته التي يفضلها في التعلم. كل ما عليك هو البحث فقط إفتح موقع google او يوتيوب و أكتب عبارة: تعلم بايثون و سيُرشح لك عدة سلاسل يُمكنك الإعتماد عليها. في ما يخص دورة تطوير التطبيقات باستخدام لغة Python المقدمة من أكاديمية حسوب فهي دورة مدفوعة و ليست مجانية، دورة متكاملة تبدأ معك من الصفر بشرح الأساسيات و تركز بشكل أكبر على الجانب التطبيقي من خلال إنجاز مشاريع حقيقية، تركز الدورة أيضاً بشكل كبير على مجال تطوير الويب في الجانب التطبيقي من خلال التعرف على إطار جانغو و بناء متجر إلكتروني بواسطته بالإضافة لأشياء أخرى يمكنك التعرف عليها من خلال زيارة صفحة الدورة. توفر الأكاديمية عدة مقالات أكاديمية و مفيدة في كل المجالات بشكل مجاني، فمثلاً يمكنك الإطلاع على مقالات بايثون من خلال: مقالات البرمجة - بايثون
  21. لتحديد عُنصر option عن طريق القيمة نستعمل: $('.my_selector option[value="value 2"]') ثم إختياره عن طريق التابع prop بالشكل التالي: $('.my_selector option[value="value 2"]').prop('selected', true) لتحديد عُنصر ال option بإستخدام الفهرس، الخيار الأول لديه الفهرس 0 و الثاني 1 و هكذا .. نستخدم: $('.my_selector option:eq(1)') في مثالك السطر أعلاه سيُحدد العُنصر ذو القيمة value 2 و هو الخيار الثاني. و لإختياره نستخدم التابع prop بنفس الطريقة الأولى. إستخدام التابع val لتغيير القيمة لعُنصر select بالشكل: $('.my_selector select').val('value 3');
  22. لم يعد بالإمكان إستخدام خرائط Google من دون مفتاح (API key) و إلا ستظهر لديك الخريطة بالشكل المظلل كما تم إرفاقها مع ظهور تلك الرسالة. أيضاً لم يعد بالإمكان إستخدام الواجهة البرمجية بشكل مجاني، تحتاجين إلى إضافة بطاقة إئتمان لحسابك على المنصة من أجل عمليات الدفع، التي ستُفرض عليك تلقائياً إذا تجاوز عدد الطلبات الخاصة بمشروعك حاجز 200$ التي يتم منحها لك بشكل مجاني كل شهر.
  23. إن الدالة prompt تابعة للواجهة Window عملها هو إظهار نافذة منبثقة بها حقل إدخال للتفاعل مع المستخدم و هذه الدالة تعمل على المتصفح. أنت الآن تقوم بتنفيذ السكربت خارج المتصفح لذلك لن يتم التعرف على الدالة و لن تعمل معك. فأنت خارج سياق عملها. تحتاج إلى إنشاء ملف Html و تربط ملف السكربت به من خلال الوسم script: <script src="your_script_file_path.js"></script> ثم تفتح ملف ال Html على المتصفح.
  24. بإمكانك البحث عن شركات الشحن التي تنشط في بلدك و لديها سُمعة جيدة، و تقومين بالإتفاق معهم، و سيكون لديك حساب خاص لديهم من خلاله يُمكنك التعامل مع شحناتك الخاصة من خلال لوحة تحكم. لا أدري أي جهة يُمكنك التعامل معها، لكن في السعودية مثلاً هناك شركات مثل أرامكس، سمسا و زاجل و غيرها العديد، فيُمكنك البحث عن شركات تُقدم نفس الخدمة لك محلياً للتعامل معهم.
×
×
  • أضف...