Я изменил myFunction
, чтобы взять идентификатор в качестве аргумента, чтобы вы могли указать, какое всплывающее окно переключать. Также исправлена небольшая синтаксическая ошибка var popupTwo = .....; popup.classList
, так как всплывающее окно было undefined
и выдает ошибку.
<!-- Popup 1 -->
<div class="popup" onclick="myFunction('myPopup')">Click me to toggle the popup!
<span class="popuptext" id="myPopup">A Simple Popup!</span>
</div>
<!-- Popup 2 -->
<div class="popup" onclick="myFunction('myPopupTwo')">Click me to toggle the popup two!
<span class="popuptext" id="myPopupTwo">A Simple Second Popup!</span>
</div>
<script>
function myFunction(id) {
var popup = document.getElementById(id);
popup.classList.toggle("show");
}
</script>
Вы не должны использовать htmlentities
при сохранении его. Необходимо использовать htmlentities
при отображении его. Эмпирическое правило не состоит в том, чтобы кодировать/санировать данные, пока Вы не должны. Если Вы делаете htmlentities
на нем, когда Вы сохраняете затем, необходимо сделать html_entity_decode
на тексте, когда пользователь хочет отредактировать вход. Таким образом, Вы санируете, для какого Вам нужно и ничто больше. При сохранении его необходимо санировать для Внедрения SQL, таким образом, Вы mysql_real_escape_string
это. При отображении необходимо санировать для XSS, таким образом, Вы htmlentities
это.
Кроме того, я не уверен, видели ли Вы комментарий Darryl Hein, но Вы действительно не хотите включенный magic_quotes. Они - плохое, плохо, вещь и были удержаны от использования с PHP 5.3 и закончатся в целом в PHP 6.
В дополнение к ответу Паоло о том, когда использовать htmlentities()
, если Вы не используете старую версию PHP, корректный способ санировать для вставки в mysql DB состоит в том, чтобы использовать Подготовленные Операторы, которые являются частью mysqli расширения. Это заменяет любую потребность использовать mysql_real_escape_string()
.
Кроме этого, я думаю, что Вам покрыли вещи.