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

محمد_عاطف

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

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

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

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

    117

كل منشورات العضو محمد_عاطف

  1. الخطأ في ملف student.blade.php سطر 13 وليس create.blade.php . عموما الحل هو تبديل أخر سطر لديك في ملف web.php بالتالي : Route::get('/student.create', [StudentController::class, 'create'])->name('student-create');
  2. وعليكم السلام ورحمة الله وبركاته الخطأ لديك أنك تستخدم ال routing name دون أن تقوم بتعريفه . ستجد أنك تستخدم الدالة route('student-create') في ملف ال view دون أن تقوم بتعريف إسما لل route student-create في ملف web.php . لذلك يجب عليك إرسال ملف web.php وملف ال view الذى يحدث فيه المشكلة .
  3. عذرا كان يجب أيضا تغير كود الجافاكريبت حتي تظهر قيم حقول ال select وهذا هو الكود بعد التعديل : <script> const genderSelect = document.getElementById('gender'); const maleJobsDiv = document.getElementById('maleJobs'); const femaleJobsDiv = document.getElementById('femaleJobs'); genderSelect.addEventListener('change', function() { if (this.value === 'ذكر') { maleJobsDiv.style.display = 'block'; femaleJobsDiv.style.display = 'none'; } else if (this.value === 'أنثى') { maleJobsDiv.style.display = 'none'; femaleJobsDiv.style.display = 'block'; } else { maleJobsDiv.style.display = 'none'; femaleJobsDiv.style.display = 'none'; } }); </script> وتأكذ إذا قمت بتغير ال value في عناصر ال select قم بتغيرها في هذا الجظء أيضا بنفس الثمية تمام
  4. يمكنك تعير ذلك من خلال تغير الخاصية value في عنصر option بداخل select هكذا : <label for="gender">الجنس:</label> <select id="gender" name="gender"> <option value="">اختر الجنس</option> <option value="ذكر">ذكر</option> <option value="أنثى">أنثى</option> </select> هنا قمنا بتعير كلمة male في الخاصية value إلى ذكر و female إلى أنثى ويمكنك تغيرهم الى أي قيمة تريد . <div id="maleJobs" style="display: none;"> <label for="maleJob">الوظيفة (للذكور):</label> <select id="maleJob" name="maleJob"> <option value="">اختر الوظيفة</option> <option value="مهمدس">مهندس</option> <option value="طبيب">طبيب</option> <option value="مدرس">مدرس</option> </select> </div> <div id="femaleJobs" style="display: none;"> <label for="femaleJob">الوظيفة (للإناث):</label> <select id="femaleJob" name="femaleJob"> <option value="">اختر الوظيفة</option> <option value="ممرضه">ممرضة</option> <option value="مدرسة">مدرسة</option> <option value="مصممة">مصممة</option> </select> </div> وهنا أيضا قمنا بتغير الخاصية value إلى الفيمة التي تريدها ويمكنك تغيرها كيفما شئت
  5. مرحبا احمد . مما اتذكر انك مشترك في دورة php وهذه الدورة هي خاصة ببرمجة الواجهات الخلفية وفيها تقوم بتعلم برمجة نطبيقات متكاملة ب php واطار عمل لارافيل وايضا ستقوم بتعلم إنشاء واجهات API ولكن لن يتم إستدعائها في المشروع حيث هذه من وظائف مبرمج الواجهات الامامية . اما الدورات الخاصة بالواجهات الامامية مثل دورة تطوير التطبيقات باستخدام JavaScript ففي هذه الدورة ستتعلم تطوير وبرمجة الواجهات الامامية وكيفية استخدام واستدعاء ال API فى المشروع
  6. إذا المشكلة كما وضحت لك أنه تم عمل حفظ للبيانات chaching ويتم مسحها بعد مدة معينة من الممكن أن تكون عدة ساعات . الآن إذا لم تقم بإضافة الكود الذى أرفقته لك وقمت بإضافة بيانات في قاعدة البيانات في جدول الproperties ستجد أن البيانات الجديدة لا تظهر لأنه قام بعمل caching للبيانات القديمة . والكود الذى أرفقته لك يقوم بتجاهل حفظ ال chaching ويقوم بفرض إعادة إحضار البيانات الجديدة.
  7. ليس من الواجب فهم كل المواضيع الموجودة جميعها في موسوعة حاسوب أو أى مكان آخر يكفي فقط فقهم الأساسيات حيث كل شئ سيأتي بالخبرة والتدريب والعمل على المشاريع. إذا كنت مشترك في دورة غير دورة تطوير واجهات المستخدم ستجد أن أول مسار هو أساسيات html و css وهو متاح مجانا لأى شخص دون الإشتراك في الدورة . أما إذا كنت مشترك في دورة تطوير واجهات المستخدم يكفى مذاكرة أول مسار
  8. لقد قمت بتحميل الملف الذى ينتهي بإمتداد xlsx وهو يظهر بشكل جيد ومنظم في صفوف وأعمدة . أما في الفيديو المرفق يظهر أن جميع البيانات موضوعه في عمود واحد ومفصول بينها ب comma . يمكنكي إتباع الحل التالي لفصل العمود إلى عدة أعمدة بناء على الفاصلة comma. أولا قومي بتحديد العمود كاملا . ومن الذهاب إلي خانة Data ثم إختيار Text to Columns . بعد ذلك ستظهر نافذة نختار منها Delimited ثم نظغط next . بعد ذلك نختار نوع الفصل وفي حالتنا تلك نختار comma فقط . وفي هذه الخطوة في الأسفل ستجدين شكل الملف بعد الفصل . اآن نختار next ومن ثم نختار general وبعد ذلك نظغط finish . وهكذا سيتم فصل العمود إلى عدة اعمدة لديكي . ويفضل تحميل الملف بصيغة xlsx أفضل حيث أن الملف مساحته كبيرة يحتوي على بيانات كثيرة والحل السابق من الممكن أن يأخذ وقتا كثيرا في فصل العمود .
  9. وعليكم السلام ورحمة الله وبركاته . أعتقد أن الخطأ هو في عملية ال chach حيث يقوم nextjs بعمل caching عند إستدعاء ال api بإستخدام fetch . ولحل تلك المشكلة نضيف revalidate هكذا : async function fetchProperties() { try { const res = await fetch(`${process.env.NEXT_PUBLIC_API_DOMAIN}/properties`,{ next: { revalidate: 10 } }) if (!res.ok) { throw new Error('Failed to fetch data') } return res.json() } catch (error) { console.log(error) } } وهكذا نقوم بجعل next بحذف ال chache بعد 10 ثواني . ومن المفترض أن هذا يحل تلك المشكلة .
  10. وعليكم السلام ورحمة الله وبركاته . ال Token based authentication هو نهج شائع لحماية تطبيقات الويب حيث يعتمد على استخدام توكن (Token) لتأكيد هوية المستخدم بدلاً من الاعتماد المستمر على تحقق بيانات الدخول مع كل طلب. تساعد هذه التقنية في تحسين أداء التطبيق وتخفيف الحمل على الخادم بالاستفادة من معلومات الهوية الموجودة في التوكن المصادق عليه. الآلية التقليدية لل Token based authentication تعمل بالطريقة التالية: تسجيل الدخول: المستخدم يقوم بإدخال بيانات الاعتماد (اسم المستخدم وكلمة المرور). التحقق من الاعتماد: يتم التحقق من صحة بيانات الدخول. إذا كانت صحيحة، يتم إنشاء وإرجاع توكن (Token). إرسال ال token: token يتم إرساله إلى العميل (المتصفح أو التطبيق). استخدام ال token: العميل يقوم بإرفاق الtokenفي كل طلب يقوم به إلى الخادم. الآن نأتي لسؤالك الأساسى وهو الإكتفاء فقط بالتحقق الأولي بعدها ندع المستخدم يرسل الطلبات بدون التحقق منها مادام أنه لم يقم بتسجيل الخروج . هذا سؤال جيد ولكن يوجد سؤال لك كيف سنعرف أن هذا المستخدم هو من يقوم بإرسال الطلبات في كل مرة ؟؟ كيف سترسل المعلومات ؟ ستقول مثلا أنه يتم وضعها في ال session إذا أى شخص يستطيع وضعها في ال session فمن الممكن أنني أعرف أن الحساب بك هو test@test.com إذا سأقوم بوضعها في ال session وأنتحل شخصيتك ولن يفرق الخادم بيننا . حيث أنه في ال token يتم تشفيره برقم سرى في الخادم وحين يتم إرجاع ال token فك تشفيره بكلمة السر هذه ولو تم تشفير ال token بكلمة سر خاطئة فلن يتم إستكمال الطلب وهذا يجعل مستحيل إنتحال شخصية ال token إلا عن طريقة سرقة ال token نفسه من الشخص ولكن غير ذلك فمن المستحيل إنتحال شخصية شخص عن طريق ال token.
  11. هذا ملف StudentController.php : <?php namespace App\Http\Controllers; use App\Models\student; use Illuminate\Http\Request; class StudentController extends Controller { /** * Display a listing of the resource. */ public function index() { // $students = student::all(); return view('student', compact('students')); } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(Request $request) { // } /** * Display the specified resource. */ public function show(student $student) { // } /** * Show the form for editing the specified resource. */ public function edit(student $student) { // } /** * Update the specified resource in storage. */ public function update(Request $request, student $student) { // } /** * Remove the specified resource from storage. */ public function destroy(student $student) { // } } وهذا ملف web.php : <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\StudentController; Route::get('/', function () { return view('welcome'); }); Route::get('/student',[StudentController::class, 'index']);
  12. لاحظ أن الخطأ من الأساس في ملف web.php . حيث أنك لم ترسل العنوان إلى StudentController . يجب أن يكون الكود كالتالي : use Illuminate\Support\Facades\Route; use App\Http\Controllers\StudentController; Route::get('/', function () { return view('welcome'); }); Route::get('/student',[StudentController::class, 'index']); وقم بحذف سطر dd الذى قمنا بكتابته في ملف StudentController
  13. إذا هناك مشكلة في ملف web.php حيث يتم توجيه العنوان إلى مكان أخر غير StudentController قم بتنفيذ الأمر التالي : php artisan optimize:clear والمحاولة مرة أخري و إذا ما زالت المشكلة موجودة فيجب إرفاق مجلد المشروع
  14. إذا أعتقد ان الكود لا يدخل في StudentController . قم بإضافة سطر dd في دالة index هكذا : public function index() { // $students = student::all(); dd($students); return view('student.index', compact('students')); } وأخبرني بالنتيجة
  15. هل تم حل الخطأ أ, تغير الخطأ إلى خطأ آخر ؟ وأيضا هل قمت بإستيراد النموذج student أم هذا هو كود ملف ال controller كاملا ؟
  16. الخطأ أنك تقوم بإستخدام نفس المتغير في حلقة foreach وهذا خطأ حيث أن foreach لن تعرف أي متغير تقصده وتريد إستخدامه . ولحل تلك المشكلة نتبع الخطوات التالية : أولا يجب عليك تمرير المتغير من ال controlles بإسم students هكذا : $students = student:all(); return view('student.index',compact('students')); وفي ملف ال blade يكون كالتالي : @foreach ($students as $student)
  17. هل يمكنك إرسال صورة لتنفيذك للملف ؟ إذا كنت قد قمت بتنفيذ الأمر سابقا و بعد ذلك أضفت الأعمدة إلى نفس الملف فلن يتم إضافة أي شئ لأنه قد تم تسجيل أن هذا الملف تم تشغيله . يمكنك إستعمال الأمر التالي ولكن إحذر فهذا الأمر سيقوم بحذف قاعدة البيانات كاملة و إنشاءها من جديد مع حذف جميع البيانات بها . php artisan migrate:fresh أو يمكنك إنشاء ملف جديد وتقوم بوضع الأعمدة فيه وتنفيذ أمر migrate فقط
  18. يمكنك تنفيذ أمر migration كالتالي : php artisan migrate وذلك الأمر لتنفيذ ملفات ال migrations . ومن فضلك يفضل جعل كل سؤال منفصل عن الأخر وذلك لمساعدتك بشكل أفضل وحتي يستفاد الطلاب الأخرون أيضا من الإجابات
  19. يجب أن يكون السطر 10 كالتالي : Route::resource('student', StudentController::class); وتأكد من أن StudentController هو الإسم الصحيح للملف وإذا ما زال الخطأ موجود فأرسل صورة صفحة الخطأ كاملة
  20. الخطأ أنك تحاول إستخدام StudentController وهو غير موجود . وأعتقد أن الخطأ في ملف web.php حيث أنك قمت بتعريف المسار ووضعت له ال StudentController دون أن تقوم بإستدعاءه بواسطة use . من فضلك أرسل صورة المسار في ملف web.php وأيضا صورة صفحة الخطأ كاملة لنري أين المشكلة تحديدا .
  21. ستجد أسفل الدرس صندوق للتعليقات يمكنك التعليق هناك أسفل الدرس حيث هنا هو قسم الأسئلة العامة ولا نقوم بإجابة أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل
  22. وعليكم السلام ورحمة الله وبركاته . الأمر بسيط يمكنك مباشرة وضع القيمة في الصفحة التي تقوم بعرض ال form بها هكذا : <label for="gender">الجنس:</label> <select id="gender" name="gender"> <option value="10">ذكر</option> <option value="5">أنثى</option> </select> وهنا عند إرسال الطلب للخادم ستجد القيمة مباشرة في حقل gender ويمكنك وضعها مباشرة في قاعدة البيانات $gender = $_POST['gender']; هكذا ستجد أن المتغير gender سيحوي على القيمة 5 إذا إختار أنثي و10 إذا إختار ذكر
  23. ستجد أسفل الدرس صندوق للتعليقات يمكنك كتابة سؤالك هناك حيث هنا هو قسم الأسئلة العامة وذلك لمساعدتك بشكل أفضل.
  24. نحن هنا في موقع الأكاديمية لا نقوم بإجابة أسئلة الإختبارات ولكن يمكننا إعطائك الفكرة العامة ويمكنك تطبيقها وإخبارنا بالنتيجة . أولا يجب عليك إنشاء دالة والتي تقوم بأخذ مصفوفة و عدد العناصر في تلك المصفوفة وترتيب العنصر الحالي . وبداخل الدالة نقوم أولا بالتحقق من ترتيب العنصر الحالي يساوي عدد العناصر -1 حيث نريد أن نتحقق هل العنصر هو أخر رقم في المصفوفة أم لا وهذا هو شرط إيقاف ال recursion وإذا تحقق الشرط نقوم بإرجاع هذا العنصر . وبعد ذلك نستدعي الدالة مرة أخري وهذا هو ال recursion ولكن نقوم الآن بتمرير جميع المعاملات السابقة عدي العنصر الحالي نقوم بزيادته ب 1 حتي ننتقل للعنصر الذى يليه ونضعه في متغير. وأخيرا نقوم بإستدعاء الدالة max ونقارن بين المتغير السابق الذى يتم إرجاعه من ال recursion وبين العنصر الحالي . وهكذا سيتم المقارنة بال recursion وستبدا من العنصر الأخير والذى يسبقه وهكذا حتي نصل إلى بداية المصفوفة وبعد أخر تنفيذ لدالة ال recursion سيكون لدينا اكبر رقم في المصفوفة.
  25. بيانات الصور تعبر عن مجموعة الصور التي يتم استخدامها في سياق معين سواء كانت تحتوي على تسميات labeled لا unlabeled حيث أنه من الممكن أن تكون هناك صورة labeled و اخري لا unlabeled . الصور المسماة (labeled data): تتضمن صورا مع وجود تسميات أو علامات توضح محتوى الصور مثل تسميات لأجسام مختلفة في الصور مثل أشخاص أوحياوانات أو تصنيف لنوع الصورة (مثلاً: صورة لسيارة أو لشخص). بيانات الصور غير المسماة (unlabeled data): تشير إلى صور لا تحتوي على تسميات أو علامات وعادة ما تستخدم لأغراض التدريب على النماذج التي تعتمد على تعلم غير مشرف (unsupervised learning). في هذه الحالة، الهدف غالبا هو اكتشاف النماذج أو الهياكل في البيانات بدون وجود تسميات مسبقة. لذالك عندما نتحدث عن بيانات الصور يمكن أن تكون إما مسماة (labeled) إذا كانت تحتوي على تسميات أو غير مسماة (unlabeled) إذا كانت بدون تسميات.
×
×
  • أضف...