-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
أبسط حل هو الدالة mail في أي صنف بسيط تقوم بإنشائه وشكلها العام: mail($to, $subject, $message, $headers); مستقبل موضوع الايميل الرسالة ترويسات// المرسل و إصدار اللغة تحوي المقالة المرفقة شرح مفصل أكثر لكيفية استخدام المكتبة PHPMailer في PHP وطرق أخرى أفضل من الدالة mail كيفية استخدام PHP Mailer: <?php $mail = new PHPMailer(); $mail->From = "from@example.com"; // المرسل $mail->FromName = "Full Name"; // اسم المرسل الكامل $mail->addReplyTo("reply@example.com", "Reply Address"); // البريد الذي تود إستقبال الردود عليه $mail->addAddress("recepient1@example.com", "Recepient Name"); // عنوان بريد المستقبل الأول و اسمه $mail->addAddress("recepient2@example.com"); // المستقبل الثاني $mail->addCC("cc@example.com"); // مستقبلين نسخة إضافية (CC)، $mail->addBCC("bcc@example.com"); // مستقبلين نسخة إضافية محجوبين (BCC) $mail->Subject = "Subject Text"; // الموضوع $mail->isHTML(true); // تفعيل وضع HTML // جسم الإيميل $mail->Body = "<html><body><p><b>This paragraph is bold. </b></p><p><i>This text is italic.</i></p></body></html>"; $mail->AltBody = "This paragraph is not bold.\n\nThis text is not italic."; // إرسال الإيميل if($mail->send()) { // (1) header('Location: http://example.com/path/to/thank-you.php', true, 303);// إعادة التوجيه ورسالة سكر لإرسال البريد exit; } // حدوث خطأ else { echo "Error: " . $mail->ErrorInfo; } إن كنت تستعمل composer في مشروعك يمكنك تضمين PHP Mailerكالتالي: التثبيت: composer.json "phpmailer/phpmailer": "~6.0" ثم composer install أو: composer require phpmailer/phpmailer ولكي تستخدمها، كما في المثال السابق، رابط توثيق المكتبة من على GitHub: github.com/Synchro/PHPMailer والمقالة المرفقة تحوي شوحات إضافية:
-
يمكن استخدام حل أسرع وهو الدالة asfreq حيث أنها لاتتطلب إعادة إنشاء index على عكس reindex: dates = pd.Index([pd.Timestamp('2022-07-01'), pd.Timestamp('2022-07-04'), pd.Timestamp('2022-07-06')]) s = pd.Series([1, 2, 3], dates) print(s.asfreq('D')) 2022-07-01 1.0 2022-07-02 NaN 2022-07-03 NaN 2022-07-04 2.0 2022-07-05 NaN 2022-07-06 3.0 Freq: D, dtype: float64 كما أن reindex تفشل في حال وجود قيم مكررة duplicate values. كما يمكن استخدام timestamps بتطبيق الدالة DatetimeIndex: df = pd.DataFrame({ 'timestamps': pd.to_datetime( ['2016-11-15 1:00','2016-11-16 2:00','2016-11-16 3:00','2016-11-18 4:00']), 'values':['a','b','c','d']}) df.index = pd.DatetimeIndex(df['timestamps']).floor('D') df yields timestamps values 2016-11-15 "2016-11-15 01:00:00" a 2016-11-16 "2016-11-16 02:00:00" b 2016-11-16 "2016-11-16 03:00:00" c 2016-11-18 "2016-11-18 04:00:00" d وحل آخر باستخدام resample التي تحل مشكلة duplicate values: df.resample('D').mean()
- 4 اجابة
-
- 1
-
char هو عبارة نمط بيانات أولي primitive data type يستعمل لتخزين المحارف (أي محرف في لوحة المفاتيح أو غيرهم) كما يمكن تعريف مصفوفة من المحارف أيضا عن طريقه.. مثال لتعريف محرف وحيد و مصفوفوة محارف: char ch = 'a'; // محرف وحيد char[] charArray ={ 'a', 'b', 'c', 'd', 'e' }; // مصفوفة محارف يمكننا تعريف مصفوفة من المحارف بحيث يكون كل عنصر منها يسمح بتخزين محرف وحيد.. char[] CharArray = new char[5]; CharArray[0] = 'w'; CharArray[1] = 'a'; CharArray[2] = 'e'; CharArray[3] = 'l'; لاحظ كيفية استخدام دليل العنصر للوصول للمكان المناسب لتخزين الحروف. لطباعة الحرف a من المصفوفة السابقة نصل له عن طريق الدليل 1: System.out.println(CharArray[1]); // 'a' وللمرور على المصفوفة و طباعة قيمها بإحدى الطريقتين: for (char c : CharArray) { System.out.println(c); } for (int i=0; i< CharArray.length; i++) { System.out.println(CharArray[i]); } للتحويل بين قيمة رقمية و محرفية يمكن استخدام القصر casting التي هي وضع نمط البيانات بين قويسين (char) int a=1; char c=(char)(a+'0'); // '1' int a=65; char c=(char)a; // 'A' ويمكن استخدام دوال الصنف Charecter لعمل التحويل: int REDIX=10; // النظام العشري int a=1; char c=Character.forDigit(a,REDIX); System.out.println(c); // '1' كما يمكن استخدام الدالة toChars Character.toChars(48) // '0' Character.toChars(49) // '1' Character.toChars(65) // 'A' Character.toChars(66) // 'B' Character.toChars(127) // 'a' Character.toChars(128) // 'b' قيمة كل محرف ثابتو حسب نظام جدول ASCII يمكنك الاطلاع عليه، وبعمل عمليات الجمع و الطرح يمكن التحويل بين الأرقام و المحارف
- 1 جواب
-
- 1
-
المشكلة بسبب لغة الحاسوب وطريقة تنسيق التاريخ و الوقت فيه، أرجو التوجه للزاوية اليسرى في الأسفل وظبط تنسيق التاريخ للغة الانكليزية مع ضبط المنطقة الزمنية.. ثم أعد تشغيل أندرويد استديو ضبط لغة الحاسوب للانكليزية يمكن أن يحل المشكلة، تأكد من إعادة التشغيل.
- 9 اجابة
-
- 1
-
إن الاحتراف بأي مجال ضمن البرمجية يتطلب تعلم مستمر واطلاع على المستجدات. دورة PHP كافية لإدخالك سوق العمل، أما للتميز والاحتراف كما ذكرت أنصحك بالتدرب على الخوارزميات و حل مسائل problem solving حيث يمكنك استخدام أي لغة برمجة c - ++c - التي تريدها
- 5 اجابة
-
- 1
-
بالرغم من أن مجال problem solving بعيد بعض الشيئ عن مجال الويب، إلا أن تعلمك لكتابة الأكواد وحل مسائل برمجية سيفيدك بالطبع، ولكن استخدامهم قليل في مجال الويب. المسار الأول في دورة علوم الويب تعلم سكراتش، وهي لغة برمجة تفاعلية ومفيدة كبداية للمبتدئين في البرمجة، أما بافي الدروس في مسار الأساسيات تهتهم بأساسيات هندسة البرمجيات والمخططات الدفقية و هي أساس الخوارزميات. مع أن دورة PHP تكفي لتعلم PHP مع إطار Laravel ولكن مواضيعها مختلفة عن دورة علةم الحاسب.
- 5 اجابة
-
- 1
-
دورة علوم الحاسب هي دورة عامة في مجال البرمجية، تعطيك فكرة جيدة عن مجالات متنوعة وهي تهتم بمبدائ البرمجة و الخوارزميات و أساسيات التفكير المنطقي، وأساسيات HTML - CSS وسطر أوامر لينوكس وقةاعد البيانات.. أي تجعلك مهيأ للدخول في أي مجال و التخصص لاحقاً، مثل مطور واجهات أمامية أو خلفية أو برمجة تطبيقات الهاتف.. بالنسبة لدورة PHP ستتعلم النظم الخلفية وكيفية بناء المشاريع وكيفية تواصل الواجهات الأمامية مع المخدم (الواجهات الخلفية) وأنواع طلبات HTTP methods، وأساسيات PHP والدوال فيها والأصناف وكل مايلزمك للتعامل معها.. ثم ستتعلم إطار عمل Laravel مع تطبيقات و مشاريع عليه والكثير غيرهم.. كملخص، يوجد العديد من الفروقات بينهم، إن لم يكن لديك أي خلفية برمجية يفضل الدخول من باب دورة علوم الحاسب ثم الانتقال لدورة PHP.. أيضا الاشتراك في دورة PHP يفتح لك مسار الأساسيات في دورة علوم الحاسب وهي مفيدة لك إن لم تشترك بدورة علوم الحاسب. لمعلومات أكثر تصفح كل من الدورتين، مقالات مفيدة:
- 5 اجابة
-
- 2
-
بالإضافة لحل شرف الدين، إن كنت تريد استعراض محتوى الملف و تعديله، يمكن فتحه باستخدام محرر nano sudo nano /boot/efi كما يمكن كتابة كل من التلي ثم تنفيذ ماتريد: sudo su sudo -s بعدهم: cd directory..
-
إن كانت الشفافية لديك متعلقة بلون الخلفية، لا تضع خاصية opacity لأنه يتم وراثتها في css للأولاد وتطبق عليهم لذلك، استبدل الشيفرة التالية: background-color: rgb(0,0,255); opacity: 0.5; ^^^^ ^^^^^^^^^ بإضافة معامل الشفافية للون الخلفية لديك أي المعامل alpha في rgba: background-color: rgba(0,0,255,0.5); ^^^^ ^^^^ هذا يعطي نفس التأثير.. ربما تحتاج لعمل rgba مرتين مع إلغاء الشفافية اللونية للعنصر الابن: .parent { background-color: rgba(0,0,0,0.5); } .child { background-color: rgba(128,128,128,0); }
- 4 اجابة
-
- 1
-
أفضل طريقة كالتالي: تشغيل PowerShell مع صلاحيات الأدمن Administrator ثم تنفيذ الأوامر التالية: Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force npm install -g npm-windows-upgrade npm-windows-upgrade وإن أردت تحديد إصدار معين يمكن تنفيذ التالي: npm-windows-upgrade -p -v latest لمعلومات أكثر من الرابط: npm-windows-upgrade كما يمكنك تحميل حزمة تبيت node الجديدة التي لها لاحقة msi من الموقع الرسمي وتنصيبها، فهي تعمل على استبدال النسخ القديمة. كما يمكنك التوجه لمسار تثبيت node ومن ثم تنفيذ التثبيت بشكل عادي: cd C:\Program Files (x86)\nodejs npm install npm وإن كنت تستخدم الأداة Chocolatey يمكن تحديث كل من node + npm بسهولة كالتالي: choco update nodejs choco update npm
-
موضوع تحديث أنظمة الهاتف ليس بالأمر السهل مثل الحاسوب، لأن أجزاء الهاتف متغيرة جداً ونوعاً ما ترتبط بالشركة المصنعة التي تقدم السوقات Drivers للمكونات الصلبة Hardware فيه والتي تكون متوافقة فيما بينها. أي الحصول على نظام 64 مقدم للهاتف من نفس الشركة المصنعة احتمال غيرموجود. إن قمت بجلب نظام تشغيل أندرويد 64 بت وقمت بتثبيته على الأغلب سيعمل ولكن تحتاج لمتابعة شروحات دقيقة لتتأكد من أنه متوافق مع قطع الهاتف. موضوع التوافق الذي أتحدث عنه لايقتصر علاى المعالج، بل شبكات الاتصالات والكاميرة، إن أردت التجريب حاول تثبيت أنظمة تشغيل custom ROMs
- 5 اجابة
-
- 1
-
إن المعالج لديك هو بنظام 64-bit ولكن نظام التشغيل المثبت على الجهاز هو 32-bit. بشكل عام المعالج يقبل نظام تشغيل 64 بت، وسيعمل إن كان نظام التشغيل الذي سوف تثبته متوافقاً مع بقية مكونات الجهاز.
- 5 اجابة
-
- 1
-
يمكن الاعتماد على الدالة onError لتضع صورة من عندك (تدل على عدم وجود صورة مثلا/خطأ تحميل) this.state = ({ image:{uri: this.props.imageUrl} }) const setimage = () => { this.setState=({image: require('../images/logo.png') }) } <Image source={this.state.image} style={styles.imageThumbnail} onError={()=>setimage()} /> عند حدوث مشكلة في تحميل الصورة، سيتم تعويضها بصورة من عك مثلا اللوغو..
- 3 اجابة
-
- 2
-
عليك بناء المشروع، ستلاحظ وجود قائمة build في شريط العنوان، تسمح لك بعمل نسخة APK أو ABB لرفعها على المتجر، على كل حال يلزم توقيع التطبيق app signing لعمل مفتاح خاص به. أولا لتوقيع التطبيق سيتم عمل مفتاح فيه بيانات يمكنك تعبئتها: لتوقيع التطبيق app-signing ثم يمكنك التوجه لتوثيق أندرويد استديو من الرابط: بناء التطبيق ثم حسب الجدول توجه إلى Build Bundle(s) / APK(s) > Build Bundle(s) تحوي خطوات بناء النسخة للرفع.
- 3 اجابة
-
- 1
-
حاول تحديد اسم الجدول ب ` backticks, لاحظ ان متغير الشرط if الأخير مختلف عن الذي يحفظ نتيجة الاستعلام.. هل تقصد result0
-
أرجو الانتباه لوضع فراغات بين أسم الجدول والقوس.. INSERT INTO cloths_fabric(item, ^^^^ INSERT INTO cloths_fabric (item,
- 3 اجابة
-
- 1
-
افصل الجزئين من أكواد جافاسكربت لملفات منفصلة، ثم أعد تضمينهم في الصفحة، الشيفرة قصيرة لامشكلة من تكرارها،.. وربما في المستقبل، تضيف تعديلات لمنطق الإشعارات أو الرسائل ولا تحتاجه في الجزء الآخر فالفصل بينهما الآن أفضل. لكي تجعل الشيفرة ديناميكية، ضعها في دالة ما، ثم مرر كوسيط لها المتغيرات المختلفة، مثل رابط الموقع، وعناصر HTML التي يتغير محتواها.. function myFunNotificatio(URL_Link, HTML_ELEMENT) { { $j.ajax({ url:URL_Link, // تعديل method:"POST", data:{view:view}, dataType:"json", success:function(data) { $j(HTML_ELEMENT).html(data.notification); // ثاني تعديل if(data.unseen_notification > 0) { $j('.count').html(data.unseen_notification); } } }); } } لاحظ أن الرابط و العنصر الذي يتعدل محتواه متغيران فقط، قمت بعمل مثال بسيط، طور الجدالة لديك، واسدعيها عدد من المرات حسب تغيير الوسطاء لديك.. myFunNotificatio(Link_1, Element_1) myFunNotificatio(Link_2, Element_2) ...
-
هل تأكدت من تثبيت المكتبة؟ ربما هي غير متوفرة في حاسوبك، ثبتها بالأمر: pip install bcrypt رابط المكتبة: bcrypt
- 6 اجابة
-
- 1
-
سؤالك مطروح مسبقاً وقام عدة مدربين بتقديم إجابات وتنوعة له، يمكنك مراجعة السؤالين: والسؤال: ثم يمكنك مراجهة هذه المقالة: وإن احتجت لأي توضيحات، اقتبس إجابتي وأضف سؤال واضح ومحدد من فضلك.
- 2 اجابة
-
- 1
-
يمكن عكس قائمة عن طريق slice كالتالي: myList = myList[::-1] print(myList) إن لم ترد حفظ الناتج، يمكن استخدام الدالة reversed التي تعيد iterator يمكن المرور عليها بحلقة: for i in reversed(myList): print(i) وإذا كنت تريد حفظه للدالة reversed يمكن تحويل الناتج لقائمة: list(reversed(myList)) كما يمكن استخدام numpy والدالة flip: import numpy as np array = [0, 10, 20, 40] list(np.flip(array)) [40, 20, 10, 0] كما يمكن استخدام تابع الترتيب وعمل ترتيب تنازلي.. بتمرير المعامل reverse=True myList.sort(reverse=True)
- 2 اجابة
-
- 1