Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2015, 17:55
Новичок на форуме
Отправить личное сообщение для jqRM Посмотреть профиль Найти все сообщения от jqRM
 
Регистрация: 20.07.2015
Сообщений: 5

Не работает сортировка
С JQuery столкнулся недавно, самому разобраться не получается
Пытаюсь прикрутить drug and drop сортировку к сайту
но при этом она работает только при отключении ajax функций обновления контента (по отдельности все работает)
вот JS код:
$(document).ready(function(){ 	
  
  function slideout(){
  setTimeout(function(){
  $("#response").slideUp("slow", function () {});
  }, 2000);}

    $("#response").hide();
	
	$(function() {
	$("#list ul").sortable({ opacity: 0.8, cursor: 'move', update: function() {
			
			var order = $(this).sortable("serialize") + '&update=update'; 
			$.post("updateList.php", order, function(theResponse){
				$("#response").html(theResponse);
				$("#response").slideDown('slow');
				slideout();
			}); 															 
		}								  
		});
	});
	
	
	$('#glossary').change(function(){
			$.ajax({
				type: 'POST',
				cache: false,
				url: 'viewObjList.php',
				data: 'glossary_type='+$('#glossary').val(),
				success: function(data){
				  $('#put').html(data);
				}
			  });
	});

});


viewObjList.php
include_once('db_conn.php');
db_conn();
$sel_query = "SELECT * FROM ".$_POST['glossary_type']." ORDER BY sort ASC";
$sel_result = pg_query($sel_query) or die('Query error: ' . pg_last_error());
printf("
	<div id='container'>
		<div id='list'>
		<div id='response'> </div>
			<ul>");
		while ($line = pg_fetch_array($sel_result, null, PGSQL_ASSOC)) {
				printf ("
				<li class='word_item' id='arrayorder_%s'>
					<span ><img src='img/del.png' width='23' alt='Удалить /'></span>
					<span ><img src='img/edit.png' width='23'  alt='Редактировать' /></span>
					<span>%s</span>
					
					<div class='clear'></div>
				</li>", $line['id'], $line['name']);
			}
		printf("
			</ul>
		</div>
	</div>");
?>
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2015, 20:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

"SELECT * FROM ".$_POST['glossary_type']." ORDER BY sort ASC";

Так нельзя поступать.
Ответить с цитированием
  #3 (permalink)  
Старый 21.07.2015, 00:25
Новичок на форуме
Отправить личное сообщение для jqRM Посмотреть профиль Найти все сообщения от jqRM
 
Регистрация: 20.07.2015
Сообщений: 5

Подскажите как нужно...
Ответить с цитированием
  #4 (permalink)  
Старый 21.07.2015, 01:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

После FROM идет имя таблицы, и получается, что это имя вы получаете извне, более того как значение поля формы - $('#glossary').val(). Это означает, что вы открываете двери для инъекции, когда можно подбирать иные имена таблиц базы, а угадав (благо на несуществующие ваш скрипт любезно выдаст ошибку), творить с вашей базой все что угодно.

Все данные пришедшие извне нельзя подставлять непосредственно в запрос как его параметры, их необходимо экранировать или приводить к соответствующему типу. Значения полученные извне и в дальнейшем используемые в запросе как его параметры также надо экранировать.

Если есть веские основания для указания имени таблицы в форме, то это должно быть только его часть, без префикса, и только на сервере формировать полное имя. А если еще это имя задается как вводимое в форму значение, то перед запросом не мешало бы удостовериться в наличие такой таблицы в базе.

Что касается сортировки, то здесь вообще не понятно о чем речь. Если это задание пользовательской сортировки записей в таблице, то не видно по коду операций для таких случаев ни на клиенте, ни на сервере.
Ответить с цитированием
  #5 (permalink)  
Старый 21.07.2015, 09:03
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от jqRM
Пытаюсь прикрутить drug and drop сортировку к сайту
Во-первых drag and drop, во-вторых что это такое - сортировка через драг?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
Сортировка - кто пояснит как работает код.. caca0 Javascript под браузер 1 23.05.2012 18:08
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11