alexvaleev

alexvaleev
Рейтинг
55
Регистрация
04.02.2010

У групп ВК есть callback api, в котором можно "подписаться" на уведомления о вступлении в группу и через метод messages.send отправлять сообщение. Главное, чтобы за спам не забанили:)

KianoT:
http://fancyapps.com/fancybox/#examples там тоже есть реализация на аяксе, но если открыть правой кнопкой, тоже самое что и с фрэймом.

При 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 всего лишь выводит содержимое.

Всего: 117