Autor | Zpráva | ||
---|---|---|---|
Arady Profil |
#1 · Zasláno: 17. 7. 2018, 20:29:23
Dobrý den,
potřeboval bych se s Vámi poradit. Mám zde určitý JavaScript kód, který po kliknutí na <span> otevře okénko chatu, nadále JS zajišťuje odeslání ID konverzace do php souboru, aby vypsal obsah z Databáze přimo do toho okna. Celý chat a všechno okolo krásně funguje, ale jen v případě jednoho chatu. Když otevřu další chatové okénko, tak se mi tam vypíše to samé co je v tom předchozím. Jinak řečeno php soubor vypíše jednu věc do všech otevřených oken. Od Vás bych potřeboval poradit, jak to udělat tak, aby do každého okénka posílal jiné data. Už si nevím rady a tady jste mi všichni pomohli :) JavaScript: $(document).ready(function(){ var arr = []; $(document).on('click', '.msg_head', function() { var chatbox = $(this).parents().attr("rel") ; $('[rel="'+chatbox+'"] .msg_wrap').slideToggle('slow'); return false; }); $(document).on('click', '.close1', function() { var chatbox = $(this).parents().parents().attr("rel") ; $('[rel="'+chatbox+'"]').hide(); arr.splice($.inArray(chatbox, arr), 1); displayChatBox(); return false; }); $(document).on('click', '#konverzace-slap', function() { var konv_id = $(this).attr("class"); var konv_nazev = $(this).children().text() ; if ($.inArray(konv_id, arr) != -1) { arr.splice($.inArray(konv_id, arr), 1); } arr.unshift(konv_id); chatPopup = '<div class="msg_box" style="right:270px" rel="'+ konv_id+'">'+ '<div class="msg_head">'+konv_nazev + '<div class="close1">x</div> </div>'+ '<div class="msg_wrap"> <div class="msg_body"> <div class="msg_push"></div> </div>'+ '<div class="msg_footer"><textarea class="'+ konv_id +'" rows="3" id="msg_input"></textarea></div> </div> </div>' ; $("body").append( chatPopup ); displayChatBox(); }); /* $(document).on('keypress', 'textarea' , function(e) { if (e.keyCode == 13 ) { var msg = $(this).val(); var konv_id = $(this).attr("class"); $(this).val(''); if(msg.trim().length != 0){ $.ajax({ type: "POST", url: "includes/add_msg_konv.php", data:{konv_id:konv_id, msg:msg}, dataType:"text" }); $('.msg_body').scrollTop($('.msg_body')[0].scrollHeight); } } }); */ function displayChatBox(){ i = 100 ; j = 260; $.each( arr, function( index, value ) { if(index < 4){ $('[rel="'+value+'"]').css("right",i); $('[rel="'+value+'"]').show(); i = i+j; } else{ $('[rel="'+value+'"]').hide(); } }); } }); PHP kód: if($_POST) { if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { die(); } if(isset($_POST["message"]) && strlen($_POST["message"])>0) { $message = replace_smile($_POST["message"]); $cas = time(); if(mysql_query("INSERT INTO konverzace_zpravy(`messag_konvid`,`messag_user`,`messag_obsah`,`messag_time`) VALUES('".$_POST['konv_id']."','".$user_data['userid']."', '".$_POST['message']."','$cas')")) { echo '<div class="msg-right">'.$message.'</div>'; } } elseif($_POST["fetch"]==1) { $results = mysql_query("SELECT * FROM ( SELECT * FROM konverzace_zpravy WHERE messag_konvid = '".$_POST['konv_id']."' ORDER BY messag_time DESC LIMIT 10) konverzace_zpravy order by konverzace_zpravy.messag_id ASC"); while($row = mysql_fetch_array($results)) { $uziv_chats = $row['messag_user']; $obsah_chats = replace_smile($row['messag_obsah']); $time_chats = $row['messag_time']; if($uziv_chats == $user_data['userid']) {echo '<div class="msg-right">'.$obsah_chats.'</div>';} else {echo '<div class="msg-left">'.$obsah_chats.'</div>';} } } else { header('HTTP/1.1 500 Are you kiddin me?'); exit(); } } |
||
Keeehi Profil |
#2 · Zasláno: 17. 7. 2018, 21:13:23
Jediný ajax máš v zakomentované části kódu. Vytvoř prosím tě reálnou živou ukázku, kde bude ten problém vidět a bude možné si to vyzkoušet.
Doufám, že toto je jen prototyp a bezpečnostní díry v konečném produktu nebudou. Vidím minimálně SQL injection a persistentní XSS. A nepochybuji, že tam budou další jako třeba CSRF. |
||
Časová prodleva: 6 let
|
0