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

كل الأنشطة

تحدث تلقائيًا

  1. الساعة الماضية
  2. الكود يعمل بدون مشكلة ما الخطأ الذي يظهر لك ؟ غالبًا أنت نسيت حفظ الكود عليك الضغط على CTRL + S ثم إعادة تحديث الصفحة في المتصفح. <body> <div style="text-align: center;"> <input class="input-btn" type="text"> <button class="submit-btn">submit</button> <h3 class="result-one"></h3> <h3 class="result-two"></h3> </div> <script> var name = ["Yarob", "Khaled", "Omer"] document.getElementsByClassName("result-one")[0].innerHTML = name document.getElementsByClassName("submit-btn")[0].addEventListener("click", function(){ var school = document.getElementsByClassName("input-btn")[0].value for(var student of name){ if(student == school){ document.getElementsByClassName("result-two")[0].innerHTML = `${school} yas` break } document.getElementsByClassName("result-two")[0].innerHTML = `${school} no` } }) </script> </body>
  3. انا شغال على java script بس لما اجي اعرف متغير باسم name ما بقبل تنفيذ الكود قصدي ما بشتغل صح مع انو كان قبل يشتغل بدون مشاكل شو المشكلة هي صورة لتوضيح وحتى لما احول المتغير name لتعليق بضل ظاهر على المتصفح مع العلم معمل تحديث بس على الفاضي
  4. اليوم
  5. يجب وجود collection في قاعدة البيانات لحفظ رقم الهاتف وكود التأكيد وحالة التأكيد أي الحقول كالتالي: phone لتخزين رقم هاتف المستخدم ويجب أن يكون الحقل فريدًا لكل مستخدم. verificationCode لتخزين رمز التحقق الذي يتم إرساله إلى المستخدم عبر SMS. verified لتحديد هل رقم الهاتف قد تم التحقق منه أم لا، وتستطيع جعل الحقل عبارة عن قيمة منطقية (true أو false). ثم ستحتاج إلى منطق خاص لتنفيذ ذلك، من خلال إنشاء api وليكن /send-code لإرسال كود التحقق لرقم الهاتف ولديك خدمات مثل Twilio و auth0 و Firebase لفعل ذلك. بالطبع ستقوم بحفظ الـ OTP أو الكود في قاعدة البيانات لكي تتمكن من التحقق منه، وهناك طرق مختلفة لتوليده أحدها توليده باستخدام دالة random كالتالي: const verificationCode = Math.floor(100000 + Math.random() * 900000).toString(); للتوضيح إليك مثال باستخدام Twilio: app.post('/send-code', async (req, res) => { const { phone } = req.body; const verificationCode = Math.floor(100000 + Math.random() * 900000).toString(); let user = await User.findOne({ phone }); if (!user) { user = new User({ phone, verificationCode, verified: false }); } else { user.verificationCode = verificationCode; } await user.save(); client.messages.create({ body: `Your verification code is ${verificationCode}`, to: phone, from: 'رقمك على Twilio ', }).then((message) => { console.log(message.sid); res.send('Verification code sent.'); }).catch((error) => { console.error(error); res.status(500).send('Failed to send verification code.'); }); }); بعد إرسال الكود لرقم الهاتف سيقوم هو بإدخاله عليك إذن إنشاء api آخر باسم /verify-code لاستقبال الطلب ومعالجته والتأكد من صحة الرقم. app.post('/verify-code', async (req, res) => { const { phone, code } = req.body; const user = await User.findOne({ phone, verificationCode: code }); if (!user) { return res.status(400).send('Invalid verification code.'); } user.verified = true; await user.save(); res.send('Phone number verified successfully.'); });
  6. الامر بسيط إذا كنت قد قمت بإنشاء ال Data Structuser الخاصة بقاعدة البيانات ولم ترد أن تقوم بتعديل ال collection الخاصة بالمستخدم فيمكنك إنشاء collection جديد ولنفرض إسمه sms_verifications و يحوي فقط ثلاثة حقول الأول هو ال id الخاص بالمستخدم و الثانى هو كود التفعيل المرسل و الأخير هو وقت إنتهاء الكود حيث يجب عليك وضعك وقت بحد أقصى 10 دقائق لإنتهاء الكود وذلك حفاظا على الأمان. والآن بمجرد طلب المستخدم كود تفعيل تقوم بإنشاء كود عشوائى وتقوم بحفظه في collection ال sms_verifications مع حفظ ال id الخاص بالمستخدم و من ثم إرسال الكود إلى الهاتف ويوجد العديد من المواقع التى تساعدك على ذلك مثل twilio و vonage . والآن عند إرسال المستخدم الكود الذى أرسل له تقوم باحضار السجل من sms_verifications بال id الخاص بالمستخدم ومن ثم مقارنة الكود مع التأكد من عدم إنتهاء الكود ويفضل لو قمت بعمل hash للكود وعدم حفظه كما هو فى قاعدة البيانات . وإذا كان الكود صحيح ولم تنتهى صلاحيته تقوم بوضع حالة المستخدم أنه verified
  7. الفكرة بشكل عام سهلة و يمكنك فهمها بسهولة و تطبيقها حيث بعد إنشاء الهيكلية اللازمة في MongoDB، تأكد من أن لديك مجموعة (Collection) في MongoDB لتخزين معلومات المستخدمين، بما في ذلك رقم الهاتف ورمز التحققو لنفرض على أنها بالشكل التالي: { "_id": "unique_user_id", "phone_number": "1234567890", "verification_code": "123456", "is_verified": false } عند تسجيل المستخدم أو عند طلب التحقق، قم بإنشاء رمز تحقق عشوائي وإرساله إلى رقم الهاتف باستخدام خدمة إرسال الرسائل النصية (مثل Twilio)، ثم قم بحفظ رمز التحقق المرسل في سجل المستخدم في MongoDB مع رقم الهاتف، و عندما يقوم المستخدم بإدخال رمز التحقق، قم بمقارنة الرمز المدخل مع الرمز المخزن في قاعدة البيانات، إذا كان رمز التحقق صحيحا، قم بتحديث حقل is_verified ليصبح true في سجل المستخدم.
  8. لدي سؤال الان لو اردت عمل مصادقه للرقم الهاتف ما هي الطريقه الافضل لعمل ذلك مستعملا MongoDB بعد انشاء كامل Data Structure?
  9. v22.1.0 ثبتها Globel من ثم public function show(Request $request) { return Pdf::html('<h1>Hello world!!</h1>')->save('/some/directory/invoice.pdf'); } } لما اذهب الة رابط يظهر خطأ The command "node "C:\laragon\www\moit-companies\vendor\spatie\browsershot\src/../bin/browser.cjs" "{""url"":""file:\/\/C:\\Users\\THEENG~1\\AppData\\Local\\Temp\\1165450316-0119395001716967715\\index.html"",""action"":""pdf"",""options"":{""path"":""\/so
  10. هل الخطأ السابق موجود أم ظهر خطأ أخر ؟ من المفترض أن تعمل على إصدار node 7.6.0 فما فوق . ما هو الإصدار الذى لديك ؟
  11. ستجد في التوثيق الرسمى الخاص بالمكتبة spatie/laravel-pdf أنه يجب عليك تثبيت المكتبة globaly وليس local حيث تعتمد على المكتبة puppeteer و إصدار node 7.6.0. https://spatie.be/docs/browsershot/v4/requirements ويمكنك تنفيذ الأمر التالي : npm install puppeteer --location=global
  12. عليك تثبيت puppeteer بشكل عالمي وليس محلي كالتالي: npm install puppeteer -g
  13. الخطوة الاولى composer require spatie/laravel-pdf من ثم npm i puppeteer --save بعدين use Spatie\LaravelPdf\Facades\Pdf; Pdf::html('<h1>Hello world!!</h1>')->save('/some/directory/invoice.pdf');
  14. حل مشكلة القيم التي أصبحت 0 و 1 بعد تطبيق خطوة Pivot Column، يجب التأكد من أن التوقيت في عمود CHECKTIME يبقى نصا قبل محاولة تقسيمه. وسنقوم بهذه الخطوات باستخدام Power Query في Power BI: تأكدى من أن العمود CHECKTIME هو نص إذا لم يكن كذلك، حددى العمود وانقرى على Data Type في الشريط العلوي واخترى"Text". وقومى بتحويل النص إلى تاريخ/وقت: -حددى العمود الذي يحتوي على التاريخ وحوله إلى نوع البيانات "Date". -حددى العمود الذي يحتوي على الوقت وحوله إلى نوع البيانات "Time". وقومى باضافة عمود جديد مخصص لحساب عدد الساعات بين الدخول والخروج: اضغطي على Add Column ثم Custom Column. واستخدمى الصيغة التالية: Duration.TotalHours(Time.From([Exit]) - Time.From([Entry]))
  15. البارحة
  16. المشكلة في ميثود __str__ حيث لم تقم باستخدام دالة join لربط النص بشكل صحيح ولا تحدث القيمة board_str بشكل صحيح. أولاً عليك تحويل الصف إلى سلسلة نصية مع وضع مسافة بين الأرقام، واستبدال الأصفار بالنجوم، ثم إضافة السلسلة النصية للصف إلى السلسلة النهائية مع إضافة سطر جديد n\ كالتالي: def __str__(self): board_str = '' for row in self.board: row_str = [str(i) if i else '*' for i in row] board_str += ' '.join(row_str) + '\n' return board_str
  17. مرحبا class Board: def __init__(self, board): self.board = board def __str__(self): board_str = '' for row in self.board: row_str = [str(i) if i else '*' for i in row] row_str.join(board_str) def find_empty_cell(self): for row, contents in enumerate(self.board): try: col = contents.index(0) return row, col except ValueError: pass return None def valid_in_row(self, row, num): return num not in self.board[row] def valid_in_col(self, col, num): return all(self.board[row][col] != num for row in range(9)) def valid_in_square(self, row, col, num): row_start = (row // 3) * 3 col_start = (col // 3) * 3 for row_no in range(row_start, row_start + 3): for col_no in range(col_start, col_start + 3): if self.board[row_no][col_no] == num: return False return True def is_valid(self, empty, num): row, col = empty valid_in_row = self.valid_in_row(row, num) valid_in_col = self.valid_in_col(col, num) valid_in_square = self.valid_in_square(row, col, num) return all([valid_in_row, valid_in_col, valid_in_square]) def solver(self): if (next_empty := self.find_empty_cell()) is None: return True for guess in range(1, 10): if self.is_valid(next_empty, guess): row, col = next_empty self.board[row][col] = guess if self.solver(): return True self.board[row][col] = 0 return False def solve_sudoku(board): gameboard = Board(board) print(f'Puzzle to solve:\n{gameboard}') if gameboard.solver(): print(f'Solved puzzle:\n{gameboard}') else: print('The provided puzzle is unsolvable.') return gameboard puzzle = [ [0, 0, 2, 0, 0, 8, 0, 0, 0], [0, 0, 0, 0, 0, 3, 7, 6, 2], [4, 3, 0, 0, 0, 0, 8, 0, 0], [0, 5, 0, 0, 3, 0, 0, 9, 0], [0, 4, 0, 0, 0, 0, 0, 2, 6], [0, 0, 0, 4, 6, 7, 0, 0, 0], [0, 8, 6, 7, 0, 4, 0, 0, 0], [0, 0, 0, 5, 1, 9, 0, 0, 8], [1, 7, 0, 0, 0, 6, 0, 0, 5] ] You should use .join() to join the items in row_str with a space and add the result to the current value of board_str. What is the problem here I cannot see it, thank you
  18. عليك غلق قاعدة البيانات الحالية من أجل تطبيق التغييرات ثم إعادة فتحها.
  19. غلق المتصفح يعني وجود مشكلة بالذاكرة العشوائية، هل تتملىء الذاكرة العشوائية لديك؟ وما علاقة تثبيت ويندوز جديد بالأمر؟ هل قمت بتجربة تشغيل إضافة live server بمفردها وهل تعمل بشكل سليم؟
  20. you must close and reopen the current database for the specified option to take effect
  21. ما الخطأ الذي يظهر لك الآن عند فتح الملف ؟
  22. اضغط على ok في الرسالة التي تظهر لك ثم اضغط على الرابط الذي يظهر في التحذير: ثم من info اضغط على trust center: ثم من macro settings قم بتفعيل enable all macros
  23. you must close and reopen the current database for the specified option to take effect ظهر هذا الخطأ أيضا وكنت أود أن أسأل على هذه الاعدادت تؤثر على أمن الجهاز حيث بحثت على شات جي بي تي وقال أن عمل هذه الاعدادت قد تكون غير آمنة ؟
  24. جرب الذهاب إلى File ثم Options ثم Trust Center ثم Trust Center Settings ثم Macro settings ثم اختر الخيار : Enable VBA macros (not recommended; potentially dangerous code can run) ثم اختر ok.
  1. عرض المزيد
×
×
  • أضف...