У групп ВК есть callback api, в котором можно "подписаться" на уведомления о вступлении в группу и через метод messages.send отправлять сообщение. Главное, чтобы за спам не забанили:)
При ajax-запросе fancybox добавляет заголовок X-fancyBox:true
Соответственно в php он будет доступен в виде примерно таком
$_SERVER["HTTP_X_FANCYBOX"] = true
Остается в файле с контентом проверять отсутствие этой переменной и подключать шаблон.
Запрет на правый клик:
$(".fancybox").bind("contextmenu", function (e) { return false; });
Еще можно заменить "iframe" на "ajax", страницу отдавать через php в зависимости от заголовков - без шаблона если запрос ajax, как полноценную - если перешли по прямой ссылке.
В строке $u все, что после последней запятой, заменяется на
', '.$index.' \1'
([^\,]+)$ - тут [^\,] значит любой символ кроме запятой, а $ - взять кусок в конце строки.
Пример https://regex101.com/r/eY4lN2/1
Этот вариант подойдет для "закрытой" группы и "открытой" стены.
Т.е. пользователь вне группы вообще не видит стену, подает заявку на вступление, она автоматически подтверждается. После этого можно писать.
Единственное, постоянно опрашивая ВК на предмет заявок можно упереться в лимиты, поэтому аппрувиться они будут не мгновенно (это все теоретически=).
Можно автоматически аппрувить заявки на вступление в группу методами groups.getRequests и groups.approveRequest
Можно автоматически выпиливать посты: методом wall.get получать список, проверять автора с помощью groups.isMember и удалять пост - wall.delete
Все методы в документации ВК https://vk.com/dev/methods.
select distinct a.id, a.ekey from email_subscribe a inner join email_subscribe b on a.ekey=b.ekey where a.id>b.id
А вообще так делать нельзя, хоть в mysql и работает:
SELECT id FROM email_subscribe GROUP BY ekey
Антивирус Eset ругнулся на сайт при первом посещении, возможно часть юзеров банально не доходит до контента.
Можно поразмышлять в сторону "гибридной" проверки на php+js:
1. при загрузке iframe вконтакте всегда (хоть в документации и написано, что должны быть включены платежи, но это не так) передает параметры "viewer_id" и "auth_key", на основании которых можно проверить подлинность параметров на стороне сервера
auth_key = md5(api_id + '_' + viewer_id + '_' + api_secret)
Т.е. если параметры не переданы или подпись не совпадает, значит кто-то ломится по прямой ссылке. К сожалению, это не защищает от полных ссылок, которые выдернули из iframe.
2. среди параметров также есть "access_token" - он привязан к IP пользователя и этот факт можно использовать для проверки валидности через JS. Например, выполнить users.get без параметра user_id, указав только access_token. В случае, если вернется корректный ответ и id пользователя совпадет с viewer_id из п.1, значит пользователь авторизован и именно он зашел в приложение.
Второй пункт не проверялся на практике.
По поводу защиты данных я полностью согласен с vob2014.
Смотря что в файлах - include считывает и выполняет, echo file_get_contents всего лишь выводит содержимое.