AJAX. JSON. ReCAPTCHA.
JSON
JSON (англ. JavaScript Object Notation, представление объектов JavaScript) - текстовый формат обмена данными, основанный на JavaScript. Как и многие другие текстовые форматы, JSON легко читается людьми. Формат JSON был разработан Дугласом Крокфордом.
![](img/json.jpg)
JSON - текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C-подобных языков, таких как C, C++, C#, Java, JavaScript, Perl, Python и многих других. Эти свойства делают JSON идеальным языком обмена данными.
Наиболее частое распространенное использование JSON - пересылка данных от сервера к браузеру. Обычно данные JSON доставляются с помощью AJAX, который позволяет обмениваться данными браузеру и серверу без необходимости перезагружать страницу.
Поскольку формат JSON является подмножеством синтаксиса языка JavaScript, то он может быть быстро десериализован встроенной функцией eval(). Кроме того, возможна вставка вполне работоспособных JavaScript-функций. В языке PHP, начиная с версии 5.2.0, поддержка JSON включена в ядро в виде функций json_decode() и json_encode(), которые сами преобразуют типы данных JSON в соответствующие типы PHP и наоборот.
JSON основан на двух структурах данных:
- Коллекция пар ключ/значение. В разных языках, эта концепция реализована как объект, запись, структура, словарь, хэш, именованный список или ассоциативный массив.
- Упорядоченный список значений. В большинстве языков это реализовано как массив, вектор, список или последовательность.
В нотации JSON это выглядит так:
Объект - неупорядоченный набор пар ключ/значение. Объект начинается с { (открывающей фигурной скобки) и заканчивается } (закрывающей фигурной скобкой). Каждое имя сопровождается : (двоеточием), пары ключ/значение разделяются , (запятой).
Ключ описывается строкой
![](img/object.gif)
Массив - упорядоченная коллекция значений. Массив начинается с [ (открывающей квадратной скобки) и заканчивается ] (закрывающей квадратной скобкой). Значения разделены , (запятой).
![](img/array.gif)
Значение может быть строкой в двойных кавычках, числом, true, false, null, объектом или массивом. Эти структуры могут быть вложенными.
![](img/value.gif)
Строка - это упорядоченное множество из нуля или более символов Unicode, заключенная в двойные кавычки, используя \ (обратную косую черту) в качестве символа экранирования. Символ представляется как односимвольная строка. Похожий синтаксис используется в C и Java.
![](img/string.gif)
Число представляется так же, как в C или Java, кроме того, что используется только десятичная система счисления.
![](img/number.gif)
{
"firstName": "Иван",
"lastName": "Иванов",
"age" : 36,
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": "101101"
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
JSON.parse()
Парсинг JSON, т.е. перевод строки JSON в объект JavaScript
JSON.stringify()
Перевод объекта JavaScript в строку JSON. Данный метод осуществляет действие обратное методу JSON.parse().
Пример 1. Преобразование объекта в JSON
Пример 2. Преобразование JSON в объект
Пример 3. Обмен данными между сервером и клиентом
json_encode
Возвращает строку, содержащую JSON-представление.
json_decode
Принимает закодированную в JSON строку и преобразует ее в переменную PHP.
ReCAPTCHA
![](img/recaptcha.gif)
reCAPTCHA
— система, разработанная для защиты веб-сайтов от интернет-ботов и одновременной помощи в оцифровке текстов книг.
Для начала необходимо добавить reCAPTCHA API key.
Жмём на кнопку My reCAPTCHA
![](img/re1.png)
Далее процесс авторизации. Необходимо иметь почтовый ящик от Google
![](img/re2.png)
После чего происходит перенаправление на панель администрирования. Панель администрирования отображает список используемых "каптч", а так же находится форма для созданий новой "каптчи". В данном примере(в списке сверху) уже есть reCAPTCHA, которая используется.
![](img/re3.png)
![](img/re4.png)
Создадим новую "каптчу". Заполняем поля формы. Название можно задать любое. И выберем вторую версию "каптчи".
![](img/re5.png)
Теперь пожалуй самое главное. В писке Домены необходимо указать для доменое имя сайта на котором будет использоваться создаваемая "каптча"(либо список доменов).
localhost
- это своего рода тоже доменое имя и его разрешено использовать, как в принципе и другие имена, которыми Вы привыкли назвать ваши проекты в OpenServer. Самое главное чтобы имя не нарушало правило именовая доменов.
![](img/re6.png)
Ставим галочку в поле согласия с условиями использования reCAPTCHA. И жмём на регистрацию.
В результате нас перенаправять на страницу с информацией о вновь созданой "каптчи". Данная страница содержит статистику использования "каптчи" и информацию по добавлению её на Ваш сайт.
![](img/re7.png)
![](img/re8.png)