смс:ключ

смс:ключ

Не уверены, какую услугу выбрать? Обратитесь к странице сравнения наших услуг!

Также обратите внимание на готовые скрипты.

Техническое описание

С технической точки зрения, услуга смс:ключ является простым способом ограничить доступ пользователя к содержимому того или иного сетевого ресурса. Для обхода ограничения используются индивидуально генерируемые пароли доступа; каждый такой пароль может иметь время действия и/или лимит количества использований, на ваше усмотрение. Доступ вновь закрывается, когда выполнилось поставленное вами условие — либо истекло время, либо количество использований пароля. Обратите внимание также на то, что изменения настроек вашего смс:ключа скажется только на тех пользователях, которые получили пароль после внесения изменений.

Характерными особенностями смс:ключа являются:

  • легкость и быстрота установки (стандартная интеграция занимает пять-десять минут);
  • простота адаптации к требованиям пользователя (возможно не только изменение внешнего вида, но и частичная/полная замена формы запроса без потери функциональности).

Для установки услуги смс:ключ скопируйте его код в Панели управления и вставьте его в самом начале страницы, содержимое которой Вы планируете скрыть. Все, что находится ниже этого кода, будет доступно пользователю только после отправки сообщения и активации пароля, полученного в ответном SMS.

Пример работы

Посмотреть на пример работы смс:ключа можно здесь. В случае, если в настройках сервиса вы указали, что ресурс "для взрослых", результат будет несколько отличаться, как показано здесь.

Технология Flash

Несмотря на то, что мы не предоставляем отдельной версии смс:ключа для использования на сайтах, построенных целиком на технологии Flash, вы можете использовать приведенный ниже ActionScript-код для проверки паролей ключей:

var key : String = new String("идентификатор ключа");
var pair : String = new String("пользовательский пароль");
var loadVars : LoadVars = new LoadVars();
loadVars.onLoad = function(success : Boolean) {
    if(success && loadVars.toString() == "true") {
        // пароль подтвержден
    } else {
        // пароль не подтвержден
    }
}
loadVars.load("http://key.
smscoin.com/key/?s_key=" + key
    + "&s_pair=" + pair);

Обратите внимание: слова идентификатор ключа нужно заменить на идентификатор, присвоенный вашему смс:ключу , пользовательский пароль — на переданный пользователем пароль, а после комментарев пароль подтвержден и пароль не подтвержден должны идти соответствующие обработчики ситуаций — переход к закрытой части сайта или сообщение об ошибке (например, предложение ввести пароль повторно).

Модификации кода

Установка языка по умолчанию

По умолчанию все наши сервисы используют русский язык; в том случае, если часть Ваших пользователей не является русскоязычной, или Вы по каким-то другим причинам решили сменить используемый язык сервиса, просто измените адрес запроса в приведенном выше коде

с

http://key.smscoin.com/key/

на

http://key.smscoin.com/language/english/key/

(вместо english можно указать любой поддерживаемый язык).

Пример работы можно увидеть здесь.

Версия без оформления

Данная модификация предназначена для более тесной интеграции со структурой и дизайном Вашего ресурса. Если скрипту передавать в качестве параметра s_pure=1 (key.smscoin.com/key/?s_pure=1), то в результате работы выводится только актуальная HTML-разметка формы запроса; внешний вид формы, таким образом, легко видоизменить при помощи CSS. Пример работы скрипта находится здесь. CSS, используемую по умолчанию, можно скачать здесь.

Обратите внимание, что кодировкой по умолчанию для версии ключа без оформления является windows-1251. Задать кодировку можно при помощи параметра s_enc (например, ?s_enc=koi8-r).

<?php
// ****************** ВЕРХНЯЯ ЧАСТЬ ОФОРМЛЕНИЯ ******************
### SMS:Key v1.0.6 ###
$old_ua = @ini_set('user_agent', 'smscoin_key_1.0.6');
$key_id = <ID услуги смс:ключ>;
$response = @file("http://key.smscoin.com/key/?s_pure=1&s_key=".$key_id
."&s_pair=".urlencode(substr($_GET["s_pair"],0,10))
."&s_language=".urlencode(substr($_GET["s_language"],0,10))
."&s_ip=".$_SERVER["REMOTE_ADDR"]
."&s_url=".$_SERVER["SERVER_NAME"].htmlentities(urlencode($_SERVER["REQUEST_URI"])));
if ($response !== false) {
 if (count($response)>1 || $response[0] != 'true') {
  echo implode("", $response);
 } else{
// ****************** ЗАКРЫТАЯ КЛЮЧОМ ИНФОРМАЦИЯ ******************
 }
} else die('Не удалось запросить внешний сервер');
@ini_set('user_agent', $old_ua);
### SMS:Key end ###
// ****************** НИЖНЯЯ ЧАСТЬ ОФОРМЛЕНИЯ ******************
?>
 
Отличительными особенностями данной модификации скрипта являются:
  • использование параметра s_pure=1 (пример работы параметра можно увидеть здесь);
  • возможность задать кодировку через параметр s_enc (кодировкой по умолчанию является windows-1251);
  • возможность использовать оформление верхней и нижней части страницы;
  • возможность использования CSS для оформления внешнего вида формы (CSS, используемую по умолчанию, можно скачать здесь);
в случае некорректного кода доступа выполнение файла не завершается принудительно.
 
Если директива allow_url_fopen отключена:

Некоторые хостинги отключают возможность отправки GET-запроса удаленному скрипту при помощи функции file(). Специально для таких случаев существует альтернативный код ключа, доступный в этом архиве

Вывод своего интерфейса

Используя смс:ключ, вы можете не только видоизменять стандартную форму ввода, но и выводить полностью свою версию интерфейса. Для вывода формы ввода пароля замените строку die(implode("", $response)); на следующий код:

die('<form action="http://'.$_SERVER["SERVER_NAME"]
.$_SERVER["REQUEST_URI"].'" method="get">
<input name="s_pair" type="text" value="" />
<input type="submit" value="Открыть" /></form>');

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

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

http://key.smscoin.com/xml2/key/идентификатор ключа/

и в формате JSON (JavaScript) по адресу

http://key.smscoin.com/json/key/идентификатор ключа/

Приведенные адреса содержат полностью идентичную информацию, разнится только ее представление.

Данные содержат также информацию о номерах, на которые пользователи должны отправлять сообщения (поле number), и префиксах, необходимых для обработки сообщений нашей системой (поле prefix); в разных странах, соответственно, действуют разные номера и префиксы. Для того, чтобы сообщение было ассоциировано с Вашим сервисом, оно должно иметь вид

префикс идентификатор ключа

и быть отправлено на действующий в рамках страны номер, верный для выбранного Вами тарифа.

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

Более подробные инструкции по работе с тарифными сетками в форматах XML и JSON можно найти здесь.

Имеет смысл отметить, что все приведенные выше модификации совместимы между собой, т.е. вы можете использовать альтернативный код ключа, указав при этом кодировку и т.д.

Удаленное размещение обработчика

В стандартной версии смс:ключа всю работу по выдаче и проверке паролей выполняет наш сервер. Учитывая популярность услуги смс:ключ, мы создали более гибкую ее версию для тех наших пользователей, которые хорошо знакомы с программированием для WEB. Преимущества смс:ключа с удаленным размещением перед стандартным таковы:
- все пароли хранятся и обрабатываются на вашей стороне, что позволяет локально управлять сессиями пользователей;
- вы можете управлять как внешним видом, так и в определенных пределах принципом работы услуги;
- услуга максимально устойчива к разного рода атакам на наши сервера, перебоям работы сети и т. д.

Внимание: для использования этой версии ключа категорически необходимо понимание общих принципов работы скриптов, исполняемых на стороне сервера.

Подробнее об этой вариации использования смс:ключа можно узнать здесь.

Часто задаваемые вопросы

Невозможно выбрать страну, список стран пуст.

Проверьте файл .htaccess, вероятно, он содержит правила, обрезающие передаваемые скрипту параметры; также проверьте, что тариф, выбранный в настройках ключа, доступен по меньшей мере в одной стране. В частности, такая ошибка возникает, если в настройках выставлена опция "всегда использовать максимальный тариф", а в поле "не более" стоит $0.

Кодировка страницы неправильная, что делать?

Перед строкой die(implode(...)) в коде скрипта добавьте следующую строку:
header('Content-Type: text/html; charset=utf-8');

Вместо формы ввода пароля я вижу код PHP.

Убедитесь, что имя файла с кодом ключа оканчивается на .php. Также удостоверьтесь, что ваш хостинг поддерживает PHP (это можно узнать в службе поддержки хостинга).

Share |

Свяжитесь с нами

Техническая поддержка

E-mail: supportsmscoin.com

Общая поддержка

E-mail: helpsmscoin.com

Телефоны и факс >>