и. Нескладно зробити просто підрахунок показів, так як завдання це тривіальна - досить зчитати в масив базу даних відвідувань, і потім збільшити на 1 осередок масиву з індексом, відповідним змінної id. Це наш ідентифікатор. Але у нас більш складне завдання - організувати можливість перегляду всієї статистики в подальшому і запам'ятовувати час останнього показу банера. Значить, треба записувати в базу і час, і адреса сайту, з якого викликається банер. Адреса ми будемо запам'ятовувати тільки для того, що б у?? Ально можна було дізнатися статистику показів, а в самій процедурі підрахунку він не бере участь.
Отже, почнемо. Наш скрипт, насамперед, повинен перевірити на правильність отриману змінну id. Якщо вона не більше встановленого значення і не менше нуля, то все нормально, інакше присвоюємо змінної id нуль, або виводимо повідомлення про помилку. Значення змінної id з індексом нуль потрібно спеціально зарезервувати для таких ось помилок, і завжди буде ясно - хтось розмістив не правильний код або зробив у ньому помилку при наборі. Але, якщо ж все нормально, а так найчастіше і буде, скрипт повинен вважати в пам'ять файл з базою даних:
$ adds=«url.txt»;
$ txt=file ($ adds);
Вся інформація виявляється в масиві з ім'ям $ txt. Ідентифікатор вказує на той індекс, де в масиві розташовані дані сайту, з якого викликаний банер. Звернутися до цих даних дуже просто:
$ str=trim (str_replace («», «», $ txt [$ id]));
Добре б перевірити, чи є така обліковий запис, але це за бажанням. Далі треба розкласти інформацію на три складових - адреса, час останнього доступу і кількість показів. Ось як це найпростіше зробити:
list ($ add, $ time, $ counter)=split («^», $ str);
Ось тут нам і знадобився наш роздільник. Все, вся інформація витягнута, тепер її треба оновити та записати назад. Власне, потрібно просто збільшити змінну $ counter на одиницю, вважати поточний час і привласнити змінної $ time його значення. Якщо з лічильником все ясно, то час вимагає пояснення. Краще і простіше всього зчитувати його в Unix-овськом форматі. Отримане значення буде дорівнює кількості секунд, що пройшов після 1 січня 1970 року. Ну, так вже прийнято, хоч і трохи дивно для простого користувача. Але, нам важливо, що це число секунд дуже легко перетвориться в подальшому в конкретні дати, а зберігати його дуже просто, так як це, по суті, просто велике число. Його отримати можна так:
$ time=time (void);
$ counter + +;
Заодно збільшили показання лічильника. Все - тепер залишилося тільки записати всю інформацію назад. Підсумовуємо рядок, і заносимо отримане значення в потрібний осередок масиву:
$ txt [$ id]=$ add. «^». $ time. «^». $ counter. « »;
І тут теж не забуваємо про наш роздільник і про переклад рядка в кінці для правильного зчитування надалі. Залишилося тільки записати весь масив у файл з базою даних, але для цього його треба спочатку об'єднати в один рядок:
$ str=implode («», $ txt);
$ fp=fopen ($ adds, «w»); ($ Fp) {$ fw=fwrite ($ fp, ...