2015-01-28 3 views
0

Мне нужна помощь, чтобы понять, возможно ли это, и как я могу это сделать. У меня есть два файла asp, один с макетом страницы - видимая часть (default.asp), а другая - с запросами (process.asp). В default.asp у меня есть таблица, заполненная информацией, форму запроса на process.asp. Для этого, как только вы откроете страницу, у меня есть:ASP Order By Multifile query

<!--#include file="process.asp"--> 

в начале. Я хочу заказать столик с помощью щелчка по имени столбца, поэтому я использую:

<td onclick="document.location.href('default.asp?ord=num')">Number</td> 

на default.asp.

Как я могу передать информацию process.asp использовать в ORDER BY '" & Request.QueryString("ord")ASC"'

это возможным.

Я не разработчик, так сожалею, если его немой вопрос.

+0

Да. Это возможно, но подвержено атакам SQL-инъекций (http://en.wikipedia.org/wiki/SQL_injection). Ты это пробовал? – haim770

+0

Кроме того, 'document.location.href' не является функцией. Вероятно, вы имели в виду 'onclick = 'document.location.href =' default.asp? Ord = num ';" ' – haim770

+0

Haim770, спасибо за комментарий. Onclick работает так, как я опубликовал. Разве это не должно было ??? – Hugo

ответ

0

Хорошо - после повторного чтения ...

Потому что вы include d файл ...

<!--#include file="process.asp"--> 

... это действительно просто часть большего default.asp - process.asp файл get объединяется в файл default.asp в точке #include. С этой целью, отправляя обратно на ту же страницу (как есть) будет проходить в QueryString значение ord ...

<td onclick="document.location.href='default.asp?ord=num';">Number</td> 

После того, как ваша страница начинается снова (default.asp) вы можете просто прочитать значение в соответствии с заданными параметрами выше:

"...ORDER BY " & Request.QueryString("ord") & " ASC" 

Обратите внимания, что я добавил дополнительный & конкатенировать " ASC" и удалил апостроф '.

Очень важно, чтобы вы проверили это значение до его использования. Например ...

Const validFields = " num myfield1 myfield2 myfield3 myfield4 " 
Dim ord 
ord = Request.QueryString("ord") 
If Instr(validFields, ord) > 0 Then sqlString = sqlString & " ORDER BY " & ord & " ASC " 

... в противном случае я могу просто использовать инъекции делать гадости к базе данных (см совет Haim770 в выше).

Надеюсь, это имеет смысл для вас!

+0

Спасибо за отзыв. Butt, если я использую этот метод, у меня будет другой входной файл, где wi'll будет вынужден написать colum, который я хочу заказать, правильно? – Hugo

+0

Извините, Хьюго, я совершенно неправильно понял вопрос. Извините мой drivel выше - я отредактирую ответ ... – Paul