لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 04/29/25 في كل الموقع
-
السلام عليكم هل يتعين على مطور باك اند (laravel, nodejs) أن يتعلم odoo أم أن هذا ليس من اختصاصه؟3 نقاط
-
السلام عليكم الاخوة الكرام ارغب بالمساعدة في كتابة كود امن لاستعادة كلمة المرور للاعضاء عن طريق البريد الالكتروني2 نقاط
-
2 نقاط
-
سلام عليكم أنا الآن بدأت في الكورس الذكاء الإصطناعي الخاص بأكاديمية حسوب وأنا أريد خطة دراسية جيدة لهذا الكورس حتى لا يحدث لي تشتت او عدم تركيز في بعض المسارات وكيفية الدراسة اليومية له أريد أن أخرج من هذا الكورس بقاعدة معرفية جيدة تحياتي2 نقاط
-
2 نقاط
-
الفكرة كالتالي، ستطلب من المستخدم إدخال بريده الإلكتروني المرتبط بالحساب ولو البريد الإلكتروني موجود في قاعدة البيانات، قم بإنشاء رمز وهو Token فريد ومؤقت ثم إرسال رابط إلى البريد الإلكتروني يحتوي على الرمز الفريد. وعند النقر على الرابط، اسمح للمستخدم بتعيين كلمة مرور جديدة. لذا قاعدة البيانات يجب أن تحتوي على جدول لتخزين الرموز المؤقتة associated مع المستخدم ووقت الانتهاء: CREATE TABLE password_resets ( id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(255) NOT NULL, token VARCHAR(255) NOT NULL, expires_at DATETIME NOT NULL ); ونموذج طلب إعادة التعيين: <form action="request_reset.php" method="POST"> <input type="email" name="email" required placeholder="أدخل بريدك الإلكتروني"> <button type="submit">استعادة كلمة المرور</button> </form> ثم تثبيت مكتبة PHPMailer: composer require phpmailer/phpmailer ثم إنشاء منطق وإرسال رمز إعادة التعيين من خلال ملف وليكن باسم request_reset.php: <?php require 'vendor/autoload.php'; require 'db.php'; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; if ($_SERVER["REQUEST_METHOD"] == "POST") { $email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL); $stmt = $pdo->prepare("SELECT id FROM users WHERE email = ?"); $stmt->execute([$email]); if ($stmt->rowCount() > 0) { $token = bin2hex(random_bytes(32)); $expires = date("Y-m-d H:i:s", strtotime('+1 hour')); $stmt = $pdo->prepare("INSERT INTO password_resets (email, token, expires_at) VALUES (?, ?, ?)"); $stmt->execute([$email, $token, $expires]); $reset_link = "https://mustafa.com/reset_password.php?token=$token"; $mail = new PHPMailer(true); try { $mail->isSMTP(); $mail->Host = 'smtp.yourmailserver.com'; $mail->SMTPAuth = true; $mail->Username = 'ضع الإيميل هنا@yourdomain.com'; $mail->Password = 'الباسورد هنا'; $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 587; $mail->setFrom('no-reply@yourdomain.com', 'Support'); $mail->addAddress($email); $mail->isHTML(true); $mail->Subject = 'إعادة تعيين كلمة المرور'; $mail->Body = "لقد طلبت إعادة تعيين كلمة المرور. اضغط على الرابط التالي:<br><a href='$reset_link'>$reset_link</a><br>إذا لم تطلب ذلك، تجاهل الرسالة."; $mail->send(); echo "تم إرسال رابط استعادة كلمة المرور إلى بريدك الإلكتروني إذا كان موجودًا في النظام."; } catch (Exception $e) { echo "حدث خطأ أثناء إرسال البريد الإلكتروني."; } } else { echo "تم إرسال رابط استعادة كلمة المرور إلى بريدك الإلكتروني إذا كان موجودًا في النظام."; } } ?> ثم ملف إعادة تعيين كلمة المرور reset_password.php: <?php if (!isset($_GET['token'])) exit('رمز غير صالح!'); $token = $_GET['token']; require 'db.php'; $stmt = $pdo->prepare("SELECT email FROM password_resets WHERE token = ? AND expires_at > NOW()"); $stmt->execute([$token]); $user = $stmt->fetch(); if (!$user) exit('الرابط غير صالح أو انتهت صلاحيته!'); if ($_SERVER["REQUEST_METHOD"] == "POST") { $new_password = $_POST["password"]; $hashed = password_hash($new_password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("UPDATE users SET password = ? WHERE email = ?"); $stmt->execute([$hashed, $user['email']]); $stmt = $pdo->prepare("DELETE FROM password_resets WHERE email = ?"); $stmt->execute([$user['email']]); echo "تم تحديث كلمة المرور بنجاح!"; exit; } ?> <form method="POST"> <input type="password" name="password" required placeholder="كلمة المرور الجديدة"> <button type="submit">إعادة تعيين كلمة المرور</button> </form> لاحظ password_hash وpassword_verify لحفظ والتحقق من كلمة المرور، والأفضل تحديد صلاحية رمز إعادة التعيين لمدة محدودة مثلاً ساعة واحدة، ولا يجب توضيح هل البريد متوفر أم لا في الاستجابة لتجنب هجمات التخمين. أيضًا لمنع هجمات إعادة الإرسال، احذف الرمز بعد استخدامه مباشرة.1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. أولا يجب عليك إنشاء جدول في قاعدة البيانات ليحوي رمز إعادة تعين كلمة المرور . ولنقوم بتسمية الجدول بإسم password_resets وهذا هو إستعلام إنشاء الجدول : CREATE TABLE password_resets ( email VARCHAR(255) NOT NULL, token VARCHAR(255) NOT NULL, expires_at DATETIME NOT NULL ); هنا في جدول نقوم بحفظ البريد الإلكتروني و ال token الخاص بإعادة التعين . وتاريخ الإنتهاء الخاص بالرمز token. ولنقوم بإنشاء صفحة لطلب إعادة تعين كلمة المرور وليكن إسم الملف هو request_reset.php: <?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'vendor/autoload.php'; if ($_SERVER["REQUEST_METHOD"] == "POST") { $email = $_POST['email']; $pdo = new PDO("mysql:host=localhost;dbname=databasename", "username", "password"); $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]); if ($stmt->rowCount() > 0) { $token = bin2hex(random_bytes(32)); $expires = date("Y-m-d H:i:s", time() + 3600); // تاريخ الصلاحية هو ساعة واحدة // حذف أي رمز سابق موجود $pdo->prepare("DELETE FROM password_resets WHERE email = ?")->execute([$email]); $stmt = $pdo->prepare("INSERT INTO password_resets (email, token, expires_at) VALUES (?, ?, ?)"); $stmt->execute([$email, $token, $expires]); // أرسل البريد الإلكتروني $resetLink = "https://yourdomain.com/reset_password.php?token=$token"; $mail = new PHPMailer(true); try { // إعدادات SMTP $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'your_email@gmail.com'; $mail->Password = 'your_app_password'; // كلمة مرور التطبيق $mail->SMTPSecure = 'tls'; $mail->Port = 587; // تفاصيل الرسالة $mail->setFrom('your_email@gmail.com', 'اسم الموقع'); $mail->addAddress($email); $mail->Subject = 'إعادة تعيين كلمة المرور'; $mail->Body = "انقر على الرابط التالي لإعادة تعيين كلمة المرور:\n\n$resetLink\n\nالرابط صالح لمدة ساعة."; $mail->send(); echo "تم إرسال رابط إعادة تعيين كلمة المرور إلى بريدك الإلكتروني."; } catch (Exception $e) { echo "حدث خطأ أثناء إرسال البريد: {$mail->ErrorInfo}"; } } else { echo "البريد الإلكتروني غير مسجل."; } } ?> <form method="POST"> البريد الإلكتروني: <input type="email" name="email" required> <button type="submit">إرسال الرابط</button> </form> ولكن يجب أولا مكتبة PHPMailer من خلال الأمر : composer require phpmailer/phpmailer وأيضا تأكد من وضع إعدادات ال smtp الخاصة بالبريد الذي ستقوم بإرسال الرسائل منه. وأخيرا صفحة إعادة تعيين كلمة المرور reset_password.php : <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $token = $_POST['token']; $newPassword = $_POST['password']; $pdo = new PDO("mysql:host=localhost;dbname=yourdb", "username", "password"); $stmt = $pdo->prepare("SELECT * FROM password_resets WHERE token = ? AND expires_at > NOW()"); $stmt->execute([$token]); $reset = $stmt->fetch(); if ($reset) { $hashedPassword = password_hash($newPassword, PASSWORD_DEFAULT); $stmt = $pdo->prepare("UPDATE users SET password = ? WHERE email = ?"); $stmt->execute([$hashedPassword, $reset['email']]); $pdo->prepare("DELETE FROM password_resets WHERE email = ?")->execute([$reset['email']]); echo "تم تغيير كلمة المرور بنجاح."; } else { echo "الرابط غير صحيح أو إنتهت صلاحيته."; } } elseif (isset($_GET['token'])) { $token = $_GET['token']; ?> <form method="POST"> <input type="hidden" name="token" value="<?= htmlspecialchars($token) ?>"> كلمة المرور الجديدة: <input type="password" name="password" required> <button type="submit">إعادة التعيين</button> </form> <?php } else { echo "الرابط غير صحيح."; } ?>1 نقطة
-
مرحبا مهندس مصطفى ، PHP فقط1 نقطة
-
هل من خلال PHP أم لارافل؟1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. بجانب النصائح الموجودة في التعليقات السابقة حاول بالطبع الإلتزام بترتيب المسارات كما صممتها الأكاديمية، فقد تم بناؤها بشكل متسلسل يراعي تطور المعرفة. المفاهيم في الذكاء الاصطناعي تبنى على بعضها البعض، لذا التزم بالتدرج من الأساسيات إلى المستويات المتقدمة. وحاول دائماً إختيار وقتاً ومكاناً ثابتين للدراسة حيث تكون فيهما قدرتك على التركيز في أعلى مستوياتها. لا تكتفِ بمشاهدة الدروس، بل حاول إستيعاب الدرس ثم جرّب تطبيق ما تعلمته فوراً ولو تستطيع شرح المفهوم بأسلوبك الخاص كما لو كنت تشرحه لشخص آخر فهذه الطريقة تعزز فهمك وتثبت المعلومات في ذاكرتك لفترة أطول. وبدلاً من دراسة 4 ساعات متواصلة، قسّم وقتك إلى جلسات أقصر (45-60 دقيقة) مع فترات راحة قصيرة بينها. هذا يحافظ على تركيزك ويجعل عملية التعلم أكثر فعالية. وأخيراً لا تتردد في طرح الأسئلة أسفل كل درس عندما تواجه صعوبة.1 نقطة
-
يجب عليك فهم هيكل الكورس حيث الخطوة الأولىهي مراجعة محتوى الكورس بالكامل (الوحدات، المواضيع، المشاريع، الاختبارات) لتكوّن صورة عامة عن المسارات. معظم كورسات الذكاء الاصطناعي في حسوب تشمل: أساسيات البرمجة (مثل Python). الرياضيات للذكاء الاصطناعي (الجبر الخطي، الإحصاء، التفاضل). تعلم الآلة (Machine Learning). التعلم العميق (Deep Learning). معالجة البيانات ومشاريع عملية. ثم وضع خطة دراسية أسبوعية تشمل التحقق من المدة المقترحة للكورس إذا لم تُحدد، افترض أن الكورس يحتاج 3-4 أشهر بمعدل 2-4 ساعات يوميًا ثم تقوم بتقسيم الوحدات إلى أسابيع على سبيل المثال، إذا كان الكورس يحتوي على 12 وحدة، خصص وحدة إلى وحدتين أسبوعيًا ثم خصص يومًا أو يومين في الأسبوع لمراجعة ما درسته أو حل المشاريع/الاختبارات. مثال لجدول أسبوعي (لمدة 3 أشهر) الأحد-الخميس: 2-3 ساعات يوميًا لدراسة وحدة جديدة (محاضرات + تمارين عملية). الجمعة: مراجعة الملاحظات، حل أسئلة إضافية، أو تطبيق مشروع صغير. السبت: يوم راحة أو لتعويض أي تأخير. و لتحقيق أقصى استفادة دون تشتت، اتبع روتين يومي معين حيث قبل البدء حدد هدفًا واضحًا لكل جلسة (مثل: "فهم الجبر الخطي" أو "كتابة كود لخوارزمية التصنيف") ثم جهّز بيئة دراسة هادئة خالية من المشتتات (أغلق الإشعارات، استخدم سماعات) ثم قم بتقسيم الوقت (لجلسة مدتها 2-3 ساعات) فمثلا : 10 دقائق راجع فيها ملخص الدرس السابق أو الملاحظات. 40-50 دقيقة شاهد فيديو المحاضرة أو اقرأ المحتوى النظري مع تدوين النقاط الرئيسية. 10 دقائق استراحة قم و تحرك قليلًا أو اشرب ماء. 40-50 دقيقة ركز على التمارين العملية أو كتابة الكود. إذا كنت تدرس Python أو خوارزميات، جرّب تطبيق ما تعلمته على مشكلة بسيطة. 10 دقائق راجع ما أنجزته، اكتب أي أسئلة أو نقاط غامضة للبحث عنها لاحقًا. نصيحة استخدم تقنية Pomodoro (25 دقيقة دراسة + 5 دقائق استراحة) إذا كنت تجد صعوبة في التركيز لفترات طويلة.1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. إن الدورات هنا في الأكاديمية تم تصميمها بعناية وترتيب مناسب للمبتدئين . حيث تم تقسم الدورة إلى عدة مسارات وكل مسار تم تقسيمه إلى عدة أقسام والأقسام تحتوي على الدروس . لهذا يجب عليك دراسة الدورة كما هي بالترتيب حيث تبدأ بالمسارات الأولى وهي الخاصة بدراسة الأساسيات و التطبيق مع المدرب وحل التمارين المطلوبة . وتأكد من عدم تخطي أى درس دون فهمه تماما والتطبيق عليه مع المدرب . وإذا واجهتك أى مشكلة أو صعوبة في جزء ما يمكنك السؤال دائما أسفل الدرس الذي توجد به مشكلتك وسيتم المتابعة معك من خلال المدربين الموجودين في الأكاديمية. وبالنسبة للطريقة الصحيحة للتعلم تختلف من شخص لآخر، ولكن بشكل عام ينصح بتسجيل المعلومات التي تستوعبها من خلال كتابة ملاحظات أو إجراء ملخصات أو حل تمارين. كما يمكنك مشاهدة الفيديو أكثر من مرة إذا شعرت بأنك بحاجة إلى توضيح أو تعميق أكثر وعدم تخطيه دون فهمه تماما كما وضحت لك سابقا. ، ثم بعد ذلك يمكنك التدرب عن طريق التطبيق عمليا على ماتعلمته من خلال القيام بتمارين عملية وتطبيق الأفكار التي تم تعلمها. و يفضل متابعة الفيديوهات أكثر من مرة لضمان فهمك للدرس جيدًا، ويفضل أيضًا أن تقوم بالتطبيق العملي لما تعلمته فور انتهاء كل درس وذلك لتثبيت المفاهيم وتطوير مهاراتك العملية. ويمكنك قراءة المزيد من التفاصيل والنصائح من خلال الإجابات التالية :1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. إن تعلم Odoo ليس أمر ضروري لمطورين ال back end والمتخصصين في Laravel و Node.js . حيث إن odoo هو نظام مفتوح المصدر لإدارة الأعمال (ERP) يهدف إلى دمج مختلف الوظائف التجارية والإدارية في منصة واحدة. ويستخدم بشكل واسع من قبل الشركات الصغيرة والمتوسطة والكبيرة لتسهيل إدارة العمليات اليومية مثل المحاسبة و المخزون و المبيعات و إدارة العملاء والموارد البشرية والعديد من الوظائف الأخرى. وهو قائم على لغة بايثون . وإن مطورين odoo مختلفين تماما عن مطورين laravel و Node.js ولهم مسمى وظيفي منفصل. لهذا إذا لم تكن تريد أن تعمل على مشروع odoo او تعمل في تطوير تطبيقات odoo وإضافة أنظمة بها أو لا تريد التقديم على شركات تعمل بشكل أساسي على odoo فإذا لا داعي لتعلمه وهذا ليس إختصاصك . ويجب عليك التركيز على جزء واحد معين إما php مع laravel أو java script مع Node.js أو odoo .1 نقطة
-
1 نقطة
-
اخي انت الحل الذي قدمته منطقي لكن الذي عمره 50 سنة او اكثر يحق له 45 يوم اجازة سنوية انا عملت لشخص اجازة سنوية من 1-1- 2023 الي 31-12-2024 ثم عملت له اجازة سنوية من جديد من تاريخ 1-1-2025 الي 1-1-2026 ظهرت عذرًا، لا يمكن إنشاء الإجازة لعدم توفر الرصيد الكافي. رصيدك: -685 يوم، والطلب: 365 يوم كيف اعرف رصيد كل موظف مثلا قبل عمل اجازة جديدة له1 نقطة
-
أولاً يجب تفهم أنك ستحتاج إلى 4 أو 5 أضعاف وقت الدورة من أجل دراستها بشكل سليم، وذلك ما بين مشاهدة ثم استيعاب ثم حفظ ثم تطبيق ثم مراجعة وتكرار وبحث. عليك بالتالي: مشاهدة 4 دروس قصيرة ثم التوقف والتطبيق على ما جاء بها من خلال إعادة ما قام به المدرب. أو درس واحد طويل وتقسيمه إلى أجزاء والتوقف ثم التطبيق بمفردك. ولا مشكلة في التطبيق مع المدرب، لكن بعد الإنتهاء عليك إعادة ما قمت به بمفردك لكي تختبر استيعابك وتركيزك يُصبح أكبر. (خصص نسخة للتطبيق مع الشرح مثلاً ونسخة أخرى للتطبيق عليها بمفردك). والمهم هو ألا تقوم بخطوة دون معرفة لماذا قمت بها، فالبرمجة ليست نسخ أكواد بل وظيفتك هي حل مشاكل برمجية لذا استيعابك للأدوات واللغة نقطة فارقة للمبرمج المتميز. وهناك مثال جيد هو "يمكنك مشاهدة فيلم لكن لن تصبح مخرج أفلام" لذا عليك بالممارسة العملية وأن تكون طالب فاعل وليس مشاهد سلبي فقط، يجب التدرب على نماذج صغيرة في البداية ثم التدرج في الصعوبة وإنشاء مشاريع كاملة، وعدم الإكتفاء بمشاريع الدورة ونماذجها فقط. وفي الدورة لا تكتفي ببناء المشروع مرة واحدة فقط، حاول إعادة بنائه بمفردك، ولا مشكلة أبدًا إذا نسيت بعض الأشياء لا تنزعج من ذلك إطلاقًا. فمرة واحدة لا تكفي أبدًا، حيث أنك في المرة الأولى تستوعب بنسبة 70% وأنت بحاجة إلى الـ 30% الأخرى والتي تحصل عليها من خلال إعادة بناء المشروع بمفردك بدون مشاهدة شرح المدرب. وبالطبع ليس عليك تذكر كل شيء قمت بدراسته ولكن يجب استيعاب كل شيء تقريبًا بنسبة 80% وبعض الأمور ستتضح لك من الواقع العملي بعد فترة وتنفيذ المشاريع. فلا أحد يتذكر كل شيء ويتم البحث عن ما نريده ويتم تذكر الأمر لأنك تعرف ما تريد البحث عنه، لكن الحفظ والاستيعاب مهمان في البداية.1 نقطة