لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 04/28/21 في كل الموقع
-
إن android studio هو البيئة المتكاملة لبرمجة تطبيقات الأندرويد و فلاتر و توفر للمبرمج جميع الأدوات الضرورية من تحمل المكتبات لتشغيل و تهيئة المحاكي و اقتراح التحديثات في Gradle و الكثير من الميزات. لكن أندرويد ستديو يستهلك الكثير من موارد الجهاز، فيميل المطورين لاستخدام vs code بعد تثبيت الإضافات الخاصة ب flutter + Dart وتقريبا توفران معظم الأدوات المساعدة لكن ليس مثل أندرويد استديو. أي السبب الرئيسي برأيي هو استخدام vs code ذاكرة أقل.2 نقاط
-
- laravel - flutter أريد عند عمل تسجيل حساب جديد باستخدام رقم الجوال ( يتم إرسال كود حتى يتأكد أن الجوال هو خاصة المستخدم وليس لشخص آخر )، ونفس الموضوع عند ( استعادة كلمة المرور ) لو الجواب طويل / أرشدوني إلى مصادر وأنا مستعد لأتابعها كاملة.1 نقطة
-
الكود من صفحة المتحكم public function edit() { //عرض الصفحة الشخصية الخاصة بتعديل البيانات $user = User::find(auth()->user()->id); return view('auth.profile',compact('user')); } الكود من صفحة الويب oute::get('/', function () { if (Auth::check()) { return redirect('/home'); }else{ return view('Auth/login'); } }); Route::group(['middleware' => ['auth']], function() { Route::get('user/profile', [UserConroller::class, 'edit']); }); Auth::routes(); صورة الملف المقصود أدناه مع ذلك لا تظهر صفحة الملف الشخصي لي لماذا؟1 نقطة
-
برنامج android studio يعتبر بيئة تطوير متكاملة مايسمى بال IDE مخصصه لتطوير تطبيقات الاندرويد حيث كلما ما تحتاجه من تحرير الأكواد وال Android SDK والمحاكي وغيرها من الأدوات في مكان واحد لهذا برنامج Android Studio حجمه كبير وثقيل ويحتاج الى الكثير من الرام (ذاكرة الوصول العشوائي) بينما VS Code هو عبارة عن محرر أكواد عام للعديد من لغات البرمجة وهذا هو أدني وظائفه من دون أي إضافات ولهذا يكون خفيف ويستهلك رام أقل ولكن لديك العديد من الإضافات الذي تسهل عملك وأيضا من أهم ما يميز VS Code مفتوح المصدر البساطة والسهولة في الإستخدام والتصميم الأداء السريع والإستهلاك الأقل لموراد الحاسوب القدرة على توسعة البرنامج بإستخدام العديد من الإضافات1 نقطة
-
نفترض ان عندي items في جدول بالموقع وبنهاية كل صف في الجدول يوجد زر لتعديل الitem عند الضغط على الزر يحولني لصفحة تعديل الitem التي بها form يحتوي على اسم الitem وال description وحقلid من نوع hidden فكما تعلمون اذا قام احد بفتح الpage source الخاصة بالموقع سيجد الid مكشوف له ويستطيع تعديله كما تعلمون انه عندما استقبل بيانات الform اقوم بعمل جملة update على البيانات المدخلة عندما يساوي حقل الid المُستقبل نفس الحقل بالداتا بيز أي:- UPDATE items SET item = ?, description = ? WHERE id = ? // bind id with $_POST['id'] فإذا كان الid الفعلي = 1 وقام الشخص بتعديل الid من الpage source وجعله يساوي 2 مثلا فسيتم تعديل item غير مسموح له بتعديلها.. السؤال هو.. هل يوجد أي طريقة لتشفير الid في الhidden input وفك تشفيرها عند استقبالها مرة اخرى في الphp ام لا؟ اريد تشفير حقل الid وإعادة فك تشفيره مرة اخرى عند استقباله ب php ارجو ان يكون الحل بإستخدام php او php laravel1 نقطة
-
هذه تسمى مشكلة صلاحيات و لاتحل عن طريق تشفير id بل نقوم بعمل Middleware تقوم بالتحقق من صلاحيات المستخدم يمكنعمل ذلك على النحو التالي: في المتحكم الخاص بك قم بوضع دالة التحقق على دالة التعديل class Foo extends Conroller { public function __construct() { $this->middleware('post-edit', ['only' => ['edit']]); // يتم التحقق من الصلاحيات قبل تنفيد الأمر بالتعديل } public function edit(Request $request, $id) { //تعديل المقال } } بعد ذلك نتأكد من الصلاحيات بواسطة post-edit middleware <?php namespace App\Http\Middleware; use Closure; class PostEditMiddleware { public function handle($request, Closure $next) { if(Auth::user()->id == $request->input('user_id')) // نتحقق أن العنصر خاص بالمستخدم ولديه صلاحية التعديل عليه return $next($request); return Response::make("Unauthenticated", 401); // في حالة ليس لديه الصلاحية نقوم بإسترجاع رسالة عدم الصلاحية } }1 نقطة
-
لا حاجة لتشفير الـ ID لحل المشكلة فعليا , عوضا عن ذلك يمكنك إنشاء دالة أو middleware يقوم بالتحقق من ملكية العنصر item قبل عمل أي تعديلات عليه . مثال عملي : <?php class YourController extends Controller { public function editItem(Request $request ,Item $item){ if(! $this->isOwner($item)){ return 'لا يمكنك تعديل العنصر'; } // تكملة العملية } private function isOwner($item){ if(auth()->user()->id == $item->user_id){ return true; } return false; }1 نقطة
-
يمكنك تشفير ال id في دالة ال edit ويكون مشفر وتضع قيمته المشفره ك hidden input و عندما تقوم بعمل form submit قم بفك التشفير عن ال id واستخدامه <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Crypt; class UserController extends Controller { public function edit(Request $request, $id) { $encryptedId = Crypt::encryptString($id); .... } // يكون ال id مشفر public function update(Request $request, $id) { $userId = Crypt::decryptString($id); .... } }1 نقطة
-
استخدم أندرويد استديو طالما أن مواصفات جهازك قادرة على تشغيله، لن تسبب أي مشكلة في كفائة جهازك. أي هما أداتين ممتازتين استخدم ما يريحك بالتعامل معه.1 نقطة
-
ليس هناك شيء مميز في الأمر فكل من vs code و android studio أدوات يستخدمها المطورون و ما دمت مرتاح مع أحدها في التطوير فيكفيك ذلك، هناك شيء و هو أن برنامج android studio به الكثير من الخصائص و يستهلك موارد الجهاز بشكل كبير من ذاكرة عشوائية و ما إلى ذلك فالتطوير على اندرويد ستوديو يتطلب جهاز بمواصفات أعلى بعكس vs code الذي حتى لو كان جهازك متوسط نسبيا تستطيع التطوير من خلاله.1 نقطة
-
هل هناك طريقة أبسط لتحميل ملف من خادم nodejs غير الطريقة المستعملة في الاسفل app.get('/get_intro', function(req, res){ const file = __dirname + '/video/intro.mp4'; const filename = path.basename(file); const mimetype = mime.lookup(file); res.setHeader('Content-disposition', 'attachment; filename=' + filename); res.setHeader('Content-type', mimetype); const filestream = fs.createReadStream(file); filestream.pipe(res); });1 نقطة
-
1 نقطة
-
الفكرة بسيطة كل ما عليك عند إرسال الكود في رسالة sms أيضا قم بتخزين الكود في جدول يحتوي على الأكواد التي تتولد مع تخزين token جهاز الشخص الذي سجل, وعند مقارنة الكود الذي وصل أنه تم إضافته من نفس التوكن للجهاز مع token المخزن تقوم بإنشاء الحدث الخاص بك.1 نقطة
-
السلام عليكم عندي مشكله انا اشتركت في الدوره امس في البدايه كان يشتغل بس لما جاء اليوم التاني كتبت كود و انهيت عملي بس الكود ما ظهر علما بان الخادم يظهر بلون الاخضر1 نقطة
-
لنفرض ان لدي اطار البيانات التالي df = DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3, 5]}) df A B 0 5 1 1 6 2 2 3 3 3 4 5 ممكن حدد احد السطور بناء على قيمة موجودة ضمن سطر معين عن طريق التعليمة: x = df[df['A'] == 3] x A B 2 3 3 سؤالي كيف ممكن حددالسطور بناءً على list من القيم ضمن هذه السطور list_of_values = [3,6]1 نقطة
-
هذا السطر مسئول عن التحقق مما إذا كان الملف تم تنفيذه (تشغيله) أم تم إستدعائه في ملف بايثون آخر (وكأنه مكتبة) ويمكنك أن تقوم بتطبيق المثال التالي لكي تفهم أكثر. أولًا قم بعمل ملفين بايثون الأول اسمه first.py والثاني اسمه second.py ولن نضع في كل ملف دالة print بسيطة تعمل عند تشغيل الملف كالتالي: # first.py print('First file') # second.py print('Second file') بالتأكيد عند تشغيل كل ملف من الملفين السابقين سيتم طباعة الجملة التي بداخله، الآن لنقم بتعديل الملف الأول first.py ليكون محتواه كالتالي: import second print('First file') كل ما قمنا به هو إستدعاء الملف الثاني بداخل الملف الأول، الآن لنقم بتشغيل الملف الأول python first.py وستجد أن النتيجة كالتالي: Second file First file لاحظ هنا أنه تم تنفيذ الملف الثاني بمجرد إستدعائه وليس هذا ما نريده، ولكي نتجنب هذا الأمر نقوم بإستخدام السطر التالي في الملف الثاني: if __name__ == "__main__": print('Second file') هنا نقوم بالتحقق مما إذا كان الملف الثاني يتم تشغيله بطريقة مباشرة (True) أم تم إستدعائه في ملف آخر (False). ويتم إستخدام هذه الطريقة في أغلب الحزم والمكتبات التي تقوم بتثبيتها لديك من خلال pip.1 نقطة
-
باختصار شديد في لغات البرمجة مثل مثلا C# يكون هناك دالة رئيسية يتم استدعائها عند ارسال الكود الى المترجم Compiler ويطلق عليها الدالة main() ولكن بايثون لغة برمجية نصية تستخدم المفسرات Interpreter ويتم التنفيذ سطر بسطر وعند استدعاء ملف Module به العديد من الدوال والكلاس وتريد أن تستخدم أحد هذه الدوال او الكلاسات فقط فيتم وضع هذه العبارة داخل المف المستدعى1 نقطة
-
يمكن من خلال: نقوم بعمل reindex لأسماء الأعمدة عن طريق اسناد columns لقائمة: df = df.reindex(columns=['mean',0,1,2,3,4]) أو نقوم بحشو حقل لدليل معين مثل جلب الحقل mean ووضعه كأول حقل df.insert(0, 'mean', df.mean(1)) أو تمرير مصفوفة الأعمدة لل data Frame: df = df[['mean', 4,3,2,1]]1 نقطة
-
يمكن إضافة اساليب عمليات جديدة إلى الكائن Calculator ببساطة بواسطة الخاصية this.methods. وذلك لتتمكن من إضافة دوال جديدة للعمليات الأكثر الأكثر تعقيدًا. ويمكن كتابة الدالة Calculator على الشكل التالي: function Calculator() { // إضافة العمليات this.methods = { "-": (a, b) => a - b, "+": (a, b) => a + b }; this.calculate = function(str) { let split = str.split(' '), // تحديد الأعداد والنوع العملية a = +split[0], op = split[1], b = +split[2]; if (!this.methods[op] || isNaN(a) || isNaN(b)) { return NaN; } return this.methods[op](a, b); // إسترجاع العملية }; this.addMethod = function(name, func) { this.methods[name] = func; // إضافة العملية إلى الكائن معرفة بإسمها }; }1 نقطة
-
بالاضافه إلي ما تفضل بشرحه @Adnane Kadri يمكن إيضا إضافة validation إذا ال id موجود في جدول ال news بإضافة ال exists:news,id لل validation علي ال id $validator = Validator::make($request->all() , ['id' => 'required|integer|exists:news,id']); يوجد if condition لفحص ما إذا ال news موجوده او لا وتعمل redirect بالايرور ولكن ال validation ستقوم بفحص أن ال id, required, integer, exists in news table or not وفي حالة وجود أخطاء ستقوم بعمل redirect من ال fail function كما تفصل اخي بشرحها في هذه الحالة يمكنك الاستغناء عن الشرط في أول دالة ال edit1 نقطة
-
أولاً يجب تعلم لغة Dart و هي لغة برمجة مفتوحة المصدر من إنتاج شركة Google وهي من اللغات التي تدعم البرمجة الكائنية Object Oriented Programming وال Syntax الخاص بها شبيه بلغة C . ما الهدف من تعلم الdart قبل تعلم إطار العمل flutter : فلاتر هو (SDK) للهاتف المحمول أي حزمة تطوير تطبيقات الهواتف الذكية، يسمح لك بكتابة تطبيق في قاعدة بيانات واحدة وتترجم لكل من Android و IOS. يعتبر فلاتر Flutter اطار عمل, تم انشاء اطار عمل فلاتر Flutter من الصفر واستخدم لكتابته وبنائه بلغة Dart لذالك يجب تعلم الdart أولاً . ويستخدم اطار عمل فلاتر في الأساس لتطوير واجهات الاستخدام UI ويتعاون مع لغة البرمجة Dart للتعامل مع العمليات البرمجية BackEnd. أفضل الدورات العربية : دورة لغة dart من هنا دورة لغة flutter من هنا1 نقطة
-
فلاتر هو (SDK) للهاتف المحمول أي حزمة تطوير تطبيقات الهواتف الذكية، يسمح لك بكتابة تطبيق في قاعدة بيانات واحدة وتترجم لكل من Android و IOS. يعتبر فلاتر Flutter اطار عمل، و لقد تم انشاء اطار عمل فلاتر Flutter بناءًا على لغة دارت. سأرفق لك عدة دورات تدريبية يمكنك متابعتها لتعلم فلاتر : الدورة الأولى الدورة الثانية الدورة الثالثة و إن أردت الإستفادة و المطالعة أكثر حول المجال ستجد هُنا كُل يلزمك لتعلم اللغة و ما هو مسار تلك اللغة للتعلم بالإضافة للعديد من المصادر التعليمية للغة.1 نقطة