|
Практика » Малюємо в PHP - GD для початківців 17 листопада 2010 від admin |
|
Колись, описуючи тег hr я звернув увагу, що це єдиний тег в html, який хоч щось малює. І дійсно, в html вся графіка не малюється а вставляється за допомогою зовнішніх об'єктів. Колись давно, коли сервери були великими а процесори у них були слабенькими PHP теж не вмів малювати - адже він створювався для роботи з текстом. Проте сьогодні зросли як потужності серверів, так і потреби користувачів. Як приклад динамічно згенерованих зображень можу навести всім відому CAPTCHA. Або водяні знаки для картинок - так звані wotermark. Або динамічні юзербари для форумів. Або... а давайте напишемо невеликий скрипт, який нам послужить і уроком і прикладом одночасно? Спершу познайомимся з теоретичними знаннями. Припустимо у нас є якийсь сайт, на якому відвідувачі можуть реєструватися і вказувати свої контактні дані (телефон, e-mail, ICQ, тощо). І ми хочемо захистити наших відвідувачів від спамерів. Адже як спамери збирають свої бази? Спамер запускає спеціальний скрипт (парсер), який шукає на сайті всі комбінації символів, серед яких є знак @. Завдання парсера - знайти все, що потрапляє під формулу ***@***.*** (замість зірочок можуть бути любі символи) - це і буде адреса електронної пошти. Спочатку від подібних парсерів захищалися, замінюючи в електронній адресі символ @ на щось інше, наприклад (a) або (at) - можливо ви зустрічали подібні "замасковані" e-mail. Але розробники парсерів не сидять на місці - адже "пояснити" скрипту що ціль парсинга замість @ може містити (a) або (at) не дуже складно. Але якщо замість комбінації символів ***@***.*** буде зображення, то парсер не прийме його за адресу електронної пошти. Подивіться живий приклад у дії - спробуйте ввести google.com.ua і подивіться його дані. Зверніть увагу на значення e-mail. Це картинка, яку легко прочитає людина але яку пропустить програма-парсер. Давайте зробимо щось подібне собі. З теорією розібралися, із завданням визначилися - тепер саме час приступити до практики. Для початку нам доведеться переконатися що на сервері встановлена бібліотека GD - саме вона нам знадобиться для "малювання". Впишіть в який-небудь файл
Даний файл намалює нам все, що ми йому передамо методом GET, ось приклад:
Замість фрази hosting from webamator.net можете передавати потрібне значення - наприклад, як і було сказано спочатку, адреси електронної пошти, які будуть "заховані" від парсерів. Можете подивитися діючий приклад даного скрипта. |