Я думаю, что если кто-то захочет использовать PHP и MySQL или какой-нибудь другой сервер базы данных:
(int)$foo
. Подробнее о типах переменных в PHP читайте здесь . Если вы используете библиотеки, такие как PDO или MySQLi, всегда используйте PDO :: quote () и mysqli_real_escape_string () . Примеры библиотек:
---- PDO
----- Никакие заполнители - не спешили для SQL-инъекций! Это плохо
$request = $pdoConnection->("INSERT INTO parents (name, addr, city) values ($name, $addr, $city)");
----- Без имени заполнители
$request = $pdoConnection->("INSERT INTO parents (name, addr, city) values (?, ?, ?);
----- Именованные заполнители
$request = $pdoConnection->("INSERT INTO parents (name, addr, city) value (:name, :addr, :city)");
--- MySQLi
$request = $mysqliConnection->prepare(' SELECT * FROM trainers WHERE name = ? AND email = ? AND last_login > ?'); $query->bind_param('first_param', 'second_param', $mail, time() - 3600); $query->execute();
PS:
PDO побеждает в этом сражении с легкостью. Благодаря поддержке двенадцати различных драйверов баз данных и именованных параметров мы можем игнорировать небольшую потерю производительности и привыкнуть к ее API. С точки зрения безопасности, оба они являются безопасными, пока разработчик использует их так, как они должны использоваться
. Но хотя PDO и MySQLi довольно быстры, MySQLi выполняет незначительную скорость в тестах - ~ 2,5% для незаготовленных отчетов и ~ 6,5% для подготовленных.
И, пожалуйста, проверьте каждый запрос в своей базе данных - это лучший способ предотвратить инъекцию.
Примените два класса к relvant элементу. каждый содержит поведение при наведении курсора, и каждый содержит все другие моделирование.
можно тогда использовать метод jquery
$(element).removeClass('hover');
, чтобы удалить класс с поведением при наведении курсора и затем применяться независимо от того, что Вы хотите использовать
$(element).bind('mouseover', function () { doSomething(); });
$(element).bind('mouseout', function () { doSomething(); });
Как насчет того, чтобы поместить :hover
нейтрализация в таблице стилей, которая только загружается, если JavaScript отключен?
<noscript>
<link href="noscript.css" rel="stylesheet" type="text/css" />
</noscript>
Я думаю, что лучший подход должен был бы оставить :hover
поведение как нейтрализация для пользователей не-JavaScript и затем использовать JQuery для создания наведения мыши и обработчиков событий mouseOut для создания различного эффекта для поддерживающих JavaScript пользователей.
Я НАШЕЛ ВАШЕ РЕШЕНИЕ
в основном вы начинаете с переопределения того, что вы делали при наведении курсора CSS. (естественно, вы бы сделали это, динамически извлекая информацию из стиля) затем делайте все, что хотите, в jquery с событиями mouseover / mouseout
, это позволяет вам сохранить событие: hover в вашем css, потому что jquery привязывает ваши исходные стили к элементу. По сути, отключение события: hover.
если ваш css:
a.class {
background-color: #000000;
background-position: 0 0;
}
a.class:hover {
background-color: #ffffff;
background-position: 100% -50px;
}
ваш jquery будет примерно таким:
jQuery("a.class").each(function () {
var oldBackgroundColor = jQuery(this).css("backgroundColor");
var oldBackgroundPosition = jQuery(this).css("backgroundPosition");
jQuery(".class").css({
'backgroundColor':oldBackgroundColor,
'backgroundPosition':oldBackgroundPosition
});
})
.bind("mouseover", function() {
doSomething();
})
.bind("mouseout", function() {
doSomething();
})
Вы можете глобально включить поведение для всего документа с помощью одного правила CSS, а затем отключите это правило одним оператором в javascript при установке нового обработчика событий.
Добавьте класс в свой тег тела html:
<html>
<body class="use-hover">
...
Поведение по умолчанию в вашем CSS, скажем, жирные ссылки при наведении:
body.use-hover a:hover
font-weight: bold
И в вашем js, когда запуск удалит поведение по умолчанию и сделает что-то еще:
$(function() {
$('body').removeClass('use-hover');
$('a').live('mouseover', function() {
// Do something when hovered
}).live('mouseout', function() {
// Do something after hover is lost
});
});
Вот решение без классов взлома:
CSS:
a {color: blue;}
a:hover {color: red;}
jQuery (использует jQueryUI для анимации цвета):
$('a').hover(
function() {
$(this)
.css('color','blue')
.animate({'color': 'red'}, 400);
},
function() {
$(this)
.animate({'color': 'blue'}, 400);
}
);