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

علي الكاسر

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

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

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

كل منشورات العضو علي الكاسر

  1. لقد حصلت على كو د جافا سكربت لعمل تاريخ هجري، ولكنني لم افهم اي شي من الكود. اتمى احد يقوم بشرح الكود بالتفصيل لنستفيد جميعا الكود <script language="JavaScript"> var fixd; function isGregLeapYear(year) { return year%4 == 0 && year%100 != 0 || year%400 == 0; } function gregToFixed(year, month, day) { var a = Math.floor((year - 1) / 4); var b = Math.floor((year - 1) / 100); var c = Math.floor((year - 1) / 400); var d = Math.floor((367 * month - 362) / 12); if (month <= 2) e = 0; else if (month > 2 && isGregLeapYear(year)) e = -1; else e = -2; return 1 - 1 + 365 * (year - 1) + a - b + c + d + e + day; } function Hijri(year, month, day) { this.year = year; this.month = month; this.day = day; this.toFixed = hijriToFixed; this.toString = hijriToString; } function hijriToFixed() { return this.day + Math.ceil(29.5 * (this.month - 1)) + (this.year - 1) * 354 + Math.floor((3 + 11 * this.year) / 30) + 227015 - 1; } function hijriToString() { var months = new Array("محرم","صفر","ربيع أول","ربيع ثانى","جمادى أول","جمادى ثانى","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"); return this.day + " " + months[this.month - 1]+ " " + this.year; } function fixedToHijri(f) { var i=new Hijri(1100, 1, 1); i.year = Math.floor((30 * (f - 227015) + 10646) / 10631); var i2=new Hijri(i.year, 1, 1); var m = Math.ceil((f - 29 - i2.toFixed()) / 29.5) + 1; i.month = Math.min(m, 12); i2.year = i.year; i2.month = i.month; i2.day = 1; i.day = f - i2.toFixed() + 1; return i; } var tod=new Date(); var weekday=new Array("الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"); var monthname=new Array("1","2","4","3","5","6","7","8","سبتمبر","12","11","10"); var y = tod.getFullYear(); var m = tod.getMonth(); var d = tod.getDate(); var dow = tod.getDay(); document.write(weekday[dow] + " " + d + " " + monthname[m] + " " + y); m++; fixd=gregToFixed(y, m, d); var h=new Hijri(1421, 11, 28) ; h = fixedToHijri(fixd); document.write(" م || " + h.toString() + "هـ"); </script>
  2. شكرا اخي هذا المحرر ممتاز ولكن هل يمكن استخدامه داخل form في حق ادخال textarea حيث قد يكون textarea اكثر من حقل واحد
  3. لقد سألت نفس السؤال واجاب احد الاخوه وارشدني إلى مكتبة prism-live.js وجربتها ونجحت ولكن بها عيوب حيث ان نص الكود لا يظهر بشكل كامل عندما يكون السطر طويل ولا ينزل المحرر سطر جديد للاسفل عندما يصل السطر إلى اخر صندوق الادخال كما في الصورة المرفقه، ناهيك انها لا تلون الاكواد التي داخل حاويات مثل div. هل يوجد مكتبه اخرى لفعل محرر اكواد بشكل اقوى واحترافي
  4. اخي يوحد مشكله في هذا المحرر حيث لا يمكنني رؤية باقي الكود اذا كان نص السطر طويل وهذا امر غير مرغوب فمن الصعب التعامل معه. هل يوجد مكتبه اخرى تعمل محرر بشكل افضل واقوى
  5. بعد تضمين الملفات المطلوبه لتشغيل المكتبه ماهي كيفية الاستخدام وجعل نص الكود ملون داخل حقل الادخال او داخل حاويه مثل div
  6. لقد فهمت الان يعني انها خصائص خاصن وليست خصائص تبع اللغه شكرا لك اخي
  7. هذا حقل الادخال في احد المواقع وجدت فيه خصائص جديده لم اسمع بها من قبل ما فائدتها <input type="text" name="username" class="login-input name" placeholder="ادخل رمز الكرت هنا" required autocomplete="on" username-field improve-input rm-white-spaces to-arabic-numbers to-lower/> هذه هي تحديدا autocomplete="on" username-field improve-input rm-white-spaces to-arabic-numbers to-lower اتمنى شرح هذه الخصائص واين يمكنني تعلم جميع خصائص عناصر html
  8. اخي جربت هذا الكود ولم يعمل وماذا تعني هذه الجمله ranked_comments لم افهم وجودها هنا ولماذا وضعتها، ارجو منك اخي اعادة كتابة الكود بما يتناسب مع بنية الجداول التاليه جدول المستخدمين user الاعمده id لتخزين اي دي المستخدم name لتخزين اسم المستخدم جدول المنشورات posts الاعمده post_id لتخزين اي دي المنشور وربطه مع جدول التعليقات post_user لتخزين اي دي المستخدم مرسل المنشور والربط مع جدول المستخدمين مع العمود id post_msg لتخزين نص المنشور الجدول الثالث جدول التعليقات comment الاعمده com_id لتخزين اي دي التعليق com_id_post لتخزين رقم اي دي المنشور والربط مع جدول المنشورات عبر العمود post_id com_user لتخزين اي دي مرسل التعليق والربط مع جدول المستخدمين عبر العمود id com_msg لتخزين نص التعليق الان اريد صياغة الكود اعلاه ليتم عرض المنشورات واسماء مرسليها وتحت كل منشور يتم عرض ثلاثه تعليقات مع اسماء مرسليها. اتمنى الرد وشكرا جزيلا
  9. شكرا اخي هذا ما اريد ولك كيف يمكن عرض الناتج في حلقة foreach وخاصه التعليقات وايضا اريد عرض ثلاثه تعليقات من كل منشور وليست كلها
  10. ماذا لو اردت عرض جميع المنشورات وثلاثه تعليقات فقط من كل منشور
  11. لدي جدولين جدول للمنشورات وجدول اخر للتعليقات على المنشورات وبينهما علاقه في عمود post_id، كيف يمكنني باستلام واحد عرض المنشورات وتحت كل منشور التعليقات الخاصه به. طبعا يمكنني فعل ذلك باستعلامين منفصلين، لذلك أسأل هل يمكن عمل هذا باستعلام واحد
  12. شكرا اخي ولكن يوجد لدي استفسار عن الجملة المحدده في الاقتباس ماذا تمثل هذه الجمله هل هي اسم عمود من اعمدة الجدول posts
  13. لدي جدول المنشورات post وفيه العمود user لتخزين قيمة اي دي مرسل المنشور، كيف يمكن الاستعلام عن اكثر المستخدمين نشر للمنشورات
  14. اخي لقد نجحت في رفع الملف للسيرفر ولكن الملف مافيه صوت يعني لما اشغل الملف مايطلع الصوت
  15. بس يا اخي الخوادم المحليه الخاصه للتجريب واغلب الاستضافات واخاصه الرخيصه ماتدعم الويب سوكيت، وانا استخدم php في الخلفيه وهذه اللغه لا تدعم الويب سوكيت بشكل جيد وليس هناك مصدر لتعلم الويب سوكيت فيها
  16. السلام عليكم ورحمة الله وبركاته لدي كود جافا سكربت يقوم بالوصول للميكرفون وتسجيل الصوت وارساله للسيرفر ولكن المشكله يتم رفع ملف الصوت ولكن عند تشغيل الملف لا يوجد هناك صوت هذه مجلدات وملفات السكربت كامله اتمنى التعديل على الكود وحل المشكله مجلد upload ملف audio.html ملف audio.php كود ملف audio.html <html> <body> <button onclick="samah();">تسجيل صوتي</button> <button onclick="stops();">stop</button> <br> <a id="a"></a> <br> <audio style="display:none" id="audi" controls="controls" src=""></audio> <script> var audioChunks = []; // بيانات الصوت var mediaRecorder = null; var audioBlob = null; var audioUrl = null; var mainStream = null; function samah() { navigator.mediaDevices.getUserMedia({audio: true}) .then(stream => { mainStream = stream; mediaRecorder = new MediaRecorder(stream); mediaRecorder.start(); // بدء التسجيل mediaRecorder.addEventListener("dataavailable", event => { audioChunks.push(event.data); }); }); } function uploadAudio() { // إرسال الصوت إلى الخادم هنا var formData = new FormData(); formData.append("audio", audioBlob, "recording.webm"); fetch("audio.php", { method: "POST", body: formData }) .then(response => response.json()) .then(data => { if(data.aud){ alert(data.url) ; let audi = document.getElementById("audi"); audi.src = data.url; audi.style.display = 'block'; }else{ alert(data.error); } // استجابة من الخادم تحتوي على معلومات الصوت المرفوع ومعالجتها وتخزينها في قاعدة البيانات هنا }) .catch(error => { console.error("حدث خطأ أثناء رفع الصوت", error); }); } function stops() { mediaRecorder.addEventListener("stop", () => { audioBlob = new Blob(audioChunks, {type: mediaRecorder.mimeType}); audioUrl = URL.createObjectURL(audioBlob); mainStream.getTracks() // get all tracks from the MediaStream .forEach(track => track.stop()); // stop each of them // تحميل ملف الصوت let a = document.getElementById("a"); a.href = audioUrl; a.download = "recording.webm"; a.innerText = 'click me to save file'; uploadAudio(); //document.body.appendChild(a); //a.click(); }); mediaRecorder.stop(); } </script> </body> </html> كود ملف audio.php <?php function _file($file,$allowedExtension,$size,$folder){ global $load_error ; $rand = array('A','a','B','b','C','c', 'D','b','E','e','F','f','G','g','J','j','K','k','L','l','H','h','S','s','V','v', 'T','t','Q','q','W','w','Y', 'y','U','u','I','i', 'O','o','P','p', 'X', 'x','N','n','M','m','R','r','Z','z'); $text = ''; for($i = 0; $i < rand(10,20); $i++){ $text = $text.$rand[rand(0,51)]; } $fileName = $_FILES[$file]['name']; $fileSize = $_FILES[$file]['size']; $fileTmp = $_FILES[$file]['tmp_name']; $fileType = $_FILES[$file]['type']; $fileExtensions = end(explode('.',$fileName)); if(isset($fileName) and $fileName!=''){ if(in_array($fileExtensions,$allowedExtension)){ if($fileSize > $size){ $load_error = 2; return false; }else{ //نقوم بتغيير اسم الملف وحفضه في المجلد $location = $folder."/".$fileName; $location_new = $folder."/".$text.'.'.$fileExtensions; move_uploaded_file($fileTmp,$location); rename($location,$location_new); return $location_new; } }else{ $load_error = 1; return false; } }else{ $load_error = 0; return false; } } if($audio_url = _file('audio',['webm','png'],1000*1000*5,'upload')) { $arr['aud'] = true; $arr['url'] = $audio_url; }else{ $errors[] = 'لا يوجد ملف '; $errors[] = 'الملف غير مدعوم'; $errors[] = 'حجم الملف كبير'; $arr['aud'] = false; $arr['error'] = $errors[$load_error]; } echo json_encode($arr); ?>
  17. شكرا لك اخي شكرا جزيلا لك اخي اصبح الكود مفهوم بعد شرحك المفصل تسلم
  18. السلام عليكم ورحمة الله وبركاته لدي كود جافا سكربت يقوم بفتح الميكرفون والتسجيل الصوتي ولكن يقوم بعمل رابط لتحميل الصوت المسجل. أنا اريد تعديل ذلك الكود ليقوم برفع وارسال الصوت الى السيرفر لاقوم بعد ذلك بتخزينه في قاعدة البيانات والتحكم فيه الكود <html> <body> <button onclick="samah();">تسجيل صوتي</button> <button onclick="stops();">stop</button> <a id="a"></a> <script> var audioChunks = []; // بيانات الصوت var mediaRecorder = null; var audioBlob = null; var audioUrl = null; var mainStream = null; function samah() { navigator.mediaDevices.getUserMedia({audio: true}) .then(stream => { mainStream = stream; mediaRecorder = new MediaRecorder(stream); mediaRecorder.start(); // بدء التسجيل mediaRecorder.addEventListener("dataavailable", event => { audioChunks.push(event.data); }); }); } function stops() { mediaRecorder.addEventListener("stop", () => { audioBlob = new Blob(audioChunks, {type: mediaRecorder.mimeType}); audioUrl = URL.createObjectURL(audioBlob); mainStream.getTracks() // get all tracks from the MediaStream .forEach(track => track.stop()); // stop each of them // تحميل ملف الصوت let a = document.getElementById("a"); a.href = audioUrl; a.download = "recording.webm"; a.innerText = 'click me to save file'; //document.body.appendChild(a); //a.click(); }); mediaRecorder.stop(); } </script> </body> </html>
  19. استخدم هاتف الاندرويد كخادم محلي اختبر عليه الموقع ويوجد تطبيق تيرمكس وهو شبيه بنظام لينكس من خلاله يتم تحميل الحزم والخوادم
  20. هل برأيك ستعمل على الإستضافات او هاتف اندويد
  21. يعني هذا $redis = new Redis(); مكتبه او اطار عمل او ماذا بالضبط
  22. لا اعتمد على اطر العمل مثل لا رافل ولا احب المكتبات الخارجيه، لذاك يمكنني اعمل نظام Rate Limit في لغة php بنفسي
  23. اخي لقد بحثت كثيرا في قوقل عن Rate Limiter ولكن لم احد مصادر عربيه تتحدث عنه، جربت بعض الاكواد التي وجدتها في مصادر اجنبيه الا انها فاشله وغير مفهومه واغلبها لم تعمل، هل يمكن ان تشرح لي بالاكواد php لافهم الموضوع
×
×
  • أضف...