Виджет с проверкой подлинности администратора страницы

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
Ответить
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Виджет с проверкой подлинности администратора страницы

Сообщение Александр »

Виджет с проверкой подлинности администратора публичной страницы
HTML, CSS, JavaScript, PHP

В этом уроке вы узнаете как сделать для виджета администраторскую часть, чтобы простые пользователи при этом её не видели и не подгружали лишние данные.

В уроке показаны случаи, когда переданные скрипту данные, лучше получить и обработать в JavaScript, а когда эти же данные следует получить и работать с ними в PHP.
Начинающие часто смешивают разные способы и потом путаются в этом. Используя логику которую опишу я, можно будет доработать скрипт даже после некоторого времени, когда вы забудете почему делали что-то именно так.

Если вы ещё не создавали виджет для публичных страниц и не знаете как это сделать, то сначала прочтите урок Виджет для публичных страниц.


Код скрипта виджета

Код: Выделить всё

<html><head><title>http://flapps.ru</title><script src="http://vkontakte.ru/js/api/xd_connection.js"  type="text/javascript"></script></head><body><style>body {    font-family: tahoma, arial, verdana, sans-serif, Lucida Sans;    font-size: 11px;    color: #000;    margin:0;    padding:3px 8px;}</style><script type="text/javascript" language="javascript">window.onload = (function() {    VK.init(function() {         // здесь выполняем функции, которые требуются для работы виджета у простого пользователя        VK.loadParams(document.location.href);        var viewer_id = VK.params.viewer_id;        // выполняем запрос получения профиля        VK.api("getProfiles", {uids:viewer_id}, function(data) {            // обрабатываем полученные данные            // выводим имя и фамилию в блок user_info            document.getElementById('user_info').innerHTML = 'Привет, ' + data.response[0].first_name + ' ' + data.response[0].last_name;        });    });         }); </script> <div id="user_info"></div><a href="http://flapps.ru">http://flapps.ru</a><?// здесь логично выводить интерфейс администратора и подключить те функции, которые требуются для администрирования виджетаif ($_GET['is_public_admin']==1) { // передан параметр is_public_admin=1 - пользователь является администратором публичной страницы (но это может быть подмена, поэтому нужно проверить по public_admin_key)    // проверяем подлинность пользователя    $secret_key = 'qwerty12345asdfgh678'; // защищенный ключ приложения    // получаем переданные скрипту данные, для проверки подлинности пользователя    $public_id = $_GET['public_id']; // id публичной страницы    $viewer_id = $_GET['viewer_id'];  // id пользователя просматривающего виджет    $public_admin_key = $_GET['public_admin_key']; // public_admin_key        // рассчитываем ключ проверки подлинности    $real_key = md5($public_id."_".$viewer_id."_".$secret_key);     if ($public_admin_key == $real_key) { // всё верно        // выполняем какие-то функции в php        $some = 1+10;        // и выводим html часть админского интерфейса        ?>            <!-- для удобного редактирования, можно вынести администраторскую часть кода в отдельный файл, затем подключить -->            <div id="admin_block">                <p>Вы администратор публичной страницы. Переменная $some = <? echo $some ?></p>            </div>        <?    }}?></body></html>
Аватара пользователя
Pavlo0a
Сообщения: 26
Зарегистрирован: 08 авг 2010, 18:25

Re: Виджет с проверкой подлинности администратора страницы

Сообщение Pavlo0a »

Спасибо :)
Но не пригодиться. А можно использовать этот код не в публичной странице, а например в обычном iframe приложении?
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Виджет с проверкой подлинности администратора страницы

Сообщение ukhov »

Pavlo0a писал(а):Спасибо :)
Но не пригодиться. А можно использовать этот код не в публичной странице, а например в обычном iframe приложении?
да, и наооборот
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Виджет с проверкой подлинности администратора страницы

Сообщение Александр »

В простом iframe приложении нету is_public_admin и public_admin_key. Логику и часть кода можно использовать и в iframe приложении. Так же и наоборот.
Ответить