|
|
|
|
|
для: Trianon
(24.11.2007 в 00:01)
| | :) А Вы с какого момента поняли, что нужно было сказать UCS-2/UCS-4? | |
|
|
|
|
|
|
|
для: Unkind
(23.11.2007 в 07:53)
| | Ок . Уговорили.
Не в utf-8
В ucs-2 | |
|
|
|
|
|
|
|
для: Trianon
(23.11.2007 в 00:57)
| | А может быть другим байтом? Или так: Вы не убеждены, что только 0x5C? | |
|
|
|
|
|
|
|
для: Unkind
(22.11.2007 в 22:45)
| | Если Вы убеждены, что символ экранирования всегда останется байтом 0x5C - можете эту функцию не применять. | |
|
|
|
|
|
|
|
для: Trianon
(22.11.2007 в 19:53)
| | А я не зря это спросил. Вы что-то путаете.
UTF-8 это текст, в котором каждый из символов представлен последовательностью байтов, подходящих под один из шаблонов совокупности:
http://unhost.ru/trash/utf8.txt (прямо в сообщении, к моему большому удивлению, написать не смог)
Так вот байты до 0x7F включительно выражаются одним байтом. А ведь все байты, которые эскейпирует mysql_escape_string() как раз до 0x7F, а именно: 0x00, 0x0A, 0x0D, 0x1A, 0x22, 0x27, 0x5C.
Говорю байты, потому что в данном случае это получается одно и то же. | |
|
|
|
|
|
|
|
для: Unkind
(22.11.2007 в 16:12)
| | Затем, что экранировать в строке запроса следует целые многобайтовые символы, а не отдельные их байты.
И хотя в проекции русского алфавита на карту utf-8 , критичных символов нет, насколько я помню, но писать всё ж следует аккуратно. Код, работающий с utf-8, неявно предполагает от его автора, что он останется работоспособным при переходе на [возможно более] любой язык, а не только тот, на котором шло тестирование. | |
|
|
|
|
|
|
|
для: cheops
(22.11.2007 в 12:13)
| | А IP-адрес пропускать через какую функцию intval() или mysql_escape_string()?
Спасибо. | |
|
|
|
|
|
|
|
для: Trianon
(22.11.2007 в 08:57)
| | > Если работаете с UTF-8 - следует применять mysql_real_escape_string()
Это зачем? | |
|
|
|
|
|
|
|
для: kis-kis
(21.11.2007 в 18:40)
| | Да, для защиты от SQL-инъекции, этого достаточно. | |
|
|
|
|
|
|
|
для: Thrasher
(22.11.2007 в 09:50)
| | Спасибо. | |
|
|
|
|