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

محمد عاطف17

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

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

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

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

    29

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

  1. نعم في ال value . إذا كنت تضع إسم الصورة القديم يجب وضع الجديد بدلا منه
  2. نعم ستظهر مختلفة لذلك يجب وضع $new_name في قاعدة البيانات حيث يحوي $new_name علي إسم الصورة الجديد. وهذا هو المتغير $new_name لذلك يجب وضعه في السطر الذي يتم فيه إدخال البيانات في قاعدة البيانات
  3. يوجد خطأ بسيط فقد تم نسيان وضع علامة النقطة قبل ال extension الخاصة بالملف . ليصبح الكود كالتالي : if ($_SERVER["REQUEST_METHOD"] == "POST") { $ty = htmlspecialchars($_POST["ty"], ENT_QUOTES, 'UTF-8'); $targetDir = "GOOD/"; $uploadOk = 1; if ($ty == "نعم" && isset($_FILES["fil"]) && $_FILES["fil"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fil"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fil"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fil"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . "." . $ext; if (move_uploaded_file($_FILES["fil"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fil = basename($_FILES["fil"]["name"]); } } } elseif ($ty == "لا" && isset($_FILES["fil"]) && $_FILES["fil"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fil"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fil"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fil"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . "." . $ext; if (move_uploaded_file($_FILES["fil"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fil = basename($_FILES["fil"]["name"]); } } } } if ($_SERVER["REQUEST_METHOD"] == "POST") { $y = htmlspecialchars($_POST["y"], ENT_QUOTES, 'UTF-8'); $targetDir = "GOOD/"; $uploadOk = 1; if ($y == "انثى" && isset($_FILES["fi"]) && $_FILES["fi"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fi"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fi"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fi"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . "." . $ext; if (move_uploaded_file($_FILES["fi"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fi = basename($_FILES["fi"]["name"]); } } } elseif ($y == "ذكر" && isset($_FILES["fi"]) && $_FILES["fi"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fi"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fi"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fi"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . "." . $ext; if (move_uploaded_file($_FILES["fi"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fi = basename($_FILES["fi"]["name"]); } } } } حيث كان من المفترض علي المتغير $ext أن يحتوي على رمز النقطه ولكن يبدوا أنه لم يتم وضعها . وهذا هو السطر الذي تم تعديله. $new_name = time() . uniqid(rand()) . "." . $ext;
  4. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل. وإذا لم يكن هذا سؤال خاص بالدورات فيرجي توضيح الخطأ أكثر.
  5. يمكنك إستخدام الكود التالي : if ($_SERVER["REQUEST_METHOD"] == "POST") { $ty = htmlspecialchars($_POST["ty"], ENT_QUOTES, 'UTF-8'); $targetDir = "GOOD/"; $uploadOk = 1; if ($ty == "نعم" && isset($_FILES["fil"]) && $_FILES["fil"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fil"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fil"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fil"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . $ext; if (move_uploaded_file($_FILES["file3"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fil = basename($_FILES["fil"]["name"]); } } } elseif ($ty == "لا" && isset($_FILES["fil"]) && $_FILES["fil"]['size'] > 0) { $targetFile = $targetDir . basename($_FILES["fil"]["name"]); $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); if ($_FILES["fil"]["size"] > 0.5 * MB) { $errorMsg .= "\nعذراً، حجم الملف كبير جداً."; $uploadOk = 0; $error = true; } $ext = pathinfo($_FILES["fil"]["name"], PATHINFO_EXTENSION); if (!in_array($ext, $extensions)) { $errorMsg .= "\nالملف ليس صورة."; $uploadOk = 0; $error = true; } if ($uploadOk == 1) { $new_name = time() . uniqid(rand()) . $ext; if (move_uploaded_file($_FILES["fil"]["tmp_name"], $targetDir . $new_name)) { echo "تم رفع الملف "; $fil = basename($_FILES["fil"]["name"]); } } } } وإذا كنت تضع إسم الصورة في قاعدة البيانات فيجب أخذ المتغير $new_name حيث هو إسم الصورة الجديد الذي يجب وضعه في قاعدة البيانات.
  6. نعم يجب أن يكون تلقائي مثل الكود الذي أرفقته لك في البداية وليس المتقدم هو من يغير الإسم حيث لن يعرف المتقدم ما هي الملفات التي لديك علي السيرفر . فلنفرض مثلا أن المجلد الذي تقوم برفع الصور فيه يسمي images . وقام متقدم أول برفع صورة تسمي ahmed.png و بعد ذلك جاء متقدم أخر وقام برفع صورة تسمى أيضا ahmed.png إذا لم يتم تغير إسم الصورة من خلال الكود سيتم حذف الصورة القديمة الخاصة بالمتقدم الأول ووضع مكانها صورة المتقدم الثاني . ولكن عند تغير الإسم ستكون صورة المتقدم الأول مثل 66bba0ba904df.png حيث تم تغير الإسم تلقائيا بإسم فريد وبهذا كل متقدم يقوم برفع الصور سيتم تغير إسمها تلقائيا.
  7. لن يتم حذها طالما لم يتم رفع صورة لها نفس الإسم . لذلك يرجى التأكد من تغير إسم أى صورة تم رفعها حتى لا تحدث تلك المشكلة . ولا يمكن حل تلك المشكلة حيث هذا هو طريقة عمل نظام التشغيل . لا يمكن أن يوجد ملفين في نفس المكان ولهما نفس الإسم . ولذلك إذا تأكدت من تغير إسم الصور إلى إسم فريد فلن تحدث تلك المشكلة لديك.
  8. الأمر بسيط كل ما عليك هو تغير إسم الصورة إلي إسم فريد قبل رفعها حيث حين يتم رفع أي ملفات وتوجد ملفات بنفس الإسم يتم الكتابة علي الملفات القديمة أي يتم مسح الملفات القديمة ووضع الملف الجديد بنفس الإسم . ويمكنك إستخدام الدالة uniqid لتحقيق ذلك . وهذا كود بسيط لتوضيح الأمور: $imagePath = '/image/'; $new_name=time().uniqid(rand()); $filename = $_FILES["img"]["tmp_name"]; $ext = end((explode(".", $$_FILES["file"]["name"]))); $destFile = $imagePath . $new_name . $ext; move_uploaded_file($filename, $destFile); هنا قمنا بتغير إسم الصورة إلي إسم فريد مع الإحتفاظ بالإمتداد الخاص بها .
  9. هذا هو الكود : $sql=mysqli_query($con,"select * from in_1 where id = '$search_file' or name='$search_file'); لا يمكنني مساعدتك دون معرفة كيف تقوم بتسجيل الدخول و كيف تقوم بحفظ بيانات المستخدم الحالي . يمكنك إرسال دالة تسجيل الدخول لديك
  10. لم أفهم ماذا تقصد . هل تقصد عند محاولة الأدمن الحذف فيقوم بالحذف وبعد ذلك يذهب إلي صفحة الجدول . و أما المستخدم حين يحاول الحذف يقوم بالحذف ومن ثم يذهب إلي صفحة ال form ؟ إذا كان كذلك فنعم كودك صحيح كل ما عليك هو كتابة شرط و بحسب الشرط تقوم بالتوجيه فإذا وجدت أن المستخدم الحالي هو أدمن تقوم بالتوجيه إلي صفحة الجدول و إلا فقم التحويل إلي ال form
  11. نعم بالطبع يمكنك إستخدامه في أي مكان ويمكنك إستبدال الجدول الذي تقوم بالحذف منه . وايضا سطر ال header . إن سطر ال header هو فقط مسؤول عن إعادة توجيهك بعد الحذف فنعم يمكنك إعادة التوجيه لأي صفحة تريدها.
  12. وعليكم السلام ورحمة الله وبركاته. نعتذر على ذلك في حال كان لديك إضافة adblock فغالبًا ذلك سبب المشكلة، استخدم uBlock Origin فتلك الإضافة لا تسبب مشكلة. ثم يجب عليك إعادة تحديث الصفحة بالضغط على CTRL + F5 من أجل حذف الملفات المؤقتة. إن استمرت المشكلة فيرجى تجربة تحميل وتثبيت Cloudflare WARP فهو بمثابة طبقة وسيطة مثل الـ VPN من خلال شبكة Cloudflare وبعد التثبيت قم بتشغيل التطبيق بالضغط على زر الإتصال مباشرًة وتفقد الدروس مرة أخرى. https://install.appcenter.ms/orgs/cloudflare/apps/1.1.1.1-windows-1/distribution_groups/release وذلك لتفقد هل يوجد مشكلة بالإنترنت أم لا.
  13. إذا كانت أكواد الموقع لديك علي الجهاز أو كان يمكنك تحميلها علي الجهاز فيمكنك فتح مجلد الموقع بداخل ال IDE الذي تستخدمه وإذا لم تكن تستخدم IDE فيفضل إستخدام vc code فهو IDE متطور وتوجد به العديد من الإضافات التي تساعدك في تطوير وكتابة أكواد موقعك . بعد فتح ال IDE يمكنك البحث في جميع ملفات المجلد عن طريق الضغط عليى CTRL + SHIFT + F وبعد ذلك كتابة الرابط الذي تبحث عنه أو تحديد ال class الذي يحتويه العنصر و البحث به وستجد جميع الملفات الذي يوجد به هذا الرابط. إذا لم تكن أكواد الموقع متاحة علي جهازك يمكنك إستخدام ssh وهي خدمة توفرها الإستضافات للوصول إلي موجه الأوامر الخاص بموقعك . بعد الوصول لموجه الأوامر قم بالذهاب لمجلد public_html والذي توجد به ملفات موقعك و بعد ذلك قم بتنفيذ الأمر التالي : grep -ir "النص" * ويمكنك إستبدال النص بالكلمة التي تريد البحث عنها وستظهر لك جميع الملفات التي يوجد بها تلك الكلمة . ولكن إنتبه إذا كانت الملفات كثيرة فمن الممكن أن يأخذ هذا الأمر الكثير من الوقت في البحث. وأفضل طريقة هي تتبع الملفات حيث قم بالذهاب إلي الملف الرئيسي الذي يتم عرضه في المتصفح وقم بالبحث بداخله و قم بفتح أي ملف يتم إستخدامه من خلال include و قم بالبحث بداخله .
  14. وعليكم السلام ورحمة الله وبركاته . للأسف لا يوجد theme هنا في الأكاديمية للوضع الداكن حاليا. ولكن توجد طريقة لجعل جميع المواقع لديك إذا كنت تستخدم chrome تتحول للوضع الداكن . أولا يجب عليك تفعيل الوضع الداكن في الويندوز لديك من خلال الدخول علي الإعدادات والبحث عن dark : بعد ذلك قم بتغير الوضع إلي الداكن dark : بعد ذلك في chrom قم بالذهاب إلي الرابط التالي : chrome://flags/#enable-force-dark إذا لم يعمل الرابط قم بنسخه ولصقه لديك في المتصفح. بعد ذلك قم بإختيار Enabled في Auto Dark Mode for Web Contents : وقم بإعادة تشغيل المتصفح وستجد الآن جميع المواقع وإن لم تكن تدعم ال dark mode ستجدها تم تحويلها تلقائيا إلى الوضع الداكن.
  15. في بايثون، None هو نوع بيانات يمثل القيمة "العدمية أي غير موجودة" أو "الفارغة". يمكن اعتبارها بمثابة مفهوم يشير إلى عدم وجود قيمة معينة. تستخدم None في بايثون في عدة حالات منها: تعيين القيم الافتراضية: يمكن استخدام None كقيمة افتراضية للمعاملات في الدوال للإشارة إلى أن المعامل لم يتم تحديده بعد. def test(param=None): if param is None: print("No value provided") else: print(f"Value provided: {param}") التحقق من القيم غير المعينة: يُستخدم None للتحقق من عدم تعيين متغير أو عدم وجود قيمة. if var is None: print("var has no value") إرجاع القيم من الدوال: قد يتم إرجاع None للدوال في حالة عدم وجود قيمة يمكن إرجاعها. def find(items, target): for item in items: if item == target: return item return None # إذا لم يُعثر على العنصر إزالة القيم: يمكن إعادة تعين القيم ك None للمتغير كوسيلة لإلغاء تعيينه أو لإزالة قيمته. var = 5 var = None # الآن لا يحتوي على قيمة تلخيصا لما سبق None هو وسيلة في بايثون للتعبير عن عدم وجود قيمة معينة مثل الفراغ ليس موجودا
  16. لا سيتوجب في كل مرة تفعيل البيئة الإفتراضية و يجب عليك الملاحظه أن التفعيل يكون فقط في ال cmd الحالي . حيث إذا فعلت البيئة الإفتراضية في cmd في المشروع وقمت بفتح cmd جديد في نفس المشروع فالبيئة الإفتراضية لن تكون مفعلة في هذا ال cmd لذلك يجب عليك الإنتباه لهذا الأمر . ويجب عليك الإنتباه إلي وجود إسم البيئة قبل المسار هكذا : فإذا لم يكن موجود إسم البيئة فهي ليست مفعله في ال cmd الحالي وأي أمر سيتم تنفيذه علي جهازك مباشرة.
  17. وعليكم السلام ورحمة الله وبركاته . لا البيئة الإفتراضية منفصله تمام عن المكتبات التي لديك علي الجهاز حيث هذا هو أساس عمل البيئة الإفتراضية وهو عزل المشاريع والبيئات عن بعضها البعض . إذا قمت بحذف المكتبة بينما يتم تفعيل البيئة الإفتراضية سيتم حذفها فقط من البيئة الإفتراضية أما إذا لم تكن البيئة الإفتراضية مفعلة فسيتم حذفها فقط من الجهاز. ويمكنك إستخدام الأمر التالي للتحقق من المكتبات لديك : pip list إذا لم تكن مفعل البيئة الإفتراضية فالأمر السابق سيظهر المكتبات علي جهازك الرئيسي . أما إذا كنت مفعل البيئة الإفتراضية فستظهر لك المكتبات المثبته في البيئة الإفتراضية.
  18. ستجد إسفل الدرس صندوق خاص بالتعليقات كما هنا من فضلك يرجى طرح سؤالك هناك أسفل الدرس حيث هنا هو قسم الأسئلة العامة حيث لا نقوم بطرح الأسئلة الخاصة بالدورات هنا وذلك لمساعدتك بشكل أفضل.
  19. حسنا لا بئس ولكن الأفضل كما أخبرتك يمكنك حذف مجلد Heart الخاص بالبيئة الإفتراضية وإنشاءه مجددا من خلال إسم venv كالتالي : python -m venv venv venv\Scripts\activate أو يمكنك فقط تغير إسم المجلد الرئيسي أو لا بئس يمكنك تركه كما هو.
  20. لا في الملف الرئيسي حيث يكون بجوار مجلد البيئة الإفتراضية . لا يجب إنشاء أي ملفات بداخل مجلد البيئة الإفتراضية حتي لا تحدث أي مشاكل . يعني لو أنشأت ملف مثلا test.py يكون هيكل الملفات كالتالي : Heart | Heart | test.py حيث Heart هو المجلد الرئيسي وبداخله ملجد Heart الخاص بالبيئة الإفترضية و ملف test.py بداخل المجلد الرئيسي وبجوار مجلد البيئة . ومن الأفضل تسمية مجلد البيئة venv أو أي إسم أخر غير إسم المجلد الرئيسي
  21. وعليكم السلام ورحمة الله وبركاته . الأمر بسيط فقط ستقوم بإنشاء الملفات بإمتداد py. في vs code وبعد ذلك تقوم بكتابة الأكواد بداخل الملف الذي أنشأته وتقوم بتشغيله عن طريق كتابة python وبعده إسم الملف بالإمتداد .py python test.py ستلاحظ في القائمة التي علي يسار البرنامج والتي يوجد بها ملفات . ستجد زر لإنشاء ملف وهو الذى في اليسار و زر لإنشاء مجلد وهو الذي قبل الزر الخاص بإنشاء ملف. فقط تقوم بالضغط علي الزر وكتابة إسم الملف وكتابة الأكواد بداخل الملف.
  22. لا شكر على واجب . يمكنك متابعة الدعم من خلال الرابط التالي حيث الأمور المالية تلك مع الدعم الخاص بالأكاديمية هنا وسوف يساعدونك في هذا إن شاء الله : https://support.academy.hsoub.com/conversations
  23. وعليكم السلام ورحمة الله وبركاته . إذا كان صديقك إشترى لك بطاقة الهدايا يمكنك إتباع التعليمات في الرابط التالي : https://support.academy.hsoub.com/how-to-use-gift-card وإذا لم يكن قد إشترى البطاقة بعد يمكنك إتباع التعليمات التي في الرابط التالي لكيفية شراء البطاقة : https://support.academy.hsoub.com/how-to-buy-gift-card
  24. ليس مطلوب أي شئ يمكنك الآن كتابة شيفرات بايثون دون أي مشاكل فقط قم بالضغط بداخل النافذة حتي يظهر المؤشر ويمكنك البدأ بالكتابة . إذا كان هذا السؤال خاص بدرس في دورة من الدورات . ستجد أسفل الدرس صندوق للتعليقات كما هنا يرجي وضع سؤالك هناك حيث هنا هو قسم الأسئلة العامة ولا نجيب علي أسئلة الدورات هنا وذلك لمساعدتك بشكل أفضل.
  25. وعليكم السلام ورحمة الله وبركاته . يفضل إستخدام جافاسكريبت لتنفيذ ذلك حتي لا تقوم بتأخير الخادم ثانيتين في كل طلب مما يزيد من إستهلاك موارد الخادم. ولذلك نقوم بإرسال الملف كاملا من الخادم والتحكم في إظهار الرسالة من خلال جافاسكريبت : <!DOCTYPE html> <html> <head> <script> function showMessage() { document.getElementById("firstMessage").innerText = "<?php echo "تم بنجاح" ?>"; // تأخير عرض الرسالة الثانية setTimeout(function() { document.getElementById("secondMessage").innerText = "<?php echo "أهلا وسهلا" ?>"; }, 2000); } </script> </head> <body> <div id="firstMessage"></div> <div id="secondMessage"></div> <script> showMessage(); </script> </body> </html> هكذا الدالة showMessage هي المسؤولة عن إظهار الرسائل بعد إحضارها من الخادم .
×
×
  • أضف...