Используя эту функцию PHP mysql_escape_string()
, вы можете быстро получить хорошую профилактику.
Например:
SELECT * FROM users WHERE name = '".mysql_escape_string($name_from_html_form)."'
mysql_escape_string
- Сбрасывает строку для использования в mysql_query
Для большей профилактики вы можете добавить в конце ...
wHERE 1=1 or LIMIT 1
Наконец вы получаете:
SELECT * FROM users WHERE name = '".mysql_escape_string($name_from_html_form)."' LIMIT 1
IE6 не поддерживает несколько селекторов класса. Причина Вы видите изменение с Orange
класс, состоит в том, потому что a.MenuButton.Orange
интерпретируется IE6 как a.Orange
.
я рекомендую структурировать Вашу разметку таким способом, которым можно работать вокруг этого:
<div class="leftcontent">
<ul class="navmenu">
<li><a class="menubutton orange" href="#">One</a></li>
<li><a class="menubutton orange clicked" href="#">Two</a></li>
</ul>
</div>
Путем группировки более определенным предком можно создать изменение с классами, ограниченными по объему тем предком (в этом примере navmenu
):
.leftcontent .navmenu a { /* ... basic styles ... */ }
.leftcontent .navmenu a.orange { /* ... extra orange ... */ }
.leftcontent .navmenu a.clicked { /* ... bold text ... */ }
Это не столь хорошо как несколько классов, но я использовал его для работы вокруг отсутствия поддержки в IE.
Скрипт Дина Эдвардса IE7 добавляет поддержку нескольких классов для IE6. См. http://code.google.com/p/ie7-js/
., Если я использую (как я записал в вопросе), определенные для тега правила, как.LeftContent a. MenuButton. Оранжевый, это работает...
Это только соответствует им, если классы в селекторе находятся в том же порядке как классы на элементе.
Это не довольно верно. IE6 (и IE7 в Режиме Причуд) только помнит один класс на селекторную часть. Если Вы пишете два, второй переопределяет первое. Так вЂa. MenuButton. Orange’ идентичен в действительности вЂa. Orange’.
, Таким образом, нескольких селекторов класса действительно все еще нужно избежать на данный момент.