لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 08/14/20 في كل الموقع
-
مساء الخير.. افضل طريقه لحجز دومين.. وماهي فكرة الاعلانات المتعلقة بالمواقع؟1 نقطة
-
1 نقطة
-
غالبًا لا نقوم بإخبار المستخدم أن إسم المستخدم صحيح وكلمة السر، أشياء متعلقة بالحماية، لكن إذا أردت القيام بها فالطريقة كالتالي: أولًا تقوم بالبحث عن مستخدم في قاعدة البيانات عن مستخدم لديه الإسم المدخل في فورم تسجيل الدخول هكذا مثلًا: $stmt = $con->prepare("SELECT * from users WHERE username_users = ? limit 1"); // قمت بالبحث بإسم المستخدم فقط $stmt->execute(array($user)); // قمت بالبحث بإسم المستخدم فقط $row = $stmt->fetch(); $count = $stmt->rowcount(); الكود التالي يرجع القيمة 1 إذا كان هناك مستخدم بهذا الإسم والقيمة 0 إذا لم يكون هناك إي مستخدم بهذا الإسم. إذن في حالة كانت القيمة 0 سنقوم بعرض رسالة الخطأ: if ($count == 0 ) { echo "Username is wrong"; } else { // باقي الكود } وفي حالة كانت قيمة count تساوي 1، سنقوم بالتحقق من أن كلمة السر التي أدخلها المستخدم مطابقة لكلمة السر في قاعدة البيانات، في حالة لم تكن مطابقة سنعرض رسالة خطأ في حالة كنت متطابقة نقوم بالإنتقال لصفحة admin.php أو index.php if ($count == 0 ) { echo "Username is wrong"; } else { if($hashpass != $row['password_users']) { echo "Password is wrong"; // نقوم بعرض رسالة الباسورد خاطئ } else { // نقوم بتسجيل الدخول والإنتقال للصفحات $_SESSION['username'] = $user ; $_SESSION['id'] = $row['id_users']; $_SESSION['types'] = $row['types_users']; if($_SESSION['types'] == 2 || $_SESSION['types'] == 3){ header('location: index.php'); } if($_SESSION['types'] == 0 || $_SESSION['types'] == 1){ header('location: admin.php'); } } }1 نقطة
-
في البداية نقوم بالإتصال بقاعدة البيانات، ونبحث عن مستخدم يمتلك إسم مستخدم وكلمة سر مطابقة لما قمنا بإدخالها في فورم تسجيل الدخول. يقوم الكود التالي: $stmt = $con -> prepare("SELECT * from users WHERE username_users = ? AND password_users = ? limit 1"); $stmt->execute(array($user,$hashpass)); $row = $stmt->fetch(); $count = $stmt->rowcount(); بإعادة القيمة 1 في حالة كان هناك مستخدم يمتلك معلومات مطابقة للمعلومات المدخلة في الفورم. بإعادة القيمة صفر 0 في حالة لم يكن هناك أي مستخدم يمتلك معلومات مطابقة للمعلومات المدخلة في الفورم. الجزء الأول من الكود صحيح، أي الجزء الموجود داخل الشفرة التالية: if ($count > 0){ // باقي محتوى الكود } أما الجزء الثاني، فيجب تعويضه بهذا: } else { echo "error in password"; } لأنه في حالة لم يكن أي مستخدم يمتلك تلك المعلومات، ستكون قيمة $row مساوية للقيمة False، إذن لا يمكننا الحصول على إسم المستخدم من مستخدم غير موجود.1 نقطة
-
<?php // يمكن استخدام الاوامر ادناه لجميع السكربتات التي تطلب اتصال بقاعدة بيانات $dsn = 'mysql:host=localhost;dbname=tours'; // اسم السيرفر + اسم القاعدة $user = 'root'; // يوزر القاعدة $pass = ''; // الباسوورد $option = array ( PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8', // لجعل الجميع بهذا الاسم يقره عربي ); try { // الاتصال بالقاعدة $con = new PDO($dsn ,$user,$pass,$option); $con->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ // في حالة لم يتصل echo "failed connect" . $e->getMessage(); } ?>1 نقطة
-
أعلم، أريد فقط سطر الكود، الذي تقوم به بإدخال معلومات الإتصال بقاعدة البيانات ( إسم المستخدم، كلمة السر، إسم قاعدة البيانات، ..)1 نقطة
-
لو ممكن تقوم بإرفاق ملف int.php.1 نقطة
-
أنت في البداية، ذهبت لقاعدة البيانات وقمت بطلب المستخدم الذي لديه إسم مستخدم وكلمة سر معينة. إذن في حالة كانت هناك مستخدم بهذه المعلومات، سنقوم بالدخول للشرط الأول، وفي حالة لم يكن المستخدم موجودًا فمباشرة سنقوم بعرض رسالة الخطأ. لن نحتاج لإعادة إختبار هل المعلومات مطابقة أو لا، لأنها خاطئة بالفعل، ولا يوجد أي مستخدم بهذه المعلومات.1 نقطة
-
صراحة لم أفهم الفكرة التي تشتغل عليها، فهمت الجزء الأول منها لكني لم أفهم الشرط الثاني. if ($count > 0) { // تقوم بتسجيل البيانات ثم تقوم بالإنتقال لإحدى الصفحات على حسب نوع المستخدم } else { // هذا المستخدم غير موجود أي لا نستطيع أخد قيمة خاصية // username_users منه // يعني يجب عرض رسالة الخطأ مباشرة }1 نقطة
-
عاشت ايدك على التوضيح الجميل اخ عزام اخي بس استفسار اذا الاشاره ضعيفة راح تستمر ايقونة loading بالظهور الى ان يتم تحميل الصفحة بصورة كاملة ؟؟1 نقطة
-
مرحبًا @Ahmed Alhamdany, لعمل تأثير التحميل (Loading) ريث الصفحة تكتمل التحميل , يحب عليك في كل صفحة عمل التالي: وضع عنصر يحمل صورة متحرّكة و نقوم بتوسيطه في منتصف الصفحة إخفاء جسم الصفحة كاملاً بإستخدام CSS بتنسيق body: visible; و بإستخدام لغة الجافا سكريبت نتحكم بإخفاء عنصر Loading بعد إكتمال الصفحة , و نظهر جسم الصفحة مجدداً بتغير التنسيق عن طريق الحافا سكريبت . مثال يعمل (يستخدم نسخة Jquery من الجافا سكريبت): <!DOCTYPE html> <html dir="rtl"> <head> <!-- للصفحة Jquery دعم --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <style> /*إخفاء عنصر الجسم*/ body { overflow: hidden; } /*Loading تنسيق عنصر الأب لعنصر */ #preloader { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: #fff; z-index: 99; } /*و إعطاء صورة متحركة له Loading تنسيق عنصر */ #status { width: 200px; height: 200px; position: absolute; left: 50%; top: 50%; background-image: url(https://raw.githubusercontent.com/niklausgerber/PreLoadMe/master/img/status.gif); background-repeat: no-repeat; background-position: center; margin: -100px 0 0 -100px; } </style> </head> <body> <!--Loading عنصر الذي يحتوي على --> <div id="preloader"> <div id="status"></div> </div> <h1>مرحبًا</h1> <script> $(window).on('load', function() { // نتأكد من إكتمال الصفحة $('#status').fadeOut(); //Loading هنا نقوم بإخفاء عنصر $('#preloader').delay(350).fadeOut('slow'); //Loading إخفاء عنصر الأب لعنصر $('body').delay(350).css({'overflow':'visible'});// إظهار جسم الصفحة }); </script> </body> </html>1 نقطة
-
يمكن عمل المطلوب كالآتي: #include <iostream> using namespace std; void Multiply(const int[], const int[][3], int[], int); int main(){ int n; cin >> n; int v_array[n]; int m_array[n][3]; int o_array[3]; for (int i=0; i<n; i++) cin >> v_array[i]; for (int i=0; i<n; i++) for(int j=0; j<3; j++) cin >> m_array[i][j]; Multiply(v_array,m_array,o_array,n); for(int j=0; j<3; j++) cout<<o_array[j]<<" "; return 0; } void Multiply(const int v_arr[], const int m_arr[][3], int o_arr[], int size){ int current_sum; for (int i=0; i<3; i++){ current_sum = 0; for(int j=0;j<size;j++){ current_sum += v_arr[j] * m_arr[j][i]; } o_arr[i] = current_sum; } } المطلوب هو تعريف دالة Multiply والتي تقوم بضرب متجه من الحجم 1 * ن في مصفوفة من الحجم ن * 3. شرط الضرب للمصفوفات في هذه الحالة دائماً متحقق، وشرط الضرب هو أن عدد أعمدة المصفوفة الأولى تساوي عدد صفوف المصفوفة الثانية. وهو دائماً متحقق لأن حجم المتجه هو 1 * ن أي أن عدد أعمدته تساوي ن ، وحجم المصفوفة هو ن*3 ، أي أن عدد الصفوف تساوي ن. بالتالي عدد أعمدة المتجه الأول مساوي لعدد صفوف المصفوفة، بالتالي يمكن ضربهم. تتم عملية الضرب في loop التالية بضرب المتجه في كل عمود للمصفوفة، وينتج عن عملية الضرب العنصر المناظر في المتجه الناتج. int current_sum; for (int i=0; i<3; i++){ current_sum = 0; for(int j=0;j<size;j++){ current_sum += v_arr[j] * m_arr[j][i]; } o_arr[i] = current_sum; } يمكنك تجربة الكود كامل من هنا.1 نقطة
-
يبدو أن سبب المشكلة هي أن متغير $row ليس مصفوفة Array لكن قيمته bool أي إما True أو False. غالبًا ستكون قيمة $row هي False، لذالك لا تستطيع أخد الخاصية username_users من المتغير. يمكنك كتابة الكود التالي لحل المشكلة: if( is_array($row) && ($user == $row['username_users'])){ echo "hello"; } في هذه الشيفرة قمنا بالتأكد من أن متغير $row هو عبارة عن مصفوفة، قبل التحقق من تواجد الخاصية username_users ومقارنة قيمتها مع $user.1 نقطة
-
مرحباً عصام .. أنا لم أفهم ماذا تقصد بالضبط ؟ عن أي كورس تتحدث ؟ إذا كنت تتحدث عن دورة تطوير تطبيقات الويب باستخدام لغة PHP فستجد كافة المسارات التي ستتطرق لها الدورة و التي تتمحور حولها في قسم مسارات الدورة و هي لا تشمل لغة ال assembly لأن كلاهما شيء مختلف عن الآخر فلغة ال PHP هي لغة تم تصميمها أساساً لتعمل في جهة الخادم و تم إنشاؤها لتُساعد في تطوير الويب و أكثر ما يُميزها دمج شيفرات ال Html معها. أما لغة التجميع ( Assembly ) فهي لغة قريبة من لغة الآلة بالمقابل قامت هذه اللغة بتسهيل عملية البرمجة على المبرمجين و ذلك لصعوبة الكتابة و تذكر أوامر لغة الآلة و تُعتبر لغة التجميع لغة منخفضة المُستوى و يتطلب فهم هذه اللغة معرفة شاملة عن وحدة التحكم المركزية و معالج الحاسب بالإضافة إلى الذاكرة و ذلك لأنها أقرب لغة للحاسب .1 نقطة
-
مرحباً .. يُمكن عمل البرنامج بالشكل التالي: #include <iostream> using namespace std; /* * دالة لحساب مجموع مضاعفات عدد ما * num => هو العدد المطلوب حساب مضاعفاته * limit => هو الحد الأعلى */ int sumOfMultiples(int num, int limit) { int sum = 0; for (int i = 1; i <= limit ; ++i) { // حلقة فور من 1 إلى الحد الأعلى if (i % num == 0) // إذا كان العدد الحالي يقبل القسم على العدد المطلوب sum += i; // إضافة العدد إلى المجموع } return sum; // إرجاع قيمة المجموع } /* * دالة لحساب عدد مضاعفات عدد ما * num => هو العدد المطلوب حساب عدد مضاعفاته * limit => هو الحد الأعلى */ int countOfMultiples(int num, int limit) { int count = 0; for (int i = 1; i <= limit ; ++i) { if (i % num == 0) // إذا كان العدد الحالي يقبل القسم على العدد المطلوب count++; // نضيف 1 إلى عدد المضاعفات } return count; } /* * دالة لحساب معدل مضاعفات عدد ما * num => هو العدد المطلوب حساب معدل مضاعفاته * limit => هو الحد الأعلى */ float avgOfMultiples(int num, int limit) { return (float) sumOfMultiples(num, limit) / countOfMultiples(num, limit); } int main() { cout << "Sum of multiples of 3 <= 100: " << sumOfMultiples(3,100); // إستعمال العدد 3 و الحد الأعلى 100 cout << "\nCount of multiples of 3 <= 100: " << countOfMultiples(3,100); cout << "\nAvg of multiples of 3 <= 100: " << avgOfMultiples(3,100); return 0; } يُمكنك إستبدال المعاملات 3 و 100 إلى أي أعداد أخرى و ستجد نتيجة مُغايرة و هذه نتيجة البرنامج: يُمكنك تجربة البرنامج من خلال الرابط التالي: إضغط هنا بالتوفيق1 نقطة
-
يمكن عمل المطلوب كالآتي: #include <iostream> using namespace std; int minimumNumberOfSteps(int n, int count){ if (n==1){ return count; } else if(n%3 == 0){ return minimumNumberOfSteps(n/3, count+1); } else if(n%2 == 0){ return minimumNumberOfSteps(n/2, count+1); } else{ return minimumNumberOfSteps(n-1, count+1); } } int main() { int n; cout<<"Please enter n"; cin >> n; int answer = minimumNumberOfSteps(n,0); cout<< answer << endl; return 0; } في الدالة المعرفة تستخدم الrecursion مثل المطلوب وتأخذ متغيرين هما العدد n، وعدد الخطوات التي تم عملها count حتى الآن، وتطبق الأربع حالات المعطاه وهي: إذا كانت قيمة n مساوية للواحد نقوم بإرجاع عدد الخطوات التي تم عملها للوصول. إذا كانت n تقبل القسمة على ثلاثة، نقوم بإستدعاء الدالة مع إستبدال n بn/3 وإضافة واحد لعدد الخطوات count. إذا كانت n تقبل القسمة على اثنان أي انها عدد زوجي، نقوم بإستدعاء الدالة مع إستبدال n بn/2 وإضافة واحد لعدد الخطوات count. إذا كانت n لا تقبل القسمة على 2 أو ثلاثة، نقوم بإستدعاء الدالة مع إستبدال n بn-1 وزيادة واحد لعدد الخطوات count. يمكنك تجربة الكود من هنا.1 نقطة
-
الفرونت اند مصطلح يعني به كل ما يظهر للموقع الخاص بك للزائر من عناصر وواجهات سواء الصفحات او المقالات او المنتجات فكل ما يندرج تحت واجهة الموقع للزائر فهو فرونت اند ويندرج بها كذلك اللغة العربية فى حزم اللغات الباك اند هو عكس الفرونت اند فيقصد بالباك اند هو الجزء الخفي عن زائر موقعك او المستخدم العادي لموقعك مثل لوحة التحكم ويدخل تحت نطاق الباك اند مثل لوحة تحكم المنصات كـ لوحة تحكم الادارة فى ووردبريس او بريستاشوب او ماجنتو من خيارات تحكم وترجمة حزمة اللغة لهذة الاجزاء الخفية عن الزائر1 نقطة
-
ال front End هو الواجهة التي يتعامل معها المستخدم مثل واجهة موقع حسوب حيث يمكنك إضافة أسئلة و الإعجاب و النقر على أزرار و ما إلى ذلك. و يتم بناء واجهات المستخدم باستخدام تقنيات متعددة منها: HTML و CSS و JavaScript أو مكتبات مثل React.js و Vue. js أو إطارات عمل مثل Angular.js أما ال backend فهو الجزء المسئول عن ال logic و كيفية عمل التطبيق و إرسال بيانات بناء على تفاعلات المستخدم و ما إلى ذلك: ويتم بناء ال backend باستخدام تقنيات متعددة كذلك منها : Django و التي تستخدم لغة python Node.js و Express.js باستخدام JavaScript. Laravel باستخدام php. و غيرها. و يوجد أيضا قسم آخر و هو قواعد البيانات databases حيث يتم تخزين البيانات مثل بيانات المستخدم على سبيل المثال. من أمثلة قواعد البيانات ما يلي: Mongodb Postgresql MySql و غيرها.1 نقطة
-
السلام عليكم، هناك نوعين من المواقع الإلكترونية: موقع ثابت أو static website: و هو أي موقع يتميز بواجهته الثابتة التي لا تتغير مهما دخلت إليه من حواسيب مختلفة، مثال: أي صفحات ويب عادية تحتوي فقط على Front-End. موقع ديناميكي أو dynamic website: و هو أي موقع تتغير واجهته على حسب الحاسوب أو الجهاز أو الحساب الذي دخلت به، مثال: كل مواقع التواصل الاجتماعي (لاحتواءها على قسم الback-end في موقعها)... و من هنا نستنتج أنه لكي تنشأ موقعا ديناميكيا فعليك تعلم قسمين أساسين و اللذان هما: Front-End: وهي واجهة المستخدم أي كل ما يتعلق بالألوان و الأشكال و الكتابة التي يراها المستخدم عند زيارة أي موقع، و هذا القسم ينشأ باستخدام ثلاث لغات أساسية: Html, CSS, Javascript مع بعض التقنيات و المكتبات التي تسهله. Back-End: و هو القسم المسؤول عن توليد أكواد Front-End بطريقة دينامكية و متغيرة على حسب المستخدم أي مثلا عندما يدخل X موقع instagram.com فلن يرى نفس المحتوى الذي سيراه Y إذا دخل نفس الموقع، هذه هي وظيفة الباك إند و التي تطبق باستعمال لغات كثيرة منها php أو مكتبة nodejs الخاصة بلغة Javascript. ملحوظة: لا يمكن لأي أحد تعلم الbackend مباشرة دون تعلم أساسيات القسم الأول. و هناك قسم آخر بعد الباك إند و هو databases أي قواعد البيانات.1 نقطة
-
مرحباً أحمد: ما هي مواصفات جهازك ؟ المفترض أن في دراسة HTML - CSS -JS الجهاز البسيط يساعدك في الدراسة بشكل سلسل ولن تواجه أي مشاكل بالإضافة إلى برنامج VSCode كمحرر. أما بالنسبة لتعلم الأندرويد فهناك العديدي من اللغات: React Native Native Script Flutter JQuery mobile ويكفيك برنامج vscode كمحرر وأيضا ستحتاج android studio أو genymotion لعمل صور للأندرويد لمحاكاة جهاز الأندرويد على الكمبيوتر أو يمكنك مباشرة تشغيل البرنامج البرمجي على هاتف حقيقي1 نقطة
-
نعم أختي الكريمة يمكن ان تنشري فيديوهات ليست ملكك على اليوتيوب وتكسبي منها أموال ان كانت غير منشورة عليه مسبقًا شرط أن تكون حقوق ملكيتها عامة.1 نقطة