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

Hamada Ahmed

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

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

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

كل منشورات العضو Hamada Ahmed

  1. السلام عليكم لدي نظام اشعارات للرسائل في الموقع كيف يمكن تطبيق نفس الطريقة في التعليقات على المواضيع <style type="text/css"> <!-- .dropdown{ margin:0px; padding-top:6px; } .glyphicon{ margin-top:6px; margin-left:10px; border:none; cursor:pointer; background:url(images/message.png) no-repeat; width:40px; height:40px; } .count{ display:block; position:absolute; background:#E1141E; color:#FFF; font-size:14px; font-weight:normal; padding:1px 3px; margin:-1px 0 0 25px; border-radius:2px; -moz-border-radius:2px; -webkit-border-radius:2px; z-index:1; } .dropdown-menu { display: none; position:absolute; width:300px; height:470px; overflow-y:auto; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; padding:5px; border-radius:10px; } --> </style> <link rel="stylesheet" href="css/bootstrap.min.css" /> <script src="js/jquery-3.6.0.min.js"></script> <script src="js/bootstrap-3.3.7.min.js"></script> <div class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown"> <div class="label count"></div> <div class="glyphicon" title="الرسائل" ></div> </a> <div class="dropdown-menu"></div> </div> <script> var $j = jQuery.noConflict(); $j(document).ready(function(){ function load_unseen_notification(view = '') { $j.ajax({ url:"show_pages/show_messages_menu.php", method:"POST", data:{view:view}, dataType:"json", success:function(data) { $j('.dropdown-menu').html(data.notification); if(data.unseen_notification > 0) { $j('.count').html(data.unseen_notification); } } }); } load_unseen_notification(); $j(document).on('click', '.dropdown-toggle', function(){ $j('.count').html(''); load_unseen_notification('yes'); }); setInterval(function(){ load_unseen_notification();; }, 5000); }); </script> تكرار الكود سوف يجعله مرتبط بالرسائل وتغيير مسمياته سوف يجعله لا يعمل - ما هي الطريقة لاستخدامة مرة اخرى ليرتبط بالتعليقات
  2. السلام عليكم ورحمة الله وبركاته لدي مشكلة في أن البيانات يتم ارسالها للقاعدة لكن بعد الارسال لا يتم تفريغ الفورم ما المشكلة في ذلك <form method="post" id="messages"> <textarea name="message" id="message" ></textarea> <INPUT type="submit" name="post" id="post" value="ارسال"> </form> <script> $(document).ready(function(e) { $("#messages").on('submit', function(e) { e.preventDefault(); $.ajax ({ type: 'POST', url: 'send.php', data: new FormData(this), dataType: 'json', contentType: false, cache: false, processData:false, success: function(response) { $('#messages')[0].reset(); } }); }); }); </script>
  3. هل تقصد أن الكود يحتاج الى اعادة ترتيب اذا كان الامر كذلك فان الكود كاملا هكذا <style type="text/css"> <!-- .div_show_message_groups{ overflow-y:auto; height:350px; width:485px; margin:0px; } --> </style> <script src="js/jquery-3.6.0.min.js"></script> <div class="div_show_message_groups" id="div_show_message_groups"> </div> <script> $(document) .ready(function(e) { /*الوظيفة المسؤولة عن عمل الاسكرول*/ function scrollToBottom() { var div = $('#div_show_message_groups'); div.scrollTop(div.prop("scrollHeight")); } /*استدعاء الدالة عند كل تحميل جديد للصفحة*/ scrollToBottom(); var userIsScrolling = false; /*يتم تغيير فيمة المتغير عند كل تحريك للشريط الجانبي*/ $('#div_show_message_groups') .scroll(function() { userIsScrolling = true; }); /*ان توقفف المستخدم عن تحريك الشريط الجانبي لأكثر من ثلاث ثواني سيتم تغيير قيمة المتغير*/ setInterval(function() { userIsScrolling = false; }, 3000); /*الدالة المسؤولة عن جلب الرسائل من الواجهة الخلفية*/ function getMessages(letter) { var message = $('#div_show_message_groups'); $.get('show_pages/display_messages_groups.php', function(data) { message.html(data); // ضبط الشريط الجانبي للأسفل عند كل رسالة جديدة , و في حالة عدم تحريكه من طرفف المستخدم if (!userIsScrolling) { scrollToBottom(); } }); } setInterval(function() { getMessages("letter"); }, 100) /*إرسال طلب إلى الواجهة الخلفية بتسجيل رسالة جديدة*/ $("#messages_form_groups") .on('submit', function(e) { e.preventDefault(); $.ajax({ type: 'POST', url: 'send_pages/send_messages_form_groups.php', data: new FormData(this), dataType: 'json', contentType: false, cache: false, processData: false, success: function(response) { if (response.status == 1) { $('#messages_form_groups')[0].reset(); } } }); }); }); </script> هل تتفضل مهندس وائل وتعدله لي مع الشكر والامتنان
  4. قمت بتكبيرها الى 9000 لكنها غير كافية للتحرك لأعلى وتكبيرها أكثر من ذلك سيتسبب في تأخر الرسائل الواردة وأيضا لا يمنع من التحرك التلقائي لأسفل عند انتهاء هذا الزمن مهما كان كبيرا - فى الواتس مهما استغرق الزمن للتحرك لأعلى لا ينزلق الشريط لأسفل - لا اعرف ما الطريقة المستخدمة في مثل هذه المحادثات
  5. شكرا للأخوة الأفاضل @عبدالباسط ابراهيم@سامح أشرف@Adnane Kadri @Wael Aljamal تم تجريب الكود حرفيا كالتالي ... لكن التحرك التلقائي للأسفل لا يترك فرصة لقراءة الرسائل القديمة هناك حلقة مفقودة في الموضوع انا قمت بوضع div_show_message_groups بدلا من div1 الكود كما جربت <style type="text/css"> <!-- .div_show_message_groups{ overflow-y:auto; height:350px; width:485px; margin:0px; } --> </style> <script src="js/jquery-3.6.0.min.js"></script> <div class="div_show_message_groups" id="div_show_message_groups"> </div> <script> $(document) .ready(function(e) { /*الوظيفة المسؤولة عن عمل الاسكرول*/ function scrollToBottom() { var div = $('#div_show_message_groups'); div.scrollTop(div.prop("scrollHeight")); } /*استدعاء الدالة عند كل تحميل جديد للصفحة*/ scrollToBottom(); var userIsScrolling = false; /*يتم تغيير فيمة المتغير عند كل تحريك للشريط الجانبي*/ $('#div_show_message_groups') .scroll(function() { userIsScrolling = true; }); /*ان توقفف المستخدم عن تحريك الشريط الجانبي لأكثر من ثلاث ثواني سيتم تغيير قيمة المتغير*/ setInterval(function() { userIsScrolling = false; }, 3000); /*الدالة المسؤولة عن جلب الرسائل من الواجهة الخلفية*/ function getMessages(letter) { var message = $('#div_show_message_groups'); $.get('show_pages/display_messages_groups.php', function(data) { message.html(data); // ضبط الشريط الجانبي للأسفل عند كل رسالة جديدة , و في حالة عدم تحريكه من طرفف المستخدم if (!userIsScrolling) { scrollToBottom(); } }); } setInterval(function() { getMessages("letter"); }, 100) /*إرسال طلب إلى الواجهة الخلفية بتسجيل رسالة جديدة*/ $("#messages_form_groups") .on('submit', function(e) { e.preventDefault(); $.ajax({ type: 'POST', url: 'send_pages/send_messages_form_groups.php', data: new FormData(this), dataType: 'json', contentType: false, cache: false, processData: false, success: function(response) { if (response.status == 1) { $('#messages_form_groups')[0].reset(); } } }); }); }); </script>
  6. لكن بهذه الطريقة سيظل الشريط الجانبي للأسفل دائما ولن نتمكن من قراءة اي رسائل قديمة أظن ان الحل هو وضع مجموعة شروط if قبل وضع الكود الذي قدمته لكن انا لا اعرف كيف يتم وضع هذه الشروط مثلا - 1-لو تم تحديث الصفحة يتحرك الشريط لاسفل 2 - لو عرضت رسالة جديدة يتحرك الشريط لاسفل 3 - لو كان المستخدم يتحرك بالشريط لاعلى واتت رسالة جديدة لا يتحرك الشريط لاسفل انا لا اعرف كيف يمكن ترجمة ذلك الى اكواد
  7. السلام عليكم ورحمة الله اخواني الأفاضل نرى في محادثات الواتساب عند تحميل المحادثة يتحرك الشريط الجانبي لأسفل وعند ورود رسالة جديدة يتحرك ايضا الى أسفل المحادثة وعندما نرتفع لأعلى لقرائة الرسائل القديمة اذا كانت هناك رسالة واردة يظهر سهم عند الضغط عليه يتحرك الشريط الجانبي الى اسفل المحادثة اتسائل هل هذا الأمر صعب التطبيق وهل يمكن تنفيذه في البرنامج التالي حيث عند اعادة تحميل الصفحة يتحرك الشريط لأسفل وعند ورود رسالة جديدة يتحرك الشريط لأسفل وعند قراءة الرسائل القديمة يتوقف الشريط الجانبي عن التحرك التلقاءي <div class="div_show_message_groups" id="div_show_message_groups"> </div> <script> $(document).ready(function(e) { function getMessages(letter) { var message=$('#div_show_message_groups'); $.get('show_pages/display_messages_groups.php', function(data) { message.html(data); }); } setInterval(function() { getMessages("letter"); }, 100) //....... $("#messages_form_groups").on('submit', function(e) { e.preventDefault(); $.ajax ({ type: 'POST', url: 'send_pages/send_messages_form_groups.php', data: new FormData(this), dataType: 'json', contentType: false, cache: false, processData:false, success: function(response) { if(response.status == 1) { $('#messages_form_groups')[0].reset(); } } }); }); }); </script>
  8. تاريخ البداية وتاريخ النهاية يتم حفظهم بنفس التنسيق اظن ان المشكلة في الكود التالي <?php if ( date("Y-m-d H:i:s")==$row['end_time'] ) : ?>
  9. السلام عليكم هذا محتوى خبر عاجل في القاعدة يتم تخزين تاريخ نهاية الخبر بعد اسبوع $date = date("Y-m-d H:i:s", strtotime("+1 week")); الكود كالتالي <?php $stmt = $db->prepare('SELECT * FROM breaking_news'); $stmt->execute(); $result = $stmt->get_result(); ?> <?php while ($row = $result->fetch_assoc()) : ?> <?php if ( date("Y-m-d H:i:s")==$row['end_time'] ) : ?> <?php $news =""; $date =""; $end_time =""; $stmt = $db->prepare("UPDATE breaking_news SET news=?,date=?,end_time=?"); $stmt->bind_param('sss',$news,$date,$end_time); $stmt->execute(); ?> <?php endif; ?> <?php endwhile; ?> المفترض عندما يتساوى التاريخ الحالي مع تاريخ نهاية الوقت يتم تفريغ المحتوى - لكن بعد مرور الوقت لايحدث ذلك ما هي المشكلة لو تفضلتم
  10. السلام عليكم في البرنامج التالي يتم ارسال رسالة لقاعدة البيانات ربما تحتوي معها صورة ويتم عرض الصورة قبل رفعها <img class="img-thumbnail" id="viewimg" style="display:none;"> بعد الارسال يتم تفريغ حقل النص $('#messages_form_groups')[0].reset(); المشكلة ان الصورة المعروضة تظل عالقة ولا تختفي الا بعد اعادة تحميل الصفحة كيف يمكن ازالة عرضالصورة بعد الارسال كما حدث للنص فى منطقة textarea <img class="img-thumbnail" id="viewimg" style="display:none;"> <form id="messages_form_groups" enctype="multipart/form-data" class="form_msgs"> <label for="file" title="صورة"> <img src="images/photo_upload.png" /> </label> <input name="picname" id="putname" type="hidden"> <textarea class="textarea_msgs_groups" name="message" id="message" maxlength="350" placeholder="اكتب رسالة ...."> </textarea> <div class="myButton" title="ارسال"> <INPUT type="submit" name="submit_profile" value=""> </div> <script> $("#messages_form_groups").on('submit', function(e) { e.preventDefault(); $.ajax ({ type: 'POST', url: 'send_pages/send_messages_form_groups.php', data: new FormData(this), dataType: 'json', contentType: false, cache: false, processData:false, success: function(response) { if(response.status == 1) { $('#messages_form_groups')[0].reset(); } } }); }); }); </script>
  11. جربت شىء كهذا لكن لم ينجح $$stmt = $db->prepare('SELECT * FROM("SELECT u.*, a.* FROM `users_chat` as u inner join `accounts` as a WHERE u.recipient_id=? GROUP BY u.id DESC") as T GROUP BY T.u.sender_id ORDER BY u.id DESC'); $stmt->bind_param('i',$_SESSION['id']);
  12. اقصد ان الكود الاخير يظهر جميع الرساءل من جدول الرسائل كيف نجعلة يظهر اخر سالة للعضو كما في الكود الاول والمحادثة بين المرسل والمستقبل في الكود الثاني
  13. شكرا اخي الفاضل على هذا التنبية لكن كيف يمكن دمج الكود الاخير بكلا الكودين الاخرين
  14. السلام عليكم في هذا البرنامج هناك قائمة منسدلة تظهر اخر رسالة للعضو <?php $stmt = $db->prepare('SELECT * FROM(SELECT * FROM messages WHERE recipient_id=? GROUP BY id DESC) as T GROUP BY T.sender_id ORDER BY id DESC'); $stmt->bind_param('i',$_SESSION['id']); ?> ويتم عرض الرسائل في صفحة اخرى كالتالي <?php $stmt = $db->prepare('SELECT * FROM messages WHERE recipient_id =? AND sender_id=? OR recipient_id=? AND sender_id=? Order By id ASC'); $stmt->bind_param('iiii',$_SESSION['id'],$_GET['msgs'],$_GET['msgs'],$_SESSION['id']); ?> والسؤال - كيف نربط كل كود منهم الخاص بجدول messages نربطه بجدول الأعضاء accounts انا لا اعرف كيف ندمج لهم هذا الكود ان كان الكود صحيحا ايضا ام لا <?php $stmt = $db->prepare('SELECT m.*, a.* FROM `messages` as m inner join `accounts` as a WHERE a.id=m.recipient_id AND a.id =m.sender_id'); ?>
  15. لدي جدولين في قاعدة البيانات الاول users يحتوي id ومعلومات العضو اسم وايميل وغيره الجدول الثاني chat يحوي sender_id هو نفسه ال id في جدول users كيف يمكن ربط الجدولين عند الاستعلام بحيث يتم عرض الرسالة من chat وعرض معلومات العضو من users <?php $stmt = $db->prepare('SELECT * FROM chat'); $stmt->execute(); $result = $stmt->get_result(); $count = mysqli_num_rows($result); ?> <?php if ($count > 0) : ?> <?php while ($row = $result->fetch_assoc() ): ?> <?= $row['message'] ?> "> .... .... <?php endwhile; ?> <?php endif; ?> ............................ <?php $stmt = $db->prepare('SELECT * FROM users'); $stmt->execute(); $result = $stmt->get_result(); $row_accounts = $result->fetch_assoc(); $stmt->close(); ?>
  16. جربت الكود لكن هناك مشكلة <?php $uploadDir = 'uploads/'; //.............. if(!empty($_FILES["file"]["name"])) { $name = explode('.', $_FILES["file"]["name"]); $fileName = substr(md5(uniqid(rand(), true)),3,10); $end = end($name); $newName = $fileName . '.' . $end; $fileType = pathinfo($newName, PATHINFO_EXTENSION); $allowTypes = array('pdf', 'doc', 'docx', 'jpg', 'png', 'jpeg'); if(in_array($fileType, $allowTypes)) { if(move_uploaded_file($_FILES["file"]["tmp_name"], $newName)) { $uploadedFile = $fileName; } ?>
  17. السلام عليكم هذا البرنامج يقوم برفع ملف وارساله للقاعدة كيف يمكن تغيير اسم الملف ( اسم فريد ) ليتم تخزينه بهذا الاسم مثلا $fileName = substr(md5(uniqid(rand(), true)),3,10); كيف يمكن تعديل الكود <?php $uploadDir = 'uploads/'; $response = array( 'status' => 0, 'message' => 'Form submission failed, please try again.' ); // If form is submitted if(isset($_POST['name']) || isset($_POST['email']) || isset($_POST['file'])){ // Get the submitted form data $name = $_POST['name']; $email = $_POST['email']; // Check whether submitted data is not empty if(!empty($name) && !empty($email)){ // Validate email if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){ $response['message'] = 'Please enter a valid email.'; }else{ $uploadStatus = 1; // Upload file $uploadedFile = ''; if(!empty($_FILES["file"]["name"])){ // File path config $fileName = basename($_FILES["file"]["name"]); $targetFilePath = $uploadDir . $fileName; $fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION); // Allow certain file formats $allowTypes = array('pdf', 'doc', 'docx', 'jpg', 'png', 'jpeg'); if(in_array($fileType, $allowTypes)){ // Upload file to the server if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){ $uploadedFile = $fileName; }else{ $uploadStatus = 0; $response['message'] = 'Sorry, there was an error uploading your file.'; } }else{ $uploadStatus = 0; $response['message'] = 'Sorry, only PDF, DOC, JPG, JPEG, & PNG files are allowed to upload.'; } } if($uploadStatus == 1){ // Include the database config file include_once 'dbConfig.php'; // Insert form data in the database $insert = $db->query("INSERT INTO form_data (name,email,file_name) VALUES ('".$name."','".$email."','".$uploadedFile."')"); if($insert){ $response['status'] = 1; $response['message'] = 'Form data submitted successfully!'; } } } }else{ $response['message'] = 'Please fill all the mandatory fields (name and email).'; } } // Return response echo json_encode($response); ?>
  18. يبدو ان الملف تعطل عند الضغط او فيرس لا يهم لكن يبدو ان هناك مشكلة فى $_GET['msgs'] الرسائل يتم ارسالها للقاعدة لكن لا يتم جلبها لصندوق الرسائل - عندما احذف $_GET['msgs'] يتم ظهور الرسائل $stmt = $db->prepare('SELECT * FROM users_chat Order By id ASC'); لكن عند وجود GET لا تظهر الرسائل بصندوق العرض $stmt = $db->prepare('SELECT * FROM users_chat WHERE recipient_id =? AND sender_id=? OR recipient_id=? AND sender_id=? Order By id ASC'); $stmt->bind_param('iiii',$_SESSION['id'],$_GET['msgs'],$_GET['msgs'],$_SESSION['id']); سوف ارفق الملف مرة اخرى لان المشكلة ربما توجد في show_messages_users.php او display_messages_users.php لا اعرف حاولت جاهدا لكن لم اتمكن من الوصول لحل غير حذفGET chat.rar
  19. شكرا اخي الفاضل لكن تتبقى المشكلة الأكبر وهي توقف الرسائل ( القائمة المنسدلة - الاشعارات - ظهور الرسائل في صندوق عرض الرسائل ) اذا اردت التجريب فكلمات السر هي 123456 للمستخدم ahmed و ali شكرا مرة اخرى واشكرك مرة اخرى
×
×
  • أضف...