Возможно, еще потребуется задать заголовки Sender и Return-Path и убедиться, что пользователь, который осуществляет SMTP сессию имеет право представляться тем именем, которое вы хотите использовать.
Могу набросать вам простой скриптик для этой задачи, на PHP. Только нужны кое-какие исходные данные:
Ссылка из унылого топа гугла - https://www.google.ru/search?q=html+entity+decode+online&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a При вирусы не в курсе, у меня все тихо... можно поподробнее?
http://htmlentities.net/ - не оно?
Вы путаете хакеров и скрипткиддис. То, что вы написали, справедливо для тех, кто использует уязвимости, найденные кем-то другим, т.е. scriptkiddies. А вот как раз хакер будет сидеть до победного несколько суток и больше, если нужно... Другой вопрос - насколько серьезен проет ТС? Я думаю, не настолько, чтобы к его взлому привлекли настоящих хакеров.
При нажатии на "больше не показывать" нужно сохранять идентификатор новости в переменную в cookies пользователя, а при формировании списка новостей, нужно проверять наличие переменной и не показывать новости, которые в этой переменной найдены.
Если новостей много, то можно упереться в предел размера cookies (4K), в этом случае можно посмотреть в сторону localStorage. Если пользователь зарегистрированный, можно хранить эту информацию на стороне сервера индивидуально для каждого пользователя.
Хакер находит одну маааленькую уязвимость, заливает с ее помощью web-шелл, и в результате
Именно. Причем современные web-шеллы иногда превосходят по функционалу даже навороченные ftp-клиенты.
Панацеи нет. Пристальный мониторинг и своевременное обновление ПО, на котором крутится сайт делают работу взломщика сложнее. Но 100% гарантий от взлома вряд ли кто даст. Можно так настроить права доступа к файлам и папкам, чтобы пользователь, из-под которого работает web-сервер не мог изменять файлы. Можно загнать web-сервер в chroot. В каждом конкретном случае нужно рассматривать несколько решений и выбирать оптимальное. Но, повторюсь, абсолютной и универсальной защиты не существует.
В MySQL еще вот так можно:
SELECT GROUP_CONCAT(model ORDER BY model ASC SEPARATOR ', ') FROM table GROUP BY firma;
Как-то так (применительно к MySQL):
SELECT REPLACE( '<div class="qiwi_istory">21.05.2013 10:07:10<br/><center>Кошелек: 45</center></div><br/><div class="qiwi_istory">21.05.2013 10:07:04<br/><center>Кошелек: 5454</center></div><br/><div class="qiwi_istory">21.05.2013 10:06:58<br/><center>Кошелек: 53452354</center></div><br/>', '<div class="qiwi_istory">21.05.2013 10:06:58<br/><center>Кошелек: 53452354</center></div><br/>', '')
Перед объявлением функции напишите:
$links = array();
В самой функции, сразу после открывающего {
global $links;
Не шедевр архитектуры Web-приложений, конечно, но должно работать. А на досуге почитайте что-нибудь про области видимости переменных (variable scope) в PHP