Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: Помогите с поиском. Добавлено: 14.12.06 16:30  

Автор вопроса:  Djmun | ICQ: 4401990 
Есть БД и с сайта производится поиск вот код

search=Request.QueryString("search")

if Request.QueryString("search") <> empty then
strSql = "SELECT * FROM main WHERE name='"& search &"'"
else  
strSql = "SELECT * FROM main ORDER BY name"
end if

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

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 14.12.06 17:07
Надо его эскейпить. Т.е. ' должно быть преобразовано в \'

Ответить

Номер ответа: 2
Автор ответа:
 Djmun



ICQ: 4401990 

Вопросов: 16
Ответов: 33
 Профиль | | #2 Добавлено: 15.12.06 10:09
Sharp
Если можна небальшой пример как это делат?!

Ответить

Номер ответа: 3
Автор ответа:
 Djmun



ICQ: 4401990 

Вопросов: 16
Ответов: 33
 Профиль | | #3 Добавлено: 19.12.06 10:40
Еще кто-то может подсказать???

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 19.12.06 13:09
В качестве примера попробуй для поиска задать следующую строку, должно помочь.. ))
1'; DROP TABLE main; Select '1

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 19.12.06 21:26
search = Replace$ (search, "'", "\'";)
...
strSql = "SELECT * FROM main WHERE name='" & search & "'"

Это и есть то, что имел ввиду Sharp.

Ответить

Номер ответа: 6
Автор ответа:
 Djmun



ICQ: 4401990 

Вопросов: 16
Ответов: 33
 Профиль | | #6 Добавлено: 20.12.06 10:18
Вот какя ошибка возникает..

Microsoft VBScript compilation (0x800A0408)
Invalid character
/Prog/userpage.asp, line 41, column 16
search = Replace$ (search, "'", "\'";)
---------------^

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 20.12.06 11:13
а тьфу, это ж .net там наверное Replace подругому как-то...

Ответить

Номер ответа: 8
Автор ответа:
 Djmun



ICQ: 4401990 

Вопросов: 16
Ответов: 33
 Профиль | | #8 Добавлено: 20.12.06 11:58
HACKER
А как???

Ответить

Номер ответа: 9
Автор ответа:
 Шпион



ICQ: 250543104 

Вопросов: 13
Ответов: 118
 Профиль | | #9 Добавлено: 20.12.06 12:49
поскольку форум ASP, а не ASP.NET, то действуют функции VBScript

обращаемся к документации:
Replace(expression, find, replacewith[, start[, count[, compare]]])

Ответить

Номер ответа: 10
Автор ответа:
 Шпион



ICQ: 250543104 

Вопросов: 13
Ответов: 118
 Профиль | | #10 Добавлено: 20.12.06 12:50
значок доллара лишний, имхо :)

Ответить

Номер ответа: 11
Автор ответа:
 Djmun



ICQ: 4401990 

Вопросов: 16
Ответов: 33
 Профиль | | #11 Добавлено: 20.12.06 13:57
Всьо работет!
ОГРОМНОЕ спасибо всем!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам