-
المساهمات
8752 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
117
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد_عاطف
-
ليس تماما . عملية JWT (JSON Web Token) ومفهوم الـ "session" هما طريقتان مختلفتان لإدارة الجلسات وتوثيق المستخدمين في التطبيقات لكنهما يختلفان في الطريقة التي يتم بها ذلك: JWT Token: هو عبارة عن رمز مميز يُستخدم لتوثيق الهوية وتبادل المعلومات بين الأطراف بشكل آمن. يتكون من ثلاثة أجزاء: رأس (Header)، جسم (Payload)، وتوقيع (Signature). حيث يتم تشفير المعلومات التي بداخله مع أنه يمكن رؤية البيانات من خلال أي شخص حيث يمكن فك تشفيره بسهولة لذلك لا يجب حفظ معلومات مهمة بداخله ولكن ما يميزه هو أنه يتم تشفيره برمز معين لذلك في الخادم يتم التأكد من ال Signature فإذا تم التعديل على ال token أو تم تشفيره برمز خاطئ سيتم إكتشاف أن هذا ال token مزيف. يحتوي الـ JWT على معلومات مشفرة يمكن أن تشمل معرف المستخدم وأي بيانات أخرى قد تكون ضرورية.يتم تخزين الـ JWT عادةً في المتصفح (كـ cookies أو localStorage) ويرسل مع كل طلب إلى الخادم.يتم التحقق من صحة الـ JWT في الخادم باستخدام التوقيع للتحقق من عدم التلاعب. Session: هي عبارة عن طريقة لتخزين معلومات المستخدم على الخادم بدلا من العميل. عند تسجيل دخول المستخدم، يتم إنشاء "جلسة" على الخادم ويُعطى المستخدم معرف جلسة (session ID). يتم تخزين هذا المعرف في المتصفح عادةً كـ cookie ويتم إرساله مع كل طلب إلى الخادم. الخادم يستخدم هذا المعرف للوصول إلى معلومات الجلسة المخزنة على الخادم واسترجاع بيانات المستخدم. لذلك الإختلاف الرئيسي هو أن البيانات في JWT يتم تخزينها لدي المستخدم وإرسال ال JWT في كل طلب للخادم ويتأكد الخادم من صحة الرمز و يستخرج المعلومات منه أما ال session فيتم تخزين البيانات في الخادم و يتم تخزين ال session id فقط لدي المستخدم .
- 6 اجابة
-
- 1
-
-
نعم بالطبع سيتم شرح أولا طريقة التسجيل والمصادقة في مسار بناء واجهة برمجية API لتقييم الأفلام عن طريق الدوال الوسيطة و JWT Tokens للتأكد من المصادقة لل API في Nodejs. وايضا في الواجهات الأمامية سيتم عمل login و register من خلال react و nextjs والتطبيقات العملية جميعها يتم فيها إستخدام التسجيل والمصادقة .
- 6 اجابة
-
- 1
-
-
نعم بالطبع . من فضلك قم بالتمرير إلي أسفل صفحة الدرس تماما حتي تصل إلي أخرها ستجد صندوق للتعليقات كما هنا : قم بالضغط علي أضف تعليق وبعد ذلك قم بكتابة سؤالك واضغط أضف التعليق : ويمكنك تصوير وإرسال ما الذي يظهر لك إذا لم تجد ما اخبرتك به .
-
ستجد أسفل الدرس صندوق للتعليقات كما هنا، من فضلك يرجي طرح الأسئلة هناك حيث هنا هو قسم الأسئلة العامة ولا نقوم بالإجابة بالأسئلة الخاصة بالدورات هنا وذلك لمعرفة الدرس الذي تريد الإستفسار عنه و مساعدتك بشكل أفضل.
- 4 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . يمكنك إستخدام أي IDE لتقوم بكتابة الأكواد و لكن برنامج vs code من البرامج الشائعة والجيدة والتي تحتوي علي العديد من الإضافات التي تساعدك بكتابة الأكواد بالعديد من اللغات . ولكن إذا أردت IDE خاص ب php ويدعهما بقوة يمكنك تحميل برنامج php storm . ما هي المشكلة التي تواجهك في xampp لنستطيع مساعدتك حيث لا يمكن سرد جميع المشاكل المتعلقة ب xampp فلن يسعنا توضيحها . لما تريد تغير ال port 80 ؟ هذا المنفذ هو الخاص و المسؤل عن تصفح المواقع عبر شبكة الانترنت ويعرف بـ HTTP وهى اختصار لـ HyperText Transfer Protocol حيث يمكنك من زيارة عنوان الموقع مباشرة مثل http://localhost/ دون الحاجة لكتابة المنفذ ولكن إذا كان المنفذ غير 80 سيتوجب عليك كتابة المنفذ بعد العنوان هكذا مثلا http://localhost:8000/ وإذا قمت بتغير المنفذ ستجد أن معظم الأشياء لن تعمل مثل قواعد البيانات وغيرها . ولكن إذا أردت تغير المنفذ يمكنك إستخدام هذا الأمر في محرر الأوامر بداخل مجلد المشروع لتشغيل سيرفر إفتراضي من خلال php : php -S localhost:8000 ويمكنك الضغط علي زرnetstat لتظهر جميع المنافذ التي يتم إستخدامها . ولكن من المفترض أن port 80 لا يتم إستخدامه من خلال أي برنامج أخر.
-
للتقدم للإختبار والحصول علي الشهادة يجب : إتمام أربعة مسارات تعليمية كاملة على الأقل التطبيق العملي مع المدرب والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة رفع المشاريع على حسابك على GitHub حتي يتم مشاركتها. نقوم بإنشاء مجلد للدورة وتقسيمه إلى مجلدات لكل مسار مجلد بعد ذلك نضع التطبيقات العملية البسيطة في تلك المجلدات بشكل منظم ثم نقوم برفع المجلد بالكامل إلى مستودع على GitHub. أما بخصوص المشاريع العملية الكاملة أي تطبيق ويب كامل مثلاً فنقوم بإنشاء مجلد منفصل له ثم رفع الكود المصدري الخاص به بعد الإنتهاء على منصة GitHub في مستودع منفصل أي مستودع لكل مشروع. ثم بعد الإنتهاء من الدورة تقومي بمراسلة مركز المساعدة وتوفير روابط المشاريع على GitHub أي التطبيقات العملية ليتم مراجعتها، ثم تحديد موعد للإختبار. ولا يوجد عدد معين للمشاريع المطلوبة بل هي المسارات التي أتممتها علي ألا تقل عن أربع مسارات كما أخبرتك
-
إن طريقة مذاكرة البرمجة مختلفة عن جميع طرق المذاكرة الأخري حيث هنا في البرمجة يجب عليك أولا فهم الأساسيات وليس حفظها ومع التكرار والعمل كثيرا ستجد أنك تلقائيا قمت بحفظ تلك الدوال. وليس عليك بالتأكيد حفظ جميع الدوال فلا يوجد أحد يحفظ جميع الدوال الموجودة و لكن يعرف فيما وكيف تستخدم . ولكن يوجد بعض الدوال يجب بالطبع عليك حفظها ولكن يمكنك إستخدام الإقتراح التلقائى لتكملة الدوال حاليا ويكفي فقط أنكي تفهم ما هي وظيفتها وفيما تستخدم .
-
ستجد أسفل الدرس صندوق للتعليقات كما هنا، من فضلك يرجي طرح الأسئلة هناك حيث هنا هو قسم الأسئلة العامة ولا نقوم بالإجابة بالأسئلة الخاصة بالدورات هنا وذلك لمساعدتك بشكل أفضل.
-
وعليكم السلام ورحمة الله وبركاته . إن الأكاديمية تعمل دائما علي تحديث الدورات بما يلائم التطورات التي تحدث سريعا في المجال ولكن من الممكن أن تكون هناك بعض الأشياء التي تتأخر قليلا حيث أن المكتبات تتغير بشكل دائم وفي وقت قصير ولذلك فإذا تم تحديث الدورة عند كل تحديث إصدار لمكتبة فستجد أنه فعليا يتم تحديث الدورة كل شهر مرة أو أكثر وهذا ليس بالشئ الجيد . ومن الأفضل عدم تخطي أي مسار ويمكنك متابعة الشرح بأحدث إصدار في المكتبة وإذا حدث أي خطأ يمكنك العمل علي حله حيث ذلك سيعطيك الخبرة في حل المشكلات والتحديثات التي ستواجهك مستقبلا و يمكنك سؤال المدربين وسيجيبونك بكل تأكيد. أما بخصوص التعديلات فيمكنك متابعة الرابط التالي حيث يتم نشر التحديثات تلقائيا فيه : https://academy.hsoub.com/release-notes/
-
لا مشكلة ولكن الكود سيكون مكررا كثيرا . يمكنك وضع الكود الذي ارسلته في ملف و إستدعاء هذا الملف عن طريق include وهذا أفضل حل بدلا من تكرار الكودد 22 مرة.
- 12 اجابة
-
- 1
-
-
نعم بالطبع يمكنك الدخول بحسابك علي أكثر من جهاز في نفس الوقت مثل جهاز الكمبيوتر والموبايل وأي جهاز آخر. ولكن يجب عليك الإنتباه أن يكون مالك الحساب فقط هو من يمكنه الوصول إلى الدورة ومشاهدتها فهذه من شروط شراء الدورة أنها خاصة بمالك الحساب ولا يمكن مشاركة الحساب لأكثر من شخص . وذلك منعا للإجراءات التي من الممكن إستخدامها في حالة إكتشاف إستخدام الحساب لأكثر من شخص.
-
نعم صحيح ملف واحد. ولكن هذا يعتمد علي الجداول فيجب أن يكون كل لينك خاص بالجدول الذي تريد تحميله. يمكنك تمرير متغيرات query params في الرابط ليشير إلي الجدول الذى تريد تحميله وفي الملف تحضر نتيجة الإستعلام عن هذا الجدول . وإذا لم تكن الجداول كثيرة ولم تستطع إستخدام طريقة ال query params يمكنك إستخدام هذا الكود في عدة ملفات وكل ملف خاص بإستعلام جدول معين .
- 12 اجابة
-
- 1
-
-
نعم هذا الكود سيقوم بتحميل الملف بصيغة excel وبه جميع البيانات . كل ما عليك هو إنشاء لينك يشير إلي رابط الملف هكذا مثلا : <a href="/to_excell.php">تحميل</a> وعند الضغط علي الزر سيقوم بالتوجيه إلى الملف to_excell.php ويمكنك تغيره إلي إسم الملف الذى لديك وسيقوم بتحميل ملف excell به البيانات . وهذا هو الكود الخاص فقط بتحميل البيانات إلي excel ولكن يجب أن يتواجد المتغير $result والذي هو عبارة عن الإستعلام $columns_name = []; $columns = $result->fetch_fields(); $columns = $result->fetch_fields(); foreach ($columns as $column) { $columns_name[]=$column->name; // هنا ننشئ الجزء الخاص بأسماء الأعمدة } // إعداد رأس HTTP لتنزيل ملف CSV header('Content-Type: text/csv'); header('Content-Disposition: attachment;filename="data.csv"'); // فتح مخرجات للتدفق بالكتابة $output = fopen('php://output', 'w'); // كتابة رؤوس الأعمدة إلى ملف CSV (إذا كانت هناك رؤوس) fputcsv($output, $columns_name); // استبدل الأعمدة بأسماء الأعمدة الفعلية // كتابة البيانات إلى ملف CSV while ($row = $result->fetch_assoc()) { fputcsv($output, $row); } // إغلاق المخرجات fclose($output);
- 12 اجابة
-
- 1
-
-
نعم بالطبع يمكنك إستخدام الكود التالي : <?php // إعداد قاعدة البيانات $host = 'localhost'; // اسم المضيف $dbname = 'db_name'; // اسم قاعدة البيانات $username = 'root'; // اسم المستخدم $password = ''; // كلمة المرور // إنشاء اتصال بقاعدة البيانات $mysqli = new mysqli($host, $username, $password, $dbname); // التحقق من وجود أخطاء في الاتصال if ($mysqli->connect_error) { die("فشل الاتصال: " . $mysqli->connect_error); } // استعلام البيانات $query = "SELECT * FROM your_table_name"; // استبدل your_table_name باسم الجدول الذي تريد تصديره $result = $mysqli->query($query); $columns_name = []; $columns = $result->fetch_fields(); $columns = $result->fetch_fields(); foreach ($columns as $column) { $columns_name[]=$column->name; // هنا ننشئ الجزء الخاص بأسماء الأعمدة } // إعداد رأس HTTP لتنزيل ملف CSV header('Content-Type: text/csv'); header('Content-Disposition: attachment;filename="data.csv"'); // فتح مخرجات للتدفق بالكتابة $output = fopen('php://output', 'w'); // كتابة رؤوس الأعمدة إلى ملف CSV (إذا كانت هناك رؤوس) fputcsv($output, $columns_name); // استبدل الأعمدة بأسماء الأعمدة الفعلية // كتابة البيانات إلى ملف CSV while ($row = $result->fetch_assoc()) { fputcsv($output, $row); } // إغلاق المخرجات fclose($output); // إغلاق الاتصال بقاعدة البيانات $mysqli->close(); ?>
- 12 اجابة
-
- 1
-
-
لتحميل البيانات من جداول في php إلى ملف Excel، يمكنك استخدام مكتبة مثل PhpSpreadsheet ويمكنك زيارة التوثيق الرسمي الخاص بها من خلال الرابط التالي : https://phpspreadsheet.readthedocs.io/en/latest/ ولتحميل المكتبة يمكنك تنفيذ الأمر التالي في سطر الأوامر في مجلد المشروع لديك : composer require phpoffice/phpspreadsheet بعد ذلك يجب إنشاء ملف php لتحميل البيانات إلى Excel حيث سنقوم بإنشاء ملف وليسمي مثلا to_excell.php : <?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; // إنشاء كائن Spreadsheet $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // الاتصال بقاعدة البيانات $conn = new mysqli('localhost', 'username', 'password', 'database'); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // استعلام لجلب البيانات $sql = "SELECT * FROM your_table"; // هنا يجب التغير إلي إسم الجدو الخاص بك $result = $conn->query($sql); if ($result->num_rows > 0) { // كتابة رؤوس الأعمدة $columns = $result->fetch_fields(); $col = 1; foreach ($columns as $column) { $sheet->setCellValueByColumnAndRow($col, 1, $column->name); $col++; } // كتابة البيانات $rowNumber = 2; while ($row = $result->fetch_assoc()) { $col = 1; foreach ($row as $value) { $sheet->setCellValueByColumnAndRow($col, $rowNumber, $value); $col++; } $rowNumber++; } } $conn->close(); // إنشاء ملف Excel $writer = new Xlsx($spreadsheet); $filename = 'data.xlsx'; // إرسال ملف Excel للتنزيل header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="' . $filename . '"'); $writer->save('php://output'); exit; ?> هنا قمنا أولا بالإتصال بقاعدة البيانات بعد ذلك إحضار البيانات من الجدول . ومن ثم إنشاء sheet جديد و إنشاء أسماء الأعمدة أولا ومن ثم إنشاء الصفوف الخاصة بالبيانات . وإذا أردت إدراج أعمدة معين في الملف يجب عليك إختيار تلك الأعمدة فقط عن الإستدعاء من قاعدة البيانات من خلال select للأعمدة فقط
- 12 اجابة
-
- 1
-
-
إن فترة إسبوعين ليست بالمدة الطويلة إذا كنت قد فهمت الأساسيات وقمت بالتطبيق فلا تقلق ستجد أنك ستتذكرهم بمجرد إستخدام المدرب لهم. ولكن إذا وجدت صعوبة في إستذكار درس معين يمكنك مراجعته هو فقط سريعا دون كتابة التمارين والأكواد مع المدرب إذا كنت قد قمت بذلك مسبقا . ويمكنك زيارة موقع موسوعة حسوب وهناك ستجد جميع الأساسيات مكتوبة ومشروحة بطريقة منظمة وسهلة إذا أردت أن تراجع سريعا يمكنك المراجعة من هناك وهذا هو الرابط : https://wiki.hsoub.com/Python
- 2 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . يجب عدم النظر حاليا للراتب فقط فمن الممكن أن تذهب لمجال مثل الذكاء الإصطناعي حيث توجد به أعلي الرواتب حاليا ولكنه من أصعب المجالات الموجودة وليس سهل بالمرة ويحتاج إلى التعلم الدائم لمواكبة التطورات السريعة التي تحدث وأيضا أن تكون لديك الخبرة الجيدة بالرياضيات الخطية وحبك لها . ولكن إذا مثلا ذهبت إلى مجال مثل تطوير تطبيقات الويب فالرواتب فيه متوسطة ولكن إذا كنت متميزا ولديك الخبرة الكبيرة فذلك سيساهم في زيادة دخلك بفرق كبير وأيضا ستتمكن من العمل الحر والتسويق لنفسك ووضع السعر الخاص بك والذي تري أنك تستحقة وأيضا ستتمكن من إختيار من الذى تريد العمل له ، ولذلك الأهم من الراتب هو المجال الذى تشعر أن لديك ميول له وتعرف أنك ستكون مميزا فيه. وبما أنك حاليا طالب في السنة الثانية فيجب عليك معرفة ما هو المجال الذى تحبه حاليا ويجب أن يكون أول سنيتن أو ثلاث في الكلية هي التي تجعلك تحدد المسار الذى تريد أن تكمل فيه وتري أنه مناسب لك حيث في أول ثلاث سنوات أو أول سنتين من المفترض أنك تأخذ جميع المواد التعليمية وذلك لتستطيع تحديد المجال الخاص الذى تريد العمل فيه . فإذا لم تستطع تحديد المجال الذى تريده حتي الآن فأنصحك بدورة علوم الحاسوب حيث هذه الدورة هي عبارة عن حجر الأساس ونُقطة الإنطلاق لتعلم أحد المجالات والتخصص فيه، يُفترض أنه بعد إنهائك لهذه الدورة وفهم دروسها بالكامل أن تجد سهولة في إحتراف المجال الذي يناسبك وتبدأ رحلتك فيه. مسألة إختيار المجال تتعلق بك وبسوق العمل الذي تريد أن تستهدفه. ويمكنك قراءة الإجابة التالية لتفاصيل أكثر حول دورة علوم الحاسب: وبعدها من الممكن أن تتجه لدورة الذكاء الإصطناعي إذا أردت العمل في مجال الذكاء الإصطناعي وتعلم الآلة ويمكنك قراءة الإجابات التالية لشرح أفضل لمجال الذكاء الإصطناعي والدورة : أما الدورات الأخري فيفضل قراءة الإجابات التالية :
- 3 اجابة
-
- 1
-
-
إن محتوي الدورات هو عبارة عن دروس مسجلة مسبقا بعدد ساعات معين وفي دروس مخصصة لكل مسار كما هو موضح في صفحة الدورة . ولا توجد حاليا أي دروس أونلاين أو مجموعات . ولكن ستجد العديد من المدربين المتاحين في جميع الأوقات، إذا ما إحتجت أي شئ سواء حدثت لديك مشكلة أو لم تفهم جزء معين أو أردت توضيح لأشياء أخري أو أي مساعدة كانت ، يمكنك التعليق أسفل الدرس مباشرة الذى تريد الإستفسار حوله حيث ستجد صندوق للتعليقات أسفل الدرس كما هنا وسيتم الرد عليك سريعا من المدربين المتاحين في هذا الوقت هنا في الأكاديمية.
-
ستجد أسفل الفيديو الخاص بالدرس صندوق للتعليقات كما هنا. من فضلك قم بوضع سؤالك أسفل الدرس هناك حيث هنا قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات وذلك لمساعدتك بشكل أفضل.
-
نعم هذا ما كنت أقصده و من الصورة يظهر أن الخطأ ليس في الملف بل هو في إضافة لديك في المتصفح يمكنك الضغط علي الزر التالي الذى أشرت إليك في الصورة : ستجد الإضافات التي لديك في المتصفح يمكنك إرسال صورة للإضافات أو البحث عن إضافة google translate يمكنك إلغاء تفعيلها وإذا إختفي الخطأ فالمشكلة في تلك الإضافة يمكنك حذفها وإعادة تثبيتها مرة أخري.
-
الخطأ ليس في ملف endex.js بل هذا الخطأ بسبب أنك تستدعي عنوان google translate بشكل خاطئ في ملف index.html . هذا الخطأ يخبرك أن الملف الذى تحاول إستعدائه ليس موجودا لديك على الجهاز . لذلك تأكد من الرابط تم كتابته بشكل صحيح في ملف index.html أو يمكنك إرسال صورة كاملة لملف index.html لإخبارك بمكان الخطأ. وإذا لم تكن تستعي عنوان google لديك في الملف وكان هذا الخطأ يظهر في جميع المواقع فهذا الخطأ بسبب إضافة لديك على المتصفح
- 9 اجابة
-
- 1
-
-
هيكل MVC (Model-View-Controller) هو نمط من أنماط التصميم الشهيرة وهو يُستخدم لتنظيم البرمجيات بشكل يجعلها أكثر قابلية للصيانة والتطوير. وهو يفصل بين البيانات، المنطق، والعرض في تطبيقات الويب. مفهوم الـ MVC Model (النموذج): يُمثل البيانات والتفاعل مع قاعدة البيانات. في حالة استخدام MongoDB، يكون النموذج هو الواجهة للتعامل مع البيانات المخزنة حيث يقوم بوصف جميع النماذج ومحتوياتها . View (العرض): يُمثل واجهة المستخدم التي تقوم بعرض البيانات في تطبيقات الويب تكون الواجهة عبارة عن صفحات HTML أو قوالب مثل EJS، Pug، أو Handlebars. Controller (التحكم): هو الحلقة الوسيطة التي تقوم بإدارة التفاعل والربط بين النموذج والعرض ويحتوي على المنطق الخاص بالطب حيث يتلقى طلبات المستخدم و يتعامل مع النماذج ثم يحدد الملفات المناسبة للعرض. هيكل المشروع يمكنكي تنظيم ملفات مشروعك على النحو التالي: my_App/ ├── models/ │ ├── postModel.js │ └── userModel.js ├── views/ │ ├── index.ejs │ └── layout.ejs ├── controllers/ │ ├── postController.js │ └── userController.js ├── routes/ │ ├── postRoutes.js │ └── userRoutes.js ├── public/ │ ├── styles/ │ └── scripts/ ├── app.js └── package.json وإليكي الأجوبة التالية ستاعدك لفهم MVC أكثر :
-
هل تقصد بحفظ كل ما يظهر في ال console في ملف أم ماذا ؟ وإذا كان كذلك فيجب حفظ النصوص في ملف text وليس .py . ومن الممكن أنك لم تقم بحفظ التعديلات الخاصة بالكود لذلك يرجي الضغط علي CTRL + S للتأكد من حفظ الملف وبعد ذلك يجب عليك تشغيل الملف عن طريق فتح cmd في مكان الملف ومن ثم كتابة الأمر التالي : python code.py وذلك لتنفيذ ملف code.py في ال cmd لديك