فهم المشاريع المفتوحة المصدر والمتاحة على GitHub بالفعل يكون تحديا وصعبا في البداية وهذا بخاصة إذا كانت المشاريع معقدة وكبيرة و مكتوبة بلغات أو تقنيات أو أطر عمل جديدة بالنسبة لك أو لست متمكنا منها جيدا . وهذا شئ طبيعي فلا داعي للقلق فإذا لم تعمل على مشاريع كبيرة من قبل أو لم تعمل مع فريق عمل أو في شركة متوسطة أو كبيرة سيتوجب عليك التدرج في الأمر ويمكنك إتباع النصائح التالية : 1. ابدأ بالمشاريع الصغيرة: حاول البدء بمشاريع
1
نعم بالطبع تحليل البيانات يحتاج فهم عميق وجيد بالإحصاء والرياضيات حيث أن أساسه معتمد عليها لهذا هذه مهارة أساسية. ولكن بالطبع الإحصاء لا يكفي بمفرده يجب عليك تعلم لغة برمجة مثل python و R وتعلم المكتبات الخاصة بتحليل البيانات من بايثون مثل Pandas و NumPy و Matplotlib وغيرهم. ثم يجب فهم كيفية الوصول والتعامل مع البيانات و استخراجها وتنظيمها من قواعد بيانات مختلفة مثل NOSQL أو SQL. ويمكنك قراءة الإجابة التالية لمزيد من التفاصيل وأيضا قراءة المقال التالي : https://academy.hsoub.com/questions/29740-%D8%A7%D9%8A%D9%87-%D8%A7%D9%81%D8%B6%D9%84-%D9%85%D8%B3%D8%A7%D8%B1-%D9%84%D8%AA%D8%B9%D9%84%D9%85-%D8%AA%D8%AD%D9%84%D9%8A%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%9F-%D8%A7%D9%82%D8%B5%D8%AF-%D8%A7%D9%84%D8%AE%D8%B7%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D8%B5%D8%AD%D9%8A%D8%AD%D8%A9-%D8%A8%D8%A7%D9%84%D8%AA%D8%B1%D8%AA%D9%8A%D8%A8-%D8%9F/#findComment-93538
لاحظ أنك تستخدم خاصية top و bottom معا وأيضا left و right للعنصر #editor وبما أنك تضع جميع القيم ب 0 إذا سيأخد المحرر طول وعرض الشاشية بأكملها. ولديك حلين إذا أردت تحديد طول معين وعرض معين أيضا إذا يجب أن تستخدم top و left فقط ووضع طول للعنصر مثلا 150px أو غيرها . والحل الثاني إذا أردت طول بالنسبة للصفحة لنفرض مثلا تريده أن يأخذ نصف الصفحة نضع خاصية bottom ب 50% هكذا : #editor {
يمكنك تجربة وضع خاصية onsubmit على عنصر ال form كالتالي : <form id="upload-form" enctype="multipart/form-data" onsubmit="return uploadImage(event);" > ويمكنك إنشاء دالة uploadImage كالتالي ليتم تنفيذها عن محاولة إرسال النموذج : function uploadImage (event){ event.preventDefault(); var fileInput = document.getElementById('file'); var file = fileInput.files[0]; var formData = new FormData(); formData.append('file', file); var xhr = new XMLHttpRequest(); xhr.open('POST', '', true); xhr.upload.onprogress = function(e) { if (e.lengthComputable) { var percentComplete = (e.loaded / e.total) * 100; document.querySelector('#progress-bar div').style.width = percentComplete + '%'; document.querySelector('#progress-bar div').textContent =
لا داعي للشكر . نعم طريقة المدرب مصطفي جيدة ولكنها ستفيد أكثر في النماذج الكبيرة والتي تحتوي على مدخلات كثيرة حيث ستجعل المستخدم يقوم أولا برفع الصور وبينما يتم رفع الصور على الخادم سيكون هو قام بملئ النموذج وبهذا لن يشعر بالتأخير أثناء رفع الصور. ولكن هذه الطريقة لها سلبيات في النماذج الصغيرة مثل هنا أنت تقوم بكتابة منشور فقط ويقوم برفع الصورة فهنا إذا قام المستخدم بالضغط على زر نشر المنشور قبل رفع الصورة ستحدث مشكلة أن المنشور سيكون
هذا يعتمد على الكود الخاص بك . ولكن لماذا تقوم بذلك ؟ يمكنك إضافة الحقل الخاص بإدخال الصورة في النموذج form الخاص بك ووضع الكود الخاص برفع الصورة وتوليد الرابط مع الكود الخاص بإضافة المنشور ويمكنك أخذ الرابط مباشرة ووضعه مع المنشور في قاعدة البيانات . إذا أردت مساعدة يمكنك إرفاق الكود الخاص بالملفين لمساعدتك.
استخدام Base64 لتشفير النصوص قبل إرسالها إلى قاعدة البيانات ليس الحل الأفضل و لكنه أحيانا قد يكون حلا مؤقتا لبعض الحالات. وتوجد طرق أفضل للتعامل مع النصوص العربية في PHP وقواعد البيانات. حيث ان Base64 هو طريقة لترميز البيانات الثنائية إلى سلسلة من الأحرف للنقل عبر بروتوكولات مثل HTTP. لكنه لا يحل مشكلة ترميز النصوص نفسها. وعند إرسال النصوص العربية باستخدام Base64 يتم تحويل النص إلى شكل قابل للنقل ولكنه سيستهلك مساحة أكبر من النص الأصلي بسبب طريقة الترميز مما
إذا كنت تريد إستخدام خدمة mailgn فهي توفر مكتبة رسمية لها وهي mailgun-php يفضل إستخدامها مع الخدمة. وإليك الرابط الخاص بها على مستودع git : https://github.com/mailgun/mailgun-php أما بخصوص إستخدام الخدمة فيجب أولا إنشاء حساب على الموقع وبعد التسجيل ستحصل على API Key و Domain Name حيث ستحتاجهم لاستخدام مكتبة Mailgun. بعد ذلك يجب تثبيت المكتبة من خلال الأمر : composer require mailgun/mailgun-php وإرسال الرسالة أمر سهل يمكنك إستخدام الكود التالي : use Mailgun\Mailgun; $mg = Mailgun::create('API_KEY'); // يجب إستبدال _API_KEY
يبدوا أن إصدار php على الإستضافة المجانية هو 8.2 حيث منذ هذا الإصدار تم جعل التحذير هذا يظهر عندما تقوم بإضافة خصائص للصنف (class) ديناميكيا . أي أن الصنف Login لديك لا يحوي الخاصية pageFileName ولكنك تحاول إضافتها ديناميكا . لذلك الحل هو إضافة تلك الخاصية داخل الصنف هكذا مثلا : class Login { // إضافة الخاصية $pageFileName public $pageFileName; public function __construct() { // يمكنك الآن تعيين قيمة لـ $pageFileName $this->pageFileName = 'someFileName'; } } أو يمكنك تجاهل هذا
المشكلة لديك أنه لم يتم تفعيل إضافة php-curl . ولاحظ من المسار أنك تستعمل نظام تشغيل linux لذلك يجب عليك تثبيت php-curl هكذا : sudo apt-get install php-curl بعد ذلك يجب إعادة تشغيل الخادم من خلال الأمر : sudo service apache2 restart وإذا كنت تستخدم NGINX وليس Apache فيجب إستخدام الكود التالي : sudo service php7-fpm restart مع تغير إصدار php في الأمر السابق مع الإصدار الذي لديك.
وعليكم السلام ورحمة الله وبركاته. نعم الأكواد التي أرسلتها صحيحة ولا توجد بها أى أخطاء . حيث السطر الأول سيكون الصورة favicon الرئيسية له . أما السطر الأخرى فأنت تحدد احجام كل صورة والمسار الخاص بها وهذا جيد حيث يغطي جميع الاحتياجات الأساسية المتعلقة بال favicon . وأيضا لاحظت أنك تستخدم إمتداد ico. هو جيد حيث يدعم المتصفحات القديمة ولكن يفضل حاليا إستخدام صورة مثل PNG وغيرها . ولكن الأفضل من هذا هو إستخدام صيغة SVG حيث تدعم جميع المتصفحات
هذه ليست أخطاء بل تحذيرات أنه لم يتم السماح بإستخراج الملف حيث ليس لك الصلاحية المناسبة لذلك ويبدوا أن المشكلة بسبب عدم إمتلاك الصلاحيات أو أن المجلد zip ليس فارغا لهذا لا يستطيع الكتابة على الملفات الموجودة وإعادة إستخراجها. وبما أنك تقول أنه يتم الإستخراج بشكل صحيح فيبدوا أنه السبب الثاني حيث أعتقد أن الكود يتم تنفيذه مرتين وتحدث تلك المشكلة . لذلك أولا لنحل مشكلة الصلاحيات : يرجى إستخدام الأمر التالي لتغير صلاحيات مجلد zip لديك حتي تستطيع القراءة
الخاصية aspect-ratio في CSS تستخدم لتحديد نسبة العرض إلى الارتفاع للعناصر وذلك للحفاظ على الأبعاد المناسبة مما يساعد في الحفاظ على تناسق الشكل حتى مع تغيير حجم الشاشة أو عرض النافذة. مثال : div { aspect-ratio: 16 / 9; /* نسبة عرض إلى ارتفاع 16:9 */ width: 100%; /* العرض الكامل للعنصر الأساسي */ } في المثال السابق سيكون ارتفاع العنصر تلقائيا بنسبة 16:9 بناء على العرض. إذا تغير العرض سواء في ال css أو في تغير حجم الشاشة سيتغير
يوجد لديك حلين الحل الأول هو حفظ الصورة لديك على الخادم وبعد ذلك إستدعاء الصورة . ولحفظ الصورة يجب تمرير المسار الذي تريد حفظه فيها إلى الدالة imagepng هكذا : <?php $image = imagecreatetruecolor(200, 200); #you canuse image/jpeg and image/gif for jpg and gif images header('Content-Type: image/png'); $imagePath = 'saved_image.png'; // اسم الملف الذي تريد حفظ الصورة فيه imagepng($image, $imagePath); // حفظ الصورة imagedestroy($image); echo "تم حفظ الصورة في: $imagePath"; ?> وهكذا سيتم حفظ الصورة في نفس المجلد بإسم saved_image.png
وعليكم السلام ورحمة الله وبركاته. الفرق بين كتابة الكود من مبتدئ ومن خبير يتلخص في عدة جوانب: التنظيم: المبتدئ: قد يكتب الكود بشكل غير منظم وأكواد غير نظيفة مما يجعله صعب القراءة والفهم والتعديل عليه مستقبلا. الخبير: ينظم الكود بشكل جيد فيتم تقسيم الملفات وتنظيمها و يستخدم هياكل واضحة للأكواد مما يسهل فهمها وقرائتها والتعديل عليها مستقبلا . 2.الكفاءة: المبتدئ: قد يكتب كود طويل أو غير فعال مما يؤدي إلى بطء الأداء فأبسط شئ أنه قد لا يستطيع التعامل مع
نعم بالفعل هذا الكود الذي أرفقته يضمن أن الشيفرة التي بداخل الدالة سيتم تنفيذها فقط بعد تحميل المستند بالكامل. وهذه من خاصية إطار العمل jQuery حيث هذه طريقة مختصرة (shorthand ) لكتابة الكود التالي : $(document).ready(function() { // jQuery methods go here... }) يعني أنه عندما يكون DOM (كائن المستند) جاهزًا، سيتم تنفيذ الدالة التي تحتوي على الكود بداخلها. وهذا هي الطريقة الصحيحة لتفادي أى مشاكل حيث يجب الإنتظار حتى يتم تحميل جميع العناصر في الصفحة قبل تنفيذ الكود .
نعم بالفعل هذه الخاصية هي short hand لثلاث خصائص flex-grow و flex-shrink و flex-basis يمكنك وضع الثلاث قيم معا في سطر واحد . وما قمنا به هو وضع 1 لقيمة flex-grow و يمكنك إستبدال flex ب flex-grow إذا أردت . أما بخصوص عمل break بعد عدد عناصر معين يمكنك إستخدام الخاصية flex-basis هكذا : <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .container { display: flex; flex-wrap: wrap; } .item { flex-grow: 1; flex-basis: 30%; box-sizing:
يمكنك إستخدام الخاصية flex للعناصر الأبناء والتي ستعطي للجميع نفس المساحة بالتساوى لتصبح جميع العناصر معا لها نفس عرض العنصر الأب . وهذا الكود كمثال لك : <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .parent { display: flex; } .child { flex: 1; border: 1px solid #000; } </style> </head> <body> <div class="parent"> <div class="child">عنصر 1</div> <div class="child">عنصر 2</div> <div class="child">عنصر 3</div> </div> </body> </html> هنا بفضل الخاصية flex:1 للعناصر الأبناء ستجد أن تم تقسيم
لا ليس طبيعيا من المفترض أن لارافيل أيضا سريع ولكن من الممكن أن كثرة الملفات الخاصة بجافاسكريبت كما هو واضح من الصورة تؤثر علي ذلك .حيث أنك تستخدم العديد من المكتبات الخاصة بجافاسكريبت وهي مما تسبب أخذ وقتا كثيرا في تحميل تلك الملفات في المتصفح ومن ثم تشغيلها في المتصفح لتعمل فكل هذا يؤثر في سرعة ظهور الموقع. أولا يجب عليك التأكد هل الصفحة تحمل سريعا أي يظهر النص سريعا ولكن الملفات مثل css و javascript تأخذ وقتا للتحميل و
مرحبا صلاح . يفضل وضع مشكلتك على موقع الأكاديمية ليتم الرد عليك من قبل المتخصصين هناك . ولكن لا تقلق سيتم الرد عليك قريبا حيث أحيانا يتأخر الرد من مركز المساعدة لمدة تصل إلي 48 وهذا بسبب وجود ضغط حاليا علي مركز المساعدة ولكن سيتم الرد عليك ومساعدتك في تلك المشكلة إن شاء الله. لذلك من فضلك يرجي الإنتظار قليلا وبمجرد الرد عليك ستجد أن المشكلة قد تم حلها بإذن الله.
وبارك فيك أخي . ظننت أنك تريد تغير الأرقام الإنجليزية إلى العربية كما قلت أنك ترغب الان بتحويل الارقام الى العربية اذا ممكن. ولكن لابئس يمكنك تغير اللون كما أخبرتك عن طريق تغير .number { color: red; } إلى أي لون تريده وكما تريد اللون الأخضر فيمكنك التغير إلى التالي : .number { color: green; } وتغير ال regex إلى التالي لإستهداف الأرقام العربية : const modifiedText = text.replace(/([\u0661-\u0669]+)/g, '<span class="number">$1</span>'); حيث نطاق الأرقام العربية في نظام unicode هو من
يمكنك إضافة regex جديد لتعديل الأرقام الإنجليزية إلى العربية حيث ال regex الحالي يقوم فقط بتغير الألوان . ويمكنك إستخدام الكود التالي : var map = ["&\#1776;", "&\#1777;", "&\#1778;", "&\#1779;", "&\#1780;", "&\#1781;", "&\#1782;", "&\#1783;", "&\#1784;", "&\#1785;"] paragraph.innerHTML = paragraph.textContent.replace(/\d(?=[^<>]*(<|$))/g, function ($0) { return map[$0] }); ولتغير اللون نقوم بتغير color: red; إلى اللون الذى تريده وبما أنك تريد لون أخضر نغيره إلى التالي : .number { color: green; } وهكذا سوف يعمل معك إن شاء الله وإذا لم يعمل فيفضل
الحل يعتمد علي طريقة تسجيلك للدخول . فهل قمت بوضع ملف التحقق من أن المستخدم موجود في الجلسة في ملف صفحة الأدمن ؟ فإذا لم تقم بوضع الملف فلهذا لا يتم إعادة توجيهك لصفحة تسجيل الدخول حتي لو لم تقم بتسجيل الدخول بالفعل. لذلك قم بإستيراد ملف التحقق من تسجيل الدخول في جميع الصفحات التي تريد حمايتها وجعلها مسموحة فقط للمستخدم . والملف من المفترض أن يحتوي على الكود التالي : <?php session_start(); // تحقق من وجود متغيرات الجلسة التي