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

محمد صقر3

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

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

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

كل منشورات العضو محمد صقر3

  1. فقط واجهة مستخدم بن تؤثر على بيانات موقعك انقل جميع الملفات في خانة public_Html إذا كانت كله خاصه بموقعك لن يؤثر حجم الملفات على عملية النقل
  2. جزانا وإياكم خير الجزاء عند استخدام ال Prepared statements لا يوجد خظر الحقن لأن سيرفر الداتا بيز يقوم بفحص ال paramaters المرسله مع ال query فلا يوجد حقن الحقن يكون في حالة أنه لم تستخدم ال Prepared statements و bind parmaters مثلا في هذه الحالة $user_Received_id= $_GET["user_Received_id"]; $sql = "SELECT * FROM conversation WHERE user_Received_id = $user_Received_id"; $result = $con->query($sql);
  3. يمكن إضافة شرط أن ال user_received_id لا يساوي user_send_id تكون جملة ال query كالتالي $sql = "SELECT * FROM conversation WHERE user_send_id != user_Received_id and user_Received_id = ?";
  4. تقوم الأقراص بحفظ الملفات باستخدم جدول توزيع الملفات File Allocation Table يختصر إلى FAT داخل هذا الجدول تحفظ الأقراص جميع البيانات الخاصه عن الملفات مكان الملف علي القرص و حجم الملف ونوع الملف وغيرها عند فتح ملف معين يقوم القرص بالذهاب إلي هذا الجدول ومعرفة بيانات الملف مكانه علي القرص وحجمه وهكذا ثم يبدأ في قراءة الملف يأخذ هذا الجدول مساحه من القرص مثلا إذا كان حجم القرص 500 جيجا فتظهر مساحة القرص أقل من 500 جيجا والباقي يستخدمه هذا الجدول لتخزين بيانات عن الملفات والوسائط الموجوده علي هذا القرص
  5. تاكيدي من إضافة الملفات إلي git stage git add . تاكيد من إضافة ال commit message git commit -m "message" ثم قومي بالرفع مره أخري
  6. يمكن مسح العناصر المتكرر اكثر من مره في ال list عن طريق عمل tmp dictionary ونعدد عدد مرات تكرار العنصر في ال list ثم نقوم بإضافة العناصر التي تكررت مره واحده فقط لل result list t = [1, 2, 3, 1, 2, 5, 6, 7, 8] tmp = {} result = [] // نقوم بعد عدد مرات تكرر العنصر في ال list for x in t: d = {x: (tmp.get(x, 0) + 1)} tmp.update(d) // ناتج هذه العمليه يحتوي ال tmp dictionary // تحتوي العنصر وعدد مرات تكراره // tmp = {1: 2, 2: 2, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1} // ثم ندمج العنصر إذا كان تكرر مره واحده فقط لل result list for x in tmp: if tmp[x] == 1: result.append(x) // تكون قيمة ال result list // result = [3,5,6,7,8] for x in result: print(x) // الناتج 3 5 6 7 8
  7. الدالة isinstance بترجع قيمة True او False علي سبيل المثال isinstance(5, int) للقيمه 5 والنوع int ويكون الناتج True isinstance(object, type) // قد يكون النوع قيمه واحده isinstance(5, int) // True // قد يكون مصفوفه isinstance("Hello", (float, int, str, list, dict, tuple)) // True // قد يكون object from class class myObj: name = "John" y = myObj() isinstance(y, myObj) // True الدالة type بترجع نوع المتغير str, int, list x = 5 s = "hello" y = [1,2,3] print(type(x)) print(type(s)) print(type(y)) // الناتج class 'int' class 'str' class 'list'
  8. وعليكم السلام ورحمة الله وبركاته إذا ممكن توضيح اكثر عندك ملف بتحتاج تمسح سطر معين او كلمه معينه من هذا الملف دون فقدان باقي محتوي الملف يمكنك عمل tmp file و قراءة ملف source file وعمل contition إذا هذا السطر او الكلمه المراد مسحه تعملها skip وما تضيفها لل tmp file وفي النهايه تنسخ ال tmp file إلي source file
  9. يمكنك تنفيذ النسخ باستخدام os module عن طريق تنفيذ امر النسخ علي نظام التشغيل ويندوز او لينكس امر نسخ الملف علي الويندوز هو copy source.txt destination.txt امر نسخ الملف علي نظام تشغيل لينكس هو cp source.txt destination.txt لنسخ ملف باستخدام os module في بايثون //إذا كان نظام التشغيل لينكس os.popen('cp source.txt destination.txt') // إذا كان نظام التشغيل ويندوز os.popen('copy source.txt destination.txt') ويمكن نسخ الملفات في بايثون باستخدم shutil module عن طريق اكثر من داله copyfile, copy, copy2, copyfileobj import shutil # باستخدام دالة copyfile shutil.copyfile('source.txt', 'destination.txt') # باستخدام دالة copy shutil.copy('source.txt', 'destination.txt') # باستخدام دالة copy2 shutil.copy2('source.txt', 'destination.txt') # باستخدام دالة copyfileobj # قراءة محتوي ال source file # rb => للقراءه file_src = 'source.txt' f_src = open(file_src, 'rb') # فتح ال destination file # wb => للكتابه file_dest = 'destination.txt' f_dest = open(file_dest, 'wb') # نسخ ال source file to destination file shutil.copyfileobj(f_src, f_dest)
  10. فحصت الكود الخاص بجزء ال login يقوم بعمل hash للباسورد عند تسجيل الدخول باستخدام خوارزمية sha1 // check if user coming from HTTP post request if ($_SERVER['REQUEST_METHOD']== 'POST'){ $username =$_POST['username']; $password =$_POST['password']; // يقوم بتشفير كلمة المرور $hashedpass = sha1($password); //check if the user exist in database // والاستعلام عن المستخدم بكملة المرور المشفره $stmt=$con->prepare("SELECT Username, Password FROM users WHERE Username = ? AND Password = ? AND GroupID=1"); $stmt->execute(array($username, $hashedpass)); $count =$stmt->rowCount(); // If Count >0 This Mean The Database Conta Record About This Username if ($count>0){ echo 'welcome ' . $username; $_SESSION['Username'] = $username; // Register Session name header ('Location: Dashboard.php'); //Redirect To Dashboard Page exit(); } } إذا كنت تقوم بتسجيل الباسورد في قاعدة البيانات من غير تشفير فتحتاج إلي تشفيره ب sha1 algorithm يمكنك تشفير كلمة المرور قبل وضعها في قاعدة البيانات وذلك عن طريق اي sha1 online ووضع الكود المشفر داخل عمود الباسورد في جدول ال user // مثلا عند تشفير كلمة password // password => 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 يمكنك وضع ال 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 في عمود الباسورد وتسجيل الدخول بكلمة password بالاضافه إلي اسم المستخدم
  11. وعليكم السلام ورحمة الله وبركاته يمكنك تخزين ناتج ال substr function في متغير ثم دمجه علي ال output <?php while($row = mysqli_fetch_array($result)) { $subMessage = substr(''.$row['message'].'', 0, 35); $output .= $subMessage; } ?>
  12. بالاضافه إلي ما تفضل بشرحه @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 كما تفصل اخي بشرحها في هذه الحالة يمكنك الاستغناء عن الشرط في أول دالة ال edit
  13. يرجع ذلك إلي طريقة تنفيذ جافا سكربيت للكود عن طريق Javascript Runtime في ال Javascript Runtime هناك أربع مكونات أساسيه هي Callstack, Web Api, Callback Queue, Event Loop عند تنفيذ ملف جافا سكربيت يتم وضع الكود في ال Callstack إذا كان ال CallStack يمكنه تنفيذ هذا الكود وإذا لم يكون يتم إرساله الي Web API وبعد ما تنفذه ال Web Api يتم وضعه في Callback Queue ثم يقوم ال Event Loop بفحص إذا ماكان ال Callstack فارغ ويمكنه استقبال كود جديد لتنفيذه وينتقل الكود لل Callstack ليتم تنفيذه علي سبيل المثال console.log("1"); setTimeout(() => { console.log("2"); }, 1000); console.log("3"); // الناتج // 1 // 3 // 2 عند تنفيذ هذا الاسكربيت يتم وضع console.log("1") و console.log("3") داخل ال Callstack ويتم تنفذهم وطباعة 1 و 3 ثم setTimeout يتم إرسالها إلي Web API لتقوم بتنفذها ثم يتم إرسالها إلي Callback Queue ثم يقوم Event loop بفحص ما إذا كان ال Callstack يمكنه استقبال الكود وتنفيذه ثم يتم ارسال الكود وتنفيذه وطباعة القيمه 2 الخطاء في الكود هو أنه سيتم وضع ال friends = {} ثم تنفذ جملة ال console.log(friends) ليطبع {} ثم يتم ارسال axios.get() function إلي ال Web API لتقوم بتنفذيها
  14. يمكن استخدام console.log لمعرفة شكل الداتا داخل ال response object المشكله أنك تحاول الوصول الي data من ال resposne.data وهي غير موجوده يمكنك الوصول ال amount من ال response.data تحتاج تعديل هذا السطر response.data.data.amount إلي reponse.data.amount getBTCPrice() { const url = 'https://api.coinbase.com/v2/prices/BTC-USD/spot'; axios.get(url) .then(function (response) { // return response.data.data.amount console.log("data") console.log(response.data) console.log(response.data.amount) return response.data.amount; }) } render() { return( <div> BTC: {this.getBTCPrice()} USD </div> ); }
  15. تقوم بفحص ال api response إذا بيحتوي علي مصفوفة errors بتظهر للمستخدم رسالة بالخطاء بحيث يقوم بإدخال رقم اخر
  16. يمكنك استخدم الرسائل الخاص بك عن طريق تعريف مصفوفه خاصه تحتوي الرسائل التي تحتاجها مصفوفة الشروط $rules = array( 'phone' => 'required|unique:users,phone' ); مصفوفة تحتوي علي الرسائل التي تظهر في حالة حدوث أخطاء $messages = array( 'phone.required' => 'Phone is required.', 'phone.unique' => 'Phone must be unique.', ); فحص الداتا المدخله من المستخدم و ظهور الاخطاء في حالة وجود أخطاء $validator = Validator::make( $request->all(), $rules, $messages ); if ( $validator->fails() ) { return [ 'success' => 0, 'message' => $validator->errors()->toArray() ]; } ويمكن فصل عملية ال Validation في كلاس منفصل يسمي FormRequest وتنقل كل عمليات ال Validation داخل هذا الكلاس إنشاء الكلاس عن طريق أمر في لارفال ويتم إنشاءه داخل مجلد app\Http\Requests php artisan make:request AuthRequest ثم تقوم باضافة عمليات ال validation داخل دالة ال rules وإضافة الرسائل الخاصه داخل دالة messages <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Request; class AuthRequest extends FormRequest { public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'phone' => 'required|unique:users,phone', ]; } public function messages() { return [ 'phone.required' => 'Phone is required', 'phone.unique' => 'Phone is unique' ]; } } ثم تستدعي هذا الكلاس داخل Controller وسيقوم ال AuthRequest بإظهار الاخطاء في حالة وجود أخطاء <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Http\Requests\AuthRequest; class AuthController extends Controller { public function login(AuthRequest $request) { // $validator = Validator::make($request->all(), [ // 'phone' => 'required|unique:users,phone' // ]);// end of validator // if ($validator->fails()) { // return Redirect::back()->withErrors($validator); // }//end of if // do register or login operation // .......... }// end of login }
  17. وعليكم السلام ورحمة الله وبركاته اعتقد اختيار اللغه واطار العمل بيعتمد علي الاكثر شيوعا في سوق العمل اللي متواجد فيه لغة PHP من اكتر اللغات شيوعا في اغلب الاسواق وكمان ممكن تجرب تستخدم Laravel ما معتمده علي CMS فقط بتقدر تبين بيها Rest api ومشاريع مختلفه في احجامه بالنسبه لل Python لغه منتشره جدا ومجالاتها متعدده في Machine Learning , Security, DataScience, Image processing وتطوير مواقع ويب عن طريق اطارات العمل Django بتعتمد علي built in مودلز جاهزه كتير بتعملها import وتستخدمها ال Flask بتحتاج تقسم الكود وتكتب كود بايديك ما فيها المكتبات اللي موجوده في django تاخد وقت اطول في التطوير بالنسبه لل ruby ما عندي معلومات عنها بس عموما التنقل من لغه لاخره او اطار عمل لاخر بيكون سهل جدا مجرد بتتعلم ال syntax اللغه او اطار العمل الفكره في فهم مواضيع الويب عموم عمليات ال Autherization, authentication , Rest apis , وقواعد البيانات وهكذا والتنقل بين اللغات ما صعب وكمان اختيار اللغه او اطار العمل بيعتمد علي طبيعة المشروع لو مثلا المشروع محتاج تحليل بيانات وهكذا بايثون عندها مكتبات قويه في هذا المجال راح اشتغل بايثون ما راح استخدم مثلا PHP لان الموضوع هيكون صعب شويه بيها وسهل ببايثون
  18. اولا تقوم بفتح ال tinker تعمل run للامر php artisan tinker ثم بعد ذلك تجيب بيانات اليوزر بالايميل ثم تقوم بتغير كلمة المرور وحفظ التغيرات $user = App\User::where('email', 'admin@laravel.com')->first(); $user->password = Hash::make('123456'); $user->save();
  19. اذا كنت تقصد برمجة تطبيقات ال IOS اللغه البرمجية الاشهر Swift وايضا يمكنك استخدم Objective-c
  20. 1- بتحمل التطبيق من المتجر 2- بتعمل مشروع جديد اسم المشروع اسم package name و اسم ال Main class وليكن اسم المشروع test و package name تكون com.test و ال main class تكون Main 3- بتفتح ملفات المشروع من القائمة من الجانب وبتضغط علامة ال + بيقولك اختار نوع الملف java file وبعدين تضيف فيه الكلاس وليكون Person وبعدين بتبداء تكتب الفانكشن اللي محتاجه وترن من علامة المثلث اللي في اعلي التطبيق وازي فيه ايرور بتقراءه وتصلحه وده مثال لكود ممكن تجربه Main.java public class Main { public static void main(String[] args) { Person person = new Person(); person.setAge(25); person.print(); } } Person.java public class Person { int age; public void setAge(int age) { this.age = age; } public void print() { System.out.println("Age = " + this.age); } }
  21. 1- Add third elment print("before change") print(mobiles) mobile3 = {"mobile3": {'Company':'android', 'model':'XR', 'OS':'Android', "price":6200}} mobiles.update(mobile3) print("after change") print(mobiles) 2- Change the model for mobil1 print("before change") print(mobiles) mobiles['mobile1']["model"] ="new model" print("after change") print(mobiles) 3- Delete the price for mobile2 print("before change") print(mobiles) del mobiles['mobile2']["price"] print("after change") print(mobiles) 4- Edit the model for mobile2 print("before change") print(mobiles) mobiles['mobile2']["model"] ="new model2" print("after change") print(mobiles)
  22. اذا بتوضيح ماهي ال letters مصفوفه ب String او String charAt function بترجع حرف في الموضع 1 وتبدا من 0 1- اذا مصفوفه ب Strings في هذه الحاله قيمة ال leters[i] علي حسب قيمة ال i اذا 0 بترجع اول String في ال letters list letters = ["abc", "def", "jh"]; i = 0 => leters[i] = "abc" , leters[i].charAt(1) == b i = 1 => leters[i] = "def", leters[i].charAt(1) == e i = 2 => leters[i] = "jh", leters[i].charAt(1) == h 2 - اذا letters بتكون String في الحاله دية مينفعش تقول letters[i] لانها String String letters = "abc"; System.out.println(letters.charAt(0));// a System.out.println(letters.charAt(1));// b System.out.println(letters.charAt(2));// c
×
×
  • أضف...