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

Mustafa Suleiman

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

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

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

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

    305

أجوبة بواسطة Mustafa Suleiman

  1. من الممكن تنفيذ من خلال تصدير قاعدة بيانات Access إلى تنسيق XML وربطها بالمشروع، أو  استخدام  واجهة برمجة تطبيقات ODBC لقاعدة بيانات Access من خلال أداة إنشاء واجهة برمجة تطبيقات ODBC المضمنة في نظام التشغيل Windows.

    وسأوضح لك الطريقة الثانية:

    1- عليك أولاً تكوين مصدر البيانات DSN:

    • قم بفتح لوحة التحكم في Windows.
    • انتقل إلى "إدارة مصادر البيانات (ODBC)".
    • اختر "System DSN" وانقر على زر "Add".
    • اختر "Microsoft Access Driver" واتبع الخطوات لتكوين مصدر البيانات.
    • أضف ملف ODBC إلى مشروع Laravel لديك عن طريق وضع الملف في مجلد "databases".

    2- تكوين ملف .env:

    قم بفتح ملف .env في مشروع Laravel وإضافة معلومات الاتصال بقاعدة البيانات:

    DB_CONNECTION=odbc
    DB_HOST=DSN_NAME

    3- تكوين ملف config/database.php:

    فتح ملف config/database.php وفي مصفوفة connections، أضف تكوين لقاعدة البيانات Access:

    'odbc' => [
        'driver' => 'odbc',
        'dsn' => env('DB_HOST'),
        'username' => env('DB_USERNAME', ''),
        'password' => env('DB_PASSWORD', ''),
        'options'   => [
            PDO::ATTR_CASE => PDO::CASE_LOWER,
            PDO::ATTR_PERSISTENT => false,
        ],
    ],

    باستطاعتك استخدام قاعدة البيانات Access الآن في تطبيق Laravel كما تستخدم أي قاعدة بيانات أخرى.

  2. بتاريخ 7 ساعة قال Mmaajjeedd Aa:

    من فضلكم انا حابب اعرف الاجراءات الحكومية لاستخراج سجل تجاري لمنصة تعليمية 

    في أي دولة؟

    إذا كنت تقصد السعودية، فالإجراءات هي كالتالي:

    1- أول خطوة هي اختيار نوع الشركة التي تريد تأسيسها. هناك عدة أنواع من الشركات التي يمكنك اختيارها، منها:

    • شركة ذات مسؤولية محدودة
    • شركة مساهمة
    • شركة تضامنية
    • شركة توصية بسيطة

    2- بعد اختيار نوع الشركة، يجب عليك إعداد الوثائق المطلوبة لاستخراج السجل التجاري، وهي:

    • طلب استخراج سجل تجاري
    • صورة من الهوية الوطنية أو الإقامة للمؤسس أو المؤسسين
    • صورة من صك الملكية أو عقد الإيجار للمقر الرئيسي للشركة
    • صورة من السجل التجاري للشركة الأم (إذا كانت الشركة فرعًا لشركة أخرى)
    • شهادة حسن سير وسلوك للمؤسس أو المؤسسين

    3- بعد إعداد الوثائق المطلوبة، يجب عليك تقديمها إلى وزارة التجارة السعودية، وذلك من خلال أحد فروع الوزارة أو من خلال موقع الوزارة الإلكتروني.

    4- عليك الآن دفع الرسوم الحكومية المقررة لاستخراج السجل التجاري.

    5- بعد دفع الرسوم الحكومية، ستصدر لك وزارة التجارة السجل التجاري الخاص بشركتك، وذلك خلال مدة أقصاها 10 أيام عمل.

    إلكترونيًا

    وفي حال أنك ترغب في استخراج السجل تجاري إلكترونيًا، عليك بالتالي:

    1. قم بإنشاء حساب على موقع وزارة التجارة السعودية.
    2. انتقل إلى قسم "الخدمات الإلكترونية".
    3. اختر الخدمة "إصدار سجل تجاري".
    4. اضغط على زر "تقديم الطلب".
    5. املأ البيانات المطلوبة في الطلب.
    6. إرفق المستندات المطلوبة.
    7. اضغط على زر "إرسال الطلب".

    بعد ذلك، ستتولى وزارة التجارة مراجعة طلبك وإصدار السجل التجاري الخاص بشركتك خلال مدة أقصاها 10 أيام عمل.

    لكي تتمكن من استخراج سجل تجاري لمنصة تعليمية، يجب عليك استيفاء الشروط التالية:

    • أن يكون المؤسس أو المؤسسون سعوديين الجنسية أو مقيمين في المملكة العربية السعودية.
    • أن يكون لدى المؤسس أو المؤسسون رأس مال لا يقل عن 500 ألف ريال سعودي.
    • أن يكون لدى المؤسس أو المؤسسون سجل تجاري ساري المفعول.
    • أن يكون لدى المؤسس أو المؤسسون شهادة حسن سير وسلوك.

    وانتبه للتالي:

    • يجب أن يتضمن اسم الشركة التعليمية كلمة "تعليم" أو أي كلمة أخرى ذات دلالة تعليمية.
    • يجب أن تلتزم الشركة التعليمية بالأنظمة والتعليمات المعمول بها في المملكة العربية السعودية.
  3. بتاريخ 26 دقائق مضت قال Moammad Nassan:

    تماما ، وغالبا سأعتمد على CMS ، هل تستطيع ان ترشح لي ثيم معين

    هناك العديد من القوالب التعليمية منها:

    أولاً: قوالب ووردبريس تعليمية مجانية 

    1. قالب VW Education Academy
    2.  قالب Uni Education Free WordPress LMS
    3. -قالب Signify Education
    4. LMS WordPress Theme
    5. قالب School Zone 

    ثانيًا: قوالب ووردبريس تعليمية احترافية مدفوعة

    1. قالب Masterstudy 
    2. قالب Edumall 
    3. قالب Kingster Education
    4. قالب Academist
    5. قالب Eikra 
    6. قالب Ed School 
    7. قالب University 
    8. قالب eCademy 
    9. قالب eSmarts 
    10. قالب Educavo
    11. قالب Education Pack 
    12. قالب Invent 
    13. قالب Edumodo
    14. -قالب IveyPrep 
    • أعجبني 1
  4. بتاريخ الآن قال Ail Ahmed:

    vscode

    النسخة الحديثة منه لا تدعم 32 بت، ولكن هناك نسخة أقدم نسبيًا وهي 1.70 من خلال الرابط التالي:

    والنسخة الأحدث حاليًا هي 1.84، وإذا أردت استخدامها يوجد مشروع باسم vscodium يوفر برنامج vscode  ليعمل على جميع المنصات والبنيات المختلفة، وذلك هو رابط أحدث نسخة بعد تحميلها وفك الضغط في مجلد ستجد أيقونة البرنامج يمكنك تشغيلها.

    • أعجبني 1
  5. بتاريخ 3 دقائق مضت قال Ail Ahmed:

    انا بحب جدا vscode , بس المشكله انا vscode مش راضي يشتغل عندي بيسب ال procsser 

    بس vscode IDE شغل عادي بس اصدر باثيون علي 3.9 

    بيظهر الرساله ده

    this program can only installed on designed for the following processor architectures

    هل فيه حل المشكله ده

    المشكلة ليس لها علاقة بـ vscode أو vscode IDE، بل لها علاقة بنوع بنية المعالج.

    فالبرنامج الذي تحاول تثبيته مصممًا ليعمل فقط على معالجات محددة أو على معالجات بنية معينة، مثل معالجات 32 بت أو 64 بت، والمشكلة تحدث إذا كان لديك معالج ببنية 32 بت وتحاول تثبيت برنامج مخصص لبنية 64 بت.

    ما هو البرنامج الذي تحاول تثبيته؟

    • أعجبني 1
  6. إذا أردت تجاهل التشكيل بشكل كامل، تتوفر مكتبات لتحويل الكلمات إلى نص بدون تشكيل، مثل:

    وبالنسبة لحل للبحث بشكل مقارب بدون التجاهل الكامل للتشكيل، فعليك استخدام ميزة الترتيب حسب الشبهية (Fuzzy Search) مع بعض التعديلات على الكود، وتتوفر مكتبة مثل "scout" مع Elasticsearch لتحقيق ذلك.

    وهناك مكتبة جاهزة توفر لك ذلك عليك قراءة المستند الخاص بها:

     

  7. عليك أولاً تثبيت Laravel Sanctum وتكوينه لتوفير ميزات المصادقة،  بتشغيل الأوامر:

    composer require laravel/sanctum
    php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
    php artisan migrate

    ثم تكوين ملف config/cors.php للسماح للمتصفح بتبادل الموارد عبر المواقع CORS (Cross-Origin Resource Sharing)، بتنفيذ التالي لنشر ملفات التكوين:

    composer require fruitcake/laravel-cors
    
    php artisan vendor:publish --tag="cors"

    بعد ذلك تأكد من أن Jetstream يستخدم Sanctum كـ API حسب الحاجة، وقم بفحص ملف config/jetstream.php وتحقق من أن خيار stack يتم تعيينه إلى livewire أو inertia.

    نأتي الآن لخطوة تكوين حماية Sanctum Middleware، ففي ملف app/Http/Kernel.php، يجب أن يكون EnsureFrontendRequestsAreStateful middleware موجود في مجموعة web middleware.

    وفي ملف config/sanctum.php، عليك تكوين stateful لـ sanctum بحيث تكون هناك علامة تحقق للمتصفح.

    والآن قم بإنشاء نقاط النهاية (controllers) الخاصة بك للعمليات التي تحتاج إليها، وضع middleware auth:sanctum في النقاط التي تتطلب مصادقة المستخدم.

    مثال على ملف routes/api.php:

    use App\Http\Controllers\Api\PostController;
    
    Route::middleware('auth:sanctum')->group(function () {
        Route::get('/posts', [PostController::class, 'index']);
        // يمكنك إضافة طرق إضافية هنا
    });

    وكمثال سنقوم بإنشاء app/Http/Controllers/Api/PostController.php:

    <?php
    
    namespace App\Http\Controllers\Api;
    
    use App\Http\Controllers\Controller;
    use App\Models\Post;
    use Illuminate\Http\Request;
    
    class PostController extends Controller
    {
        public function index()
        {
            $posts = Post::all();
            return response()->json($posts);
        }
    
        // يمكنك إضافة المزيد من الوظائف مثل store وupdate وdelete حسب الحاجة.
    }

     

    في مشروع React.js، تستطيع استخدام fetch أو Axios لاستدعاء نقاط النهاية API:

    import React, { useEffect, useState } from 'react';
    
    function App() {
        const [posts, setPosts] = useState([]);
    
        useEffect(() => {
            fetch('/api/posts')
                .then(response => response.json())
                .then(data => setPosts(data));
        }, []);
    
        return (
            <div>
                <h1>Posts</h1>
                <ul>
                    {posts.map(post => (
                        <li key={post.id}>{post.title}</li>
                    ))}
                </ul>
            </div>
        );
    }
    
    export default App;

     

    • أعجبني 1
  8. هجمات CSRF لا تعتمد على بيانات الاعتماد المخزنة في المتصفح أو الجهاز، بل تعتمد على حقيقة أن المستخدم قد تم تسجيل الدخول بالفعل إلى موقع الويب، وعندما يقوم المستخدم بتسجيل الدخول إلى موقع ويب، يقوم الموقع بتعيين ملف تعريف ارتباط يسمى ملف تعريف ارتباط الجلسة، ويحتوي ملف تعريف ارتباط الجلسة على معرف فريد يربط المستخدم بالجلسة الحالية.

    أي تعتمد على جلب عمليات غير مصرح بها من المستخدم عبر تنفيذ أوامر داخل موقع ويب حيث قد تكون المستخدم قد قام بتسجيل الدخول، والهجمات لا تستند إلى بيانات الاعتماد نفسها، بل تستفيد من جلب الجلسة (Session) النشطة في المتصفح.

    وبالتبعية عندما يقوم المهاجم بتنفيذ هجوم CSRF، فإنه يقوم بإرسال طلب ويب إلى موقع الويب نيابة عن الضحية، ويتضمن الطلب ملف تعريف ارتباط الجلسة للضحية، وعند تلقى موقع الويب الطلب، فإنه يتحقق من ملف تعريف ارتباط الجلسة ويسمح للطلب بالمضي قدمًا.

    وأحيانًا تُخزن بيانات الاعتماد داخل الكوكيز، وإن كان الأمر كذلك، فقد يتمكن المهاجم من استخدام هجوم CSRF للحصول على بيانات اعتماد الضحية، ولكن ذلك النوع من الهجمات أقل شيوعًا من الهجمات التي تعتمد على ملف تعريف ارتباط الجلسة.

    وبيانات الاعتماد (مثل اسم المستخدم وكلمة المرور) تُرسَل عادةً في كل طلب (request)، سواء كان ذلك عبر الكوكيز أو الهيدرات (headers) الأخرى، والهجمات CSRF تستفيد من عدم فصل الجلسات بشكل صحيح.

    بتاريخ 10 دقائق مضت قال سيف الدين حسنات:

    - انا كمستخدم اسجل دخولي في مواقع معينة مرة واحدة فقط ثم المرات التالية ادخل الى الموقع دون تسجيل الدخول هل هذه العملية تعرض المستخدم لهجمات CSRF ؟

    نعم ولا في نفس الوقت، حيث يجب على الموقع الويب تنفيذ تدابير أمان مناسبة لحماية ضد هجمات CSRF، وذلك يتضمن استخدام رموز عشوائية موقعة (CSRF tokens) في الطلبات للتحقق من أن الطلب يأتي من المستخدم الحقيقي وليس من مهاجم.

    ولكن عندما تقوم بتسجيل الدخول إلى موقع ويب، يتم إنشاء ملف تعريف ارتباط جلسة جديد، وفي حال لم تقم بتسجيل الخروج من الموقع، فسيظل ملف تعريف ارتباط الجلسة هذا صالحًا.

    هنا يستطيع المهاجم استخدام ملف تعريف ارتباط الجلسة لتنفيذ هجوم CSRF، مثل إنشاء رابط ويب يحتوي على رمز ضار، وعند نقر المستخدم على الرابط، يتم إرسال طلب ويب ضار إلى موقع الويب نيابة عن المستخدم.

    لذا، إن استطعت، يُنصح بتسجيل الخروج بعد الانتهاء من الجلسة لضمان أمان الجلسة، وكذلك تحديث وتعزيز إجراءات الأمان على الموقع لتقليل مخاطر هجمات CSRF، والإلتزام بالتالي:

    • سجل الخروج من المواقع التي لا تستخدمها بانتظام.
    • استخدم أدوات الأمان التي تساعد على حماية حساباتك من الهجمات الإلكترونية.
    • كن حذرًا من الروابط التي تتلقاها في البريد الإلكتروني أو من مواقع الويب التي لا تثق بها.
    • إذا كنت تشك في أنك قد تعرضت لهجوم CSRF، فقم بتغيير كلمات المرور الخاصة بك على الفور.
    • شكرًا 1
  9. الخريطة ستكون كالآتي:

    • بداية: تبدأ التنفيذ هنا.
    • X=1: نقوم بتهيئة المتغير X ليكون 1.
    • حاصل الضرب: نبدأ بقيمة متغير (ضرب) تكون 1.
    • ضرب = ضرب * X: نقوم بضرب القيمة الحالية للمتغير (ضرب) في X.
    • X < 10: نتحقق من أن قيمة X لا تزال أقل من 10.
    • X = X + 2: نزيد قيمة X بمقدار 2 (للحصول على الأعداد الفردية).
    • انهاء: عندما تكون قيمة X أكبر من 10، يتم إنهاء العملية.

    عليك رسمها بالمنطق السابق.

     

  10. أرجو منك التعليق أسفل الدرس لمساعدتك بشكل أفضل.

    بتاريخ 15 دقائق مضت قال Moayyad:

    السؤال الاول : هل بالامكان اضافة "+" بدل من "Number" لتحويل القيم المدخله الى اعداد؟

    تستطيع ذلك، حيث نستخدم عامل الجمع + لتحويل القيم إلى أعداد بدلاً من استخدام الدالة Number، ويُطلق على تلك العملية اسم "Unary Plus"، وذلك لأن العامل + يُستخدم بمفرده لتحويل القيم إلى أعداد.

    وتستطيع الإعتماد على Unary Plus مع أي نوع من القيم، ولكن النتيجة ستكون NaN إذا كانت القيمة لا تمثل رقمًا صالحًا.

    بتاريخ 15 دقائق مضت قال Moayyad:

    السؤال الثاني: لماذا لا تعمل معي ${total} بشكل صحيح و هل الفائدة منها مثل عرض قيمة total  في لغة جافا؟ 

    صحيح، لكن في الكود الخاص بجافا أنت قمت بكتابة المتغير ولم تضعه بداخل علامتي إقتباس.

    أما في جافاسكريبت فعلت ذلك، ولا نستطيع كتابة متغير داخل نص أي علامتي إقتباس، لكن هناك طريقة لفعل ذلك من خلال ميزة قالب النص Template literal ولكن نكتب `` بدلاً من ' '  لاحظ علامتي إقتباس مائلتين وعليك قراءة الشرح التالي لتفهم الأمر:

     

    • شكرًا 1
  11. الكود بحاجة إلى إعادة كتابة بالكامل لهيكلة الصفحة بشكل جيد، ومبدأيًا سيكون شكل الكود كالتالي:

    <!DOCTYPE html>
    <html lang="en">
    
    <head runat="server">
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Click to Chic: Elevate Your Style with Online Shopping</title>
        <link rel="stylesheet" href="Mystyle.css">
        <style>
            body {
                background: #f8f8f8;
                margin: 0;
                font-size: 16px;
                line-height: 1.6;
                font-family: 'Arial', sans-serif;
            }
    
            header {
                background: #3498db;
                color: #fff;
                padding: 1rem;
                display: flex;
                justify-content: space-between;
                align-items: center;
            }
    
            #logo img {
                width: 100px;
                height: auto;
            }
    
            nav {
                display: flex;
                align-items: center;
            }
    
            nav ul {
                list-style: none;
                display: flex;
                margin: 0;
            }
    
            nav li {
                margin-right: 20px;
            }
    
            nav a {
                text-decoration: none;
                color: #fff;
                font-weight: bold;
                font-size: 1.1rem;
            }
    
            main {
                padding: 2rem;
                box-sizing: border-box;
            }
    
            #footer {
                background: #3498db;
                color: #fff;
                padding: 2rem;
                display: flex;
                justify-content: space-between;
                align-items: center;
            }
    
            #footer .social-links {
                list-style: none;
                display: flex;
                margin: 0;
                padding: 0;
            }
    
            #footer .social-links li {
                margin-right: 10px;
            }
    
            #footer .social-links img {
                width: 40px;
                height: auto;
            }
    
            #footer-content {
                flex-grow: 1;
                margin-left: 2rem;
            }
    
            #bot-left {
                font-size: 0.8rem;
            }
        </style>
    </head>
    
    <body>
        <header>
            <div id="logo">
                <img src="https://placehold.co/100x100" alt="Logo">
            </div>
            <nav>
                <ul>
                    <li><a href="home.aspx">Home</a></li>
                    <li><a href="Women.aspx">Women Clothes</a></li>
                    <li><a href="Men.aspx">Men Clothes</a></li>
                    <li><a href="About Us.aspx">About Us</a></li>
                    <li><a href="Contact Us.aspx">Contact Us</a></li>
                </ul>
            </nav>
            <asp:LoginView ID="LoginView1" runat="server">
                <AnonymousTemplate>
                    Welcom!,&nbsp;
                    <a href="Register.aspx">Register</a> &nbsp;|&nbsp;
                    <a href="Login.aspx" style="text-align: right">Login</a>
                </AnonymousTemplate>
                <LoggedInTemplate>
                    <asp:LoginName ID="Log_name" runat="server" FormatString="Hi {0}!" />
                    <asp:LoginStatus ID="Log_stat" runat="server" LogoutText="Logout" LogoutPageUrl="~/default.aspx"
                        LogoutAction="Redirect" LoginText="Login" OnLoggingOut="Log_stat_LoggingOut" />
                </LoggedInTemplate>
            </asp:LoginView>
        </header>
    
        <main>
            <!-- Your main content goes here -->
        </main>
    
        <footer id="footer">
            <div id="footer-sidebar">
                <ul class="social-links">
                    <li>
                        <a href="https://www.whatsapp.com/" target="_blank">
                            <img src="https://placehold.co/40x40" alt="WhatsApp">
                        </a>
                    </li>
                    <li>
                        <a href="https://www.twitter.com/" target="_blank">
                            <img src="https://placehold.co/40x40" alt="Twitter">
                        </a>
                    </li>
                    <li>
                        <a href="https://www.instagram.com/" target="_blank">
                            <img src="https://placehold.co/40x40" alt="Instagram">
                        </a>
                    </li>
                    <li>
                        <a href="https://www.facebook.com/" target="_blank">
                            <img src="https://placehold.co/40x40" alt="Facebook">
                        </a>
                    </li>
                </ul>
            </div>
            <div id="footer-content">
                <h1>Online Shopping</h1>
                <p>Providing high-quality garments, shoes, and watches at a low price</p>
    			            2023 created by ALNABHANI
    
            </div>
          
        </footer>
    </body>
    
    </html>

     

  12. استخدم الدالة pd.concat، ويجب أن تحدد المحور الذي تريد الدمج عليه، سواء كان ذلك على محور الأعمدة (axis=1) أو على محور الصفوف (axis=0)، وأنت تريد الدمج على محور الأعمدة:

    import pandas as pd
    
    # الأعمدة المستخدمة من selected_rows
    columns_selected_rows = [0, 2, 1, 3, 4, 5, 6]
    
    # الأعمدة المستخدمة من selected_rows2
    columns_selected_rows2 = [3, 4, 5, 6]
    
    # قراءة البيانات من ملفات Excel
    df = pd.read_excel("2023.xlsx", header=None, usecols=columns_selected_rows)
    df2 = pd.read_excel("AAA.xlsx", header=None, usecols=columns_selected_rows2)
    
    # اختيار الصفوف المطلوبة
    selected_rows = df.iloc[8::2].reset_index(drop=True)
    selected_rows2 = df2.iloc[9::2].reset_index(drop=True)
    
    # دمج الجدولين على محور الأعمدة
    result_df = pd.concat([selected_rows, selected_rows2], axis=1)
    
    # طباعة النتيجة
    print(result_df)

    بحيث يتم دمج selected_rows و selected_rows2 على محور الأعمدة باستخدام pd.concat، ثم طباعة DataFrame الناتج result_df.

    إذا كنت ترغب في تغيير ترتيب الأعمدة، فتتوفر دالة set_axis().

  13.  المشكلة تكمن في كيفية استخدام reset_index، وتحديداً في الخطوتين:

    selected_column_1.reset_index(drop=True, inplace=True)
    selected_column_2.reset_index(drop=True, inplace=True)

    فعند استخدام inplace=True، يؤدي إلى تعديل DataFrame المحدد مباشرة بدون إعادة إعادة الجدول، وبالتالي يجب عليك تعديل الكود بحيث يتم حذف استخدام inplace=True.

    الأمر الذي يجعل الإطارين selected_column_1 و selected_column_2 تعديل بنية البيانات الأصلية:

    selected_column_1.reset_index(drop=True)
    selected_column_2.reset_index(drop=True)

    لذلك، يجب عليك تحديث الجزء النهائي من الكود ليصبح كالتالي:

    import pandas as pd  
    
    df = pd.read_excel("AAA.xlsx", header=None)
    selected_column_1 = df.iloc[8::2, [0,1,2,3,4,5,6]]
    selected_column_1.reset_index(drop=True)
    selected_column_2 = df.iloc[9::2, [2,7,8,9,10]]
    selected_column_2.reset_index(drop=True)
    
    A = pd.DataFrame(selected_column_1, columns=['العمر','رقم الهاتف','إسم العائة','الإسم الأول'])
    B = pd.DataFrame(selected_column_2, columns=['نتيجة الدور','أعمال السنة','النهائي','المجموع','التقدير'])

    ومن المفترض أن يظهر DataFrame A كما هو متوقع.

    في حال لم تكن تلك المشكلة لديك، حاول تحديد الأعمدة التي تريدها في DataFrame الجديد، أو تستطيع استخدام طريقة loc لتحديد الصفوف والصفوف التي تريدها، كالتالي:

    A = pd.DataFrame(selected_column_1, columns=['العمر','رقم الهاتف','إسم العائة','الإسم الأول'])

    أو استخدام الطريقة التالية لتحديد الصفوف والصفوف التي تريدها:

    A = pd.DataFrame(selected_column_1.iloc[0:10, [0,1,2,3,4,5,6]], columns=['العمر','رقم الهاتف','إسم العائة','الإسم الأول'])

     

  14. نستخدم الاتصال الآمن (HTTPS) بدلاً من الاتصال غير الآمن (HTTP) لضمان أمان نقل البيانات بين المستخدم والخادم، حيث أن HTTPS يوفر تشفير الاتصال، مما يعني أن البيانات التي يتم نقلها بين المتصفح والخادم تكون مشفرة وأكثر أمانًا من الهجمات مثل الاعتراض على الاتصال.

    وبالتالي عند استخدام تسجيل الدخول بواسطة فيسبوك، يوجد سياسة تستدعي استخدام HTTPS للحفاظ على أمان البيانات الحساسة التي يتم تبادلها، أيضًا الطلبات الصادرة من الصفحات التي تستخدم تسجيل الدخول بواسطة فيسبوك ملزمة بالاتصال عبر HTTPS.

    • أعجبني 1
  15. المطلوب هو التالي:

    1- عرض صندوق الوارد الخاص بمستخدم (أحد أعضاء المجموعة)، ويجب أن يشمل ذلك كل من رسائل البريد الإلكتروني المباشرة ورسائل البريد الإلكتروني إلى مجموعاته.

    ولعرض صندوق الوارد الخاص بمستخدم، ستحتاج إلى استعلام جدول Email وتصفية النتائج حسب عمود ReceiverID لتطابق معرف المستخدم، وستحتاج أيضًا إلى الانضمام إلى جدول UserGroup لتحديد المجموعات التي يكون المستخدم عضوًا فيها، ويمكن اعتبار أي رسائل بريد إلكتروني يتم إرسالها إلى مجموعة يكون المستخدم عضوًا فيها جزءًا من صندوق بريدهم.

    2- عرض جميع رسائل البريد الإلكتروني المرسلة بواسطة مستخدم (أحد أعضاء المجموعة) مرتبة حسب تاريخ البريد الإلكتروني.

    و ستحتاج إلى استعلام جدول Email وتصفية النتائج حسب عمود SenderID لتطابق معرف المستخدم، وتستطيع بعد ذلك فرز النتائج حسب عمود emailDate لترتيبها حسب التاريخ.

    3- عرض جميع رسائل البريد الإلكتروني في مجموعة المستخدمين

    استخدم هنا استعلام جدول Email والانضمام إلى جدول UserGroup لتحديد رسائل البريد الإلكتروني التي تم إرسالها إلى المجموعة، ثم تصفية النتائج حسب عمود GroupID لتطابق معرف المجموعة.

    4- إضافة مستخدم إلى مجموعة

    هنا عليك إدراج صف جديد في جدول UsersinGroup مع معرف المستخدم ومعرف المجموعة.

  16. حاول أولاً إعادة تشغيل المتصفح، وإن استمرت المشكلة، قم بالضغط على أيقونة القفل بجانب اسم الموقع ثم اختر cookies and site data:

    Snag_a73a0f.png.174597ab06e9023a96f6520ddfd836b2.png

    ثم اختر manage  cookies and site data وستظهر لك نافذة قم بحذف أي ملفات مؤقتة بالضغط على أيقونة سلة المهملات، ثم اضغط على done، والآن أعد تحديث الصفحة وتسجيل الدخول وتفقد هل تم حل المشكلة أم لا.

    Snag_a88d89.png.dffb8acc968ed27cc988eb8f54299b1d.png

  17. فرضاً أن لديك جدولين posts و comments، وتحتاج إلى عرض البيانات من كل جدول في صفحة واحدة.

    ففي المتحكم PostController، نكتب التالي:

    public function showPage()
    {
        $posts = Post::all();
        $comments = Comment::all();
    
        return view('page.show', compact('posts', 'comments'));
    }

    في صفحة العرض (resources/views/page/show.blade.php):

    <!-- عرض البيانات من جدول posts -->
    <h2>Posts</h2>
    @foreach ($posts as $post)
        <p>{{ $post->title }}</p>
        <p>{{ $post->content }}</p>
    @endforeach
    
    <!-- عرض البيانات من جدول comments -->
    <h2>Comments</h2>
    @foreach ($comments as $comment)
        <p>{{ $comment->text }}</p>
    @endforeach

    و لاحظ أنك تستطيع استخدام أي نوع من العمليات البرمجية للتحكم في كيفية عرض البيانات، مثل إضافة شروط if أو القيام بعمليات تحويل البيانات قبل عرضها.

    • شكرًا 1
  18. لتسهيل الأمر سنستخدم قاعدة بيانات SQLite، وإليك مثال بسيط باستخدام بايثون ومكتبة SQLite:

    1- إنشاء قاعدة بيانات وجدول

    import sqlite3
    
    # اتصال بقاعدة البيانات (ستقوم بإنشاء ملف بنفس موقع السكربت)
    conn = sqlite3.connect('database.db')
    cursor = conn.cursor()
    
    # إنشاء جدول لتخزين المستخدمين ومنشوراتهم
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS users (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            name TEXT NOT NULL
        )
    ''')
    
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS posts (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            user_id INTEGER,
            content TEXT NOT NULL,
            timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            FOREIGN KEY (user_id) REFERENCES users(id)
        )
    ''')
    
    # حفظ التغييرات وإغلاق الاتصال
    conn.commit()
    conn.close()

    2- إضافة مستخدم ومنشورات له

    def add_user_and_posts(name, posts):
        conn = sqlite3.connect('database.db')
        cursor = conn.cursor()
    
        # إضافة المستخدم
        cursor.execute('INSERT INTO users (name) VALUES (?)', (name,))
        user_id = cursor.lastrowid  # استخراج معرف المستخدم الجديد
    
        # إضافة المنشورات
        for post in posts:
            cursor.execute('INSERT INTO posts (user_id, content) VALUES (?, ?)', (user_id, post))
    
        # حفظ التغييرات وإغلاق الاتصال
        conn.commit()
        conn.close()
    
    # مثال على إضافة مستخدم ومنشورات
    add_user_and_posts('John Doe', ['منشور 1', 'منشور 2', 'منشور 3'])

    3- استرجاع أحدث منشور وعرضه

    def get_latest_post(user_id):
        conn = sqlite3.connect('database.db')
        cursor = conn.cursor()
    
        # الحصول على أحدث منشور للمستخدم
        cursor.execute('SELECT content, timestamp FROM posts WHERE user_id = ? ORDER BY timestamp DESC LIMIT 1', (user_id,))
        result = cursor.fetchone()
    
        # إغلاق الاتصال
        conn.close()
    
        return result
    
    # مثال على استرجاع أحدث منشور
    latest_post = get_latest_post(1)  # حيث 1 هو معرف المستخدم
    if latest_post:
        content, timestamp = latest_post
        print(f'أحدث منشور: "{content}" في {timestamp}')
    else:
        print('لم يتم العثور على منشورات')

     

    • أعجبني 1
  19. بتاريخ 2 ساعة قال Mohamed Iyed Boulemani:

    السلام عليكم و رحمة الله تعالى و بركاته... خطر في بالي تساؤل حول ما إذا كان الحساب سيُحظر اذا ارسلت لقطة شاشة في المحادثة لكي يتأكد منها مستقل

    لا مشكلة في ذلك، عليك فقط رفع كامل المحادثة كما أوضحت من خلال الأداة المذكورة وبدون تقطيع في الصورة الملتقطة، وأيضًا إرفاق ملفات المشروع النهائية الخاصة بالعميل.

×
×
  • أضف...