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

Thaer Alhabbash

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

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

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

آخر الزوار

لوحة آخر الزوار معطلة ولن تظهر للأعضاء

إنجازات Thaer Alhabbash

عضو مساهم

عضو مساهم (2/3)

9

السمعة بالموقع

  1. يجب عليك التأكد من انشاء قاعدة البيانات و جدول الطلاب أولا , ومن ثم تقوم بإدخال بيانات الطلاب , وبالتالي اتبع الخطوات التالية: 1- عليك بالبداية انشاء قاعدة بيانات من خلال الأمر التالي : create database university; 2- ومن ثم يجب انشاء جدول خاص بالطلاب داخل قاعدة بيانات الجامعة من خلال الأمر التالي: use university; CREATE TABLE students ( id INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, lastName varchar2(50) NOT NULL, AGE INTEGER NOT NULL UNIQUE CLASS varachar2(30) NOT NULL UNIQUE, ); 3- ومن ثم قم بتنفيذ الاستعلام الذي قمت بذكره و هو ادخال بيانات الطالب الى جدول الطلاب كالتالي: INSERT INTO students (NAME,lastNAME,AGE ,CLASS) VALUES ( 'UAIN','KHAN' , 10 , 'FIVE' );
  2. <div class="grid-container"> <div class="grid-item">1</div> <div class="grid-item">2</div> <div class="grid-item">3</div> <div class="grid-item">4</div> <div class="grid-item">5</div> <div class="grid-item">6</div> <div class="grid-item">7</div> <div class="grid-item">8</div> <div class="grid-item">9</div> </div> .grid-container { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-gap: 10px; } .grid-item { border: 1px solid black; padding: 20px; } في هذا المثال، تمثل <div class="grid-container"> حاوية الشبكة ، وتمثل <div class="grid-item"> عنصر الشبكة داخل الشبكة. خطوات استكشاف الأخطاء وإصلاحها: التحقق من خصائص الشبكة: تأكد من أن لديك العرض: الشبكة؛ الخاصية المطبقة على الحاوية وأنك قمت بتحديد أعمدة قالب الشبكة وخصائص فجوة الشبكة. فحص بنية HTML: تحقق من أن بنية HTML الخاصة بك تتطابق مع العلاقة المتوقعة بين الوالدين والطفل. يجب أن يكون كل عنصر في الشبكة تابعًا مباشرًا لحاوية الشبكة. تحقق من قواعد CSS: تأكد من أنك لم تقم عن طريق الخطأ بتجاوز خصائص الشبكة بقواعد CSS المتعارضة في مكان آخر في التعليمات البرمجية الخاصة بك. العرض في المتصفح: افتح ملف HTML في متصفح الويب واستخدم أدوات مطور المتصفح لفحص التخطيط. إذا رأيت سلوكًا غير متوقع، فانقر بزر الماوس الأيمن على العناصر واستخدم خيار "فحص" لرؤية خصائص التصميم والتخطيط الخاصة بها. أخطاء في بناء الجملة: تحقق جيدًا من وجود أي أخطاء في بناء الجملة في كود HTML وCSS. توافق المتصفح: تأكد من أنك تستخدم متصفحًا يدعم CSS Grid. تقوم معظم المتصفحات الحديثة بذلك، ولكن قد يكون دعم بعض الإصدارات الأقدم محدودًا. تصحيح الأخطاء تدريجيًا: إذا كنت لا تزال تواجه مشكلات، ففكر في إزالة التصميم أو العناصر غير الضرورية واحدًا تلو الآخر لعزل المشكلة. تذكر أن هذا مجرد مثال أساسي، وقد تكون تخطيطات العالم الحقيقي أكثر تعقيدًا. إذا واجهت مشكلات محددة، فإن توفير المزيد من التفاصيل حول المشكلة والتعليمات البرمجية الخاصة بك يمكن أن يساعد في تقديم المزيد من المساعدة المستهدفة.
  3. NPM (Node Package Manager) و Yarn عبارة عن أدوات لإدارة حزم (Packages) وتعتبران جزءًا من بنية تطوير تطبيقات الويب باستخدام JavaScript. تهدف هذه الأدوات إلى تسهيل عملية تنزيل وتثبيت الحزم المكتوبة بلغة JavaScript والمستخدمة في تطوير التطبيقات. الفرق بين NPM و Yarn يكمن في بعض الجوانب التقنية وسهولة الاستخدام. إليك بعض الفروق الرئيسية بينهما: 1- الأداء: Yarn كان يعتبر في بادئ الأمر أسرع من NPM في عملية تنزيل وتثبيت الحزم. ومع ذلك، تم تحسين أداء NPM في الإصدارات الأحدث، لذا الفرق في الأداء قد تقلص. التحميل الموازي: Yarn يستخدم تحميلًا موازيًا لتحميل الحزم، مما يمكنه من تحسين سرعة التنزيل. بينما في الإصدارات السابقة من NPM، كان هناك مشكلة في تحميل موازي تم حلها في الإصدارات الأحدث. الذاكرة المؤقتة (Caching): Yarn يستخدم ذاكرة مؤقتة محلية (Local caching) لتسريع عملية التنزيل بشكل عام. بينما في NPM، تحدث الذاكرة المؤقتة بشكل افتراضي على مستوى النظام وقد يحدث تضارب في الإصدارات المحفوظة في الذاكرة المؤقتة. التوافق والدعم: NPM هو منشأة أساسية لعالم Node.js وJavaScript، ولذا فهو يتمتع بالتوافق مع العديد من الأدوات والبيئات. Yarn كان في البداية مخصصًا لحل مشكلات معينة في NPM ولكنه أصبح لاحقًا أداة قوية بنفسها. واجهة المستخدم: Yarn يقدم واجهة مستخدم أكثر وضوحًا وتفصيلاً عندما يتعلق الأمر بعمليات الإدارة والإصدارات. NPM يقدم واجهة مستخدم أبسط. بالنسبة لأيهما أفضل، فإن اختيارك يعتمد على احتياجات مشروعك.
  4. قاعدة بيانات غير معروفة 'stdz': هذه هي المشكلة الرئيسية. يحاول البرنامج الاتصال بقاعدة بيانات MySQL تسمى "stdz" ، ولكن لم يتم التعرف على قاعدة البيانات أو أنها غير موجودة على خادم MySQL. 😄 \ xampp \ htdocs \ phpsql \ db-connect.php: 16: يخبرك هذا السطر بمكان حدوث الخطأ. في هذه الحالة ، حدث الخطأ في الملف db-connect.php في السطر 16.
  5. 1- تحقق من حالة خادم MySQL: تأكد من تشغيل خادم MySQL وتشغيله. إذا لم يكن قيد التشغيل ، فابدأ خدمة خادم MySQL. 2- تحقق من عنوان خادم قاعدة البيانات: تأكد من أنك تستخدم عنوان المضيف الصحيح لخادم MySQL. إذا كنت تقوم بتشغيل التعليمات البرمجية الخاصة بك على جهازك المحلي ، فغالبًا ما يكون المضيف "مضيف محلي". 3- تحقق من منفذ خادم قاعدة البيانات: منفذ MySQL الافتراضي هو 3306. تأكد من أن المنفذ الذي تستخدمه في رمز الاتصال الخاص بك يطابق منفذ خادم MySQL. 4- تحقق من بيانات اعتماد قاعدة البيانات: تحقق مرة أخرى من اسم المستخدم وكلمة المرور اللذين تستخدمهما للاتصال بقاعدة البيانات. يجب أن تتطابق مع بيانات الاعتماد التي تم إعدادها في خادم MySQL. 5- مشكلات جدار الحماية والشبكة: تأكد من عدم وجود جدار حماية أو مشكلات في الشبكة تمنع البرنامج النصي PHP من الاتصال بخادم قاعدة البيانات. في بعض الأحيان ، يمكن لجدار الحماية حظر الاتصال. 6- تحقق من وجود أخطاء MySQL Server: راجع سجلات أخطاء خادم MySQL لمعرفة ما إذا كانت هناك أية مشكلات على جانب الخادم قد تكون سببًا في حدوث المشكلة. 7- كود PHP الصحيح: تأكد من صحة كود PHP الخاص بك للاتصال بقاعدة البيانات. فيما يلي مثال لاتصال mysqli الأساسي: <?php $host = "localhost"; $username = "your_username"; $password = "your_password"; $database = "your_database"; $conn = mysqli_connect($host, $username, $password, $database); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } ?>
  6. يجب عليك بالبداية تصميم البانر الاعلاني , و تصميم المكافئة , ومن ثم من خلال ال css قم بإخفاء المكافئة. يجب بعدها استخدام الجافا سكربت لاضافة حدث الضغط على البانر الاعلاني لاظهار المكافئة , الكود التالي يلبي طلبك: <!DOCTYPE html> <html> <head> <title>مكافأة الزائر</title> <style> .banner { width: 300px; height: 150px; background-color: #f2f2f2; text-align: center; line-height: 150px; cursor: pointer; } .reward-box { display: none; width: 200px; height: 100px; background-color: #e0ffe0; text-align: center; line-height: 100px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } </style> </head> <body> <div class="banner" id="banner"> انقر هنا للحصول على مكافأة! </div> <div class="reward-box" id="rewardBox"> تهانينا! لقد حصلت على مكافأة. </div> <script> const banner = document.getElementById('banner'); const rewardBox = document.getElementById('rewardBox'); banner.addEventListener('click', () => {//هنا الحدث عند الضغط على البانر الاعلاني rewardBox.style.display = 'block'; // /ظهور المكافئة setTimeout(() => { rewardBox.style.display = 'none'; }, 3000); // تعيين مدة ظهور مربع المكافأة بالمللي ثانية (هنا 3 ثواني) }); </script> </body> </html>
  7. لا يوجد شخص قام بتصميم موقع كامل بعد ما تعلم Html , Css , وهذا طبيعي , عليك بالبداية تطبيق كل درس تتعلمه ومع الممارسة المستمرة للدروس والمتابعة الجيدة , تقوم بعد ذلك بتجميع تعليمك للدروس في تصميم واحد او في صفحة واحدة. يجب ان تلق نظرة بعدة ذلك على المواقع المصصمة وترى مالموجود في هذه الموقع ولا تستطيع عمله , قم بتجميع الاشياء التي لا تسطيتع عملها وتعلمها على الفور و قم بتطبيقها , ولا تنسى ان تلق نظرة على طريقة ترتيب عناصر التصميم و التنسيقات و ملائمة الالون حسب طبيعة عمل الموقع. اذا طبقت كل ما ذكرته لك سابقا , تكون انت الان عندك خبرة جيدة وستزيد مع المتابعة وانا متأكد انك ستصل لمرحلة الاحتراف, فلا تيأس الامر سيأخذ وقت وهذا طبيعي , ولكن بعد فترة سترة ثمرة جهدك و صبرك , بالتوفيق.
  8. يمكن التعامل مع ملفات PDF بعدة طرق باستخدام لغات وتقنيات مختلفة، بما في ذلك JavaScript و Laravel. لديك عدة طرق على كيفية التعامل مع ملفات PDF والخصائص الممكنة. 1- التعامل مع ملفات PDF باستخدام JavaScript: A- عرض محتوى PDF في المتصفح: يمكن استخدام <embed> أو <iframe> لعرض ملفات PDF داخل صفحة ويب. يمكنك تمرير مسار الملف كمصدر إلى العنصر المدمج (<embed>) أو إلى خاصية src في الإطار (<iframe>). B- مكتبات JavaScript للتعامل مع PDF: هناك مكتبات مثل PDF.js وViewerJS التي تتيح لك تضمين وعرض ملفات PDF بشكل ديناميكي داخل صفحات الويب باستخدام JavaScript. C- تعديل محتوى PDF: مكتبات مثل PDF.js تمكنك من استخراج المحتوى من ملفات PDF وتعديله. يمكنك عرض الصفحات والنصوص والصور، وإجراء تعديلات بسيطة. 2- خصائص ملفات PDF القابلة للتطبيق: يمكنك تحديد خصائص ملفات PDF بحيث يكون بعضها قابلًا للقراءة فقط ولا يمكن تنزيله. يمكنك القيام بذلك من خلال تحكم في إعدادات الصلاحيات في ملفات PDF. يُمكن لأغلب تطبيقات إنشاء وتحرير ملفات PDF (مثل Adobe Acrobat) تعيين صلاحيات مختلفة للمستخدمين، مثل قراءة فقط دون القدرة على التنزيل. 3- Laravel vs. JavaScript: Laravel: إذا كنت تخطط لبناء موقع ويب كامل مع مزيد من الوظائف بالإضافة إلى عرض ملفات PDF، فقد يكون لارافيل خيارًا جيدًا. لارافيل هو إطار عمل لتطبيقات الويب مبني على PHP، وهو يوفر هيكلًا محددًا ومكونات لتطوير التطبيقات بشكل منظم. يمكنك استخدام واجهة رفع الملفات المدمجة في Laravel أو مكتبات إضافية مثل Laravel Filesystem لرفع الملفات إلى الخادم. JavaScript: إذا كنت ترغب في إضافة وظائف خفيفة باستخدام JavaScript فقط، فيمكنك استخدام تلك الطرق المذكورة أعلاه لتضمين ملفات PDF وعرضها. JavaScript يمكن أن يكون مفيدًا للتعامل مع الجزئيات البسيطة ولكنه قد يكون أقل تنظيمًا من الاستخدام الكامل لإطار عمل
  9. السؤال غير واضح , ولكن اذا اردت ان توزع الصور و تضعها بشكل منسق على موقع فبإمكانك استخدام ال cards ولديك المثال التالي لاستخدام ال cardsو حيث ان وضيفته يقوم بعرض 3 صور في كل صف مع عنوان و تفاصيل للصورة مع تكرار ذلك الامر اذا اردت اضافة صور اخرى كما يمكنك جعل 4 او 6 صور في كل صف وهذا يعتمد على عمليى توزيع الاعمدة في كل صف حيث ان كل صف يحتوي على 12 عمود , بحيث يمكنك وضع 4 أعمدة لكل صورة: <div class="card-group"> <div class="card"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p> <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> </div> </div> <div class="card"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p> <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> </div> </div> <div class="card"> <img class="card-img-top" src="..." alt="Card image cap"> <div class="card-body"> <h5 class="card-title">Card title</h5> <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p> <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> </div> </div> </div> يمكنك استخدام الصفوف و الأعمدة في عرض وتنسيق الصورة في الصفحة كما يلي: <div class="row"> <div class="col col-md-4"><img src="...." height="250px" width="300px"></div> <div class="col col-md-4"><img src="...." height="250px" width="300px"></div> <div class="col col-md-4"><img src="...." height="250px" width="300px"></div> </div> أما اذا كنت تقصد بوضع خلفية للصفحة أو كما تقصد تحت كل الأكواد فيمكنك داخل ملف ال css تنفيذ ما يلي: body { background-image: url('your-image-path'); background-repeat: no-repeat; background-size: cover; }
  10. تأكد من أنك قمت بإعداد بيئتك بشكل صحيح وأن لديك تكوين بريد إلكتروني في ملف .env: MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=your_email@gmail.com MAIL_PASSWORD=your_email_password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=your_email@gmail.com MAIL_FROM_NAME="${APP_NAME}" في ملف routes/web.php، أنشئ مسارًا لإرسال رسالة التحقق: use App\Http\Controllers\VerificationController; Route::get('/send-verification-email', [VerificationController::class, 'sendVerificationEmail'])->name('verification.email'); قم بإنشاء controller باستخدام الأمر php artisan make:controller VerificationController ثم في VerificationController.php، ضع الكود التالي: use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Mail; use App\Mail\VerificationEmail; public function sendVerificationEmail() { $user = Auth::user(); $token = // قم بإنشاء رمز التحقق هنا وقم بتخزينه في جدول المستخدم // ارسال تحقق للايميل Mail::to($user->email)->send(new VerificationEmail($token)); return redirect()->back()->with('message', 'Verification email sent!'); } باستخدام الأمر التالي، قم بإنشاء Mailable لإرسال رسالة التحقق: php artisan make:mail VerificationEmail ثم في VerificationEmail.php، ضع الكود التالي: public $token; public function __construct($token) { $this->token = $token; } public function build() { return $this->view('emails.verification'); } أنشئ ملف verification.blade.php في المجلد resources/views/emails وضع فيه محتوى رسالة التحقق. أضف رابطًا أو زرًا في واجهة المستخدم للسماح للمستخدم بإرسال رسالة التحقق, أو عند الضغط على زر login يقوم بإرسال رسال التحقق
  11. اذا لم يتم عرض ما ذكرته له كما تريد فإذا اردت قم بوضع المشروع هنا مع قاعدة البيانات وسأقوم بتنفيذ كل ما تريد ان شاء الله
  12. اذا اردت استخدام ال query builder فقم بتنفيذ ما يلي: SELECT posts.post_id, posts.post_content, GROUP_CONCAT(comments.comment_content) AS post_comments FROM posts LEFT JOIN comments ON posts.post_id = comments.post_id ORDER BY comments.created_at LIMIT 3; اما باستخدام اللارفيل فبإمكانك تنفيذ ما يلي بالاضافة الى ما تم توضيحه سابقا: $posts = Post::with('comment')->orderBy('created_at)->limit(3); او بإمكانك استخدام ما يلي : $posts = Post::with('comment')->latest()->take(3)->get();
  13. يمكنك تحقيق ذلك من خلال طريقتين : الأولى : باستخدام الـ mysql بما أن الـ post_id مفتاح اجنبي (foreign_key) في جدول التعليقات , اذا علينا استخدام الـ Left Join لجلب جميع التعليقات الخاصة بكل منشور كالتالي: SELECT posts.*, comments.* FROM posts LEFT JOIN comments ON posts.id = comments.post_id; الثانية: باستخدام العلقات في اطار العمل لارفيل اذا كنت تستخدم لارفيل. اذا كنت تستخدم اللارفيل فعليك انشاء اثنين مودل واحد للمنشورات والاخر للتعليقات , ومن ثم تقوم بانشاء العلاقة بين المنشورات و التعليقات داخل المودل و هي علاقة 1-M class Post extends Model { public function comments() { return $this->hasMany(Comment::class); } } class Comment extends Model { public function post() { return $this->belongsTo(Post::class); } } بعد ذلك و داخل الكونترولر نقوم بتنفيذ الكود التالي داخل الدالة الخاصة بجلب جميع التعليقات الخاصة بكل منشور $posts = Post::with('comment')->get(); و لعرض النتائج داخل ال blade نقوم بتنفيذ التالي : @foreach($posts as $post) <th>$post->title</th> -------------------------- <td>$post->comment->name</td> @endforeach
  14. الحركة تحدث بسبب استخدام خاصية الـ border-bottom عند وضع المؤشر على العنصر , ولتجنب الحركة عليك باختيار احدى الحلين: 1- تجنب استخدام خاصية الـ border-bottom وقم بحذفها بحيث يصبح الكود كالتالي: header nav ul li a:hover { color: var(--main-color); } 2- يمكنك استخدام خاصية الـ border-bottom مع وضع حجم 0px لمنع حدوث الحركة كالتالي: header nav ul li a:hover { color: var(--main-color); border-bottom: 0px solid var(--main-color); } يمكنك استخدام تنسيقات اخرى عالعنصر مثل وضع خط تحت العنصر عند وضع المؤشر عليه كالتالي: header nav ul li a:hover { color: var(--main-color); border-bottom: 0px solid var(--main-color); text-decoration:underline; } بالتوفيق
  15. يوجد تعديل بسيط في الكود و هو أمر بسيط جدا قم بتغيير الرابط الخاص بال css واجعله كالتالي: <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet" > قم بحذف ال integrity وما يلحقها واكتفي فقط بال href و ال rel و ستظهر الصفحة بتنسيقها الصحيح وذلك لأن ال integrity تستخدم للسماح للمتصفح بفحص مصدر الملف للتأكد من عدم تحميل الكود أبدًا إذا تم التلاعب بالمصدر , كما أن الملف يحتوي عل تشفير, وبالتالي قم بتنفيذ ما ذكرته لك وستظهر النتيجة التي تريدها.
×
×
  • أضف...