—»     —»   Разработка рекламного трекера на PHP: вносим данные о клиентах и баннерных объявлениях
  Раздел: Реклама, Скрипты и коды   Нет комментариев  

Разработка рекламного трекера на PHP: вносим данные о клиентах и баннерных объявлениях



В нашем последнем уроке мы рассказывали вам о создании списка баннерных объявлений и данных о клиенте. Сегодня мы расскажем вам о том, как протестировать форму, которая позволяет администраторам вводить данные о баннерах.

Разработка рекламного трекера на PHP: вносим данные о клиентах и баннерных объявлениях

Для начала, мы включаем файл class_ads.php и подвергаем обработке класс ads:

<?php
require_once("class.ads.php");

// instantiate ads class
$oAds = new ads;

Далее, мы задаем значение переменной $id используя функцию setID в классе ads:

// check for id
if ($id) {

// assign unique id
$oAds->setId($id);
}

Если форма вывела данные, мы задаем значения к каждой переменной в соответствии с опубликованными данными в полях формы:

if ($_POST) { // if form was posted

// assign page variables
$iClientId = $_POST["clientid"];
$sTitle = $_POST["title"];
$sUrl = $_POST["url"];
$sPath = "";
$sClient = $_POST["client"];
$sContact = $_POST["contact"];
$sEmail = $_POST["email"];
$sPhone = $_POST["phone"];

За счет отдельной функции validInput мы также можем убедиться в том, что длина заголовка объявления не длиннее 200 символов:

// validate ad title
if (!validInput($sTitle, 1, 200)) {

catchErr("Enter a valid ad title");
$FORMOK = false;
}

За счет отдельной функции validURL мы также можем убедиться в том, что URL представлен в соответствующем формате:

// validate ad url
if (!validUrl($sUrl)) {

catchErr("Enter a advertisement URL");
$FORMOK = false;
}

За счет отдельной функции validFile мы также можем убедиться в том, что файл был загружен успешно посредством функции is_uploaded_file, и имеет соответствующее имя и расширение. Если файл не имеет соответствующего имени, мы можем задать имя за счет комбинации различных чисел и текущей даты:

// check for uploaded file
if (is_uploaded_file($_FILES["banner"]["tmp_name"])) {

// get file extension
if (!$sExt = validFile("banner")) {

$FORMOK = false;

} else {

// generate random unique file name
$iRand = rand(100001, 999999);
$sImgName = md5(strtotime(date("Y-m-d H:i:s")).$iRand).".".$sExt;
$sPath = SITE_URL."/_img/_banners/".$sImgName;
}

} else { // file not uploaded

// if the operation is add catch an error
if (!strcmp("add", $op)) {

catchErr("Upload a banner image file");
$FORMOK = false;
}
}

Как только данные о файле будут подтверждены, мы также можем подтвердить информацию о клиенте посредством тех же функций.

// validate client id
if ($iClientId < 1 && !strcmp("add", $op)) {

// validate client name
if (!validInput($_POST["client"], 1, 100)) {

catchErr("Enter a client name");
$FORMOK = false;
}

// validate client contact
if (!validInput($sContact, 1, 100)) {

catchErr("Enter a client contact name");
$FORMOK = false;
}

// validate client contact email
if (!validEmail($sEmail)) {

catchErr("Enter a client contact email address");
$FORMOK = false;
}

// validate client contact phone
if (!validInput($sPhone, 1, 20)) {

catchErr("Enter a client contact phone number");
$FORMOK = false;
}

} elseif ($iClientId < 1 && !strcmp("edit", $op)) {

catchErr("Select a client");
$FORMOK = false;
}

Как только данные о клиенте будут подтверждены, мы также можем задать данные к элементам в массиве:

if ($FORMOK) { // form validated ok

// assign item values
$aArgs["Client Id"] = $iClientId;
$aArgs["Title"] = $sTitle;
$aArgs["URL"] = $sUrl;
$aArgs["Path"] = $sPath;
$aArgs["Client"]["Name"] = $sClient;
$aArgs["Client"]["Contact"] = $sContact;
$aArgs["Client"]["Email"] = $sEmail;
$aArgs["Client"]["Phone"] = $sPhone;

Если строка запроса подкреплена к полю ввода, указывающему на то, какие данные должны быть отредактированы, то страница вызывает функцию editAd и заменяет ее данными об объявлении в таблице ad:

// check operation type
if (!strcmp("edit", $op)) {

// try edit ad
$FORMOK = $oAds->editAd($aArgs);

Если строка запроса подкреплена к полю ввода, указывающему на то, какие данные должны быть добавлены, то страница вызывает функцию addAd и заменяет ее данными об объявлении в таблице ad:

} elseif (!strcmp("add", $op)) {

// try add ad
$FORMOK = $oAds->addAd($aArgs);
}

В других случаях, код будет копировать изображения баннерных объявлений в директорию banners, и перенаправлять пользователя на страницу перечня:

// redirect if successful
if ($FORMOK) {

// copy file
copy($_FILES["banner"]["tmp_name"], "../../_img/_banners/".$sImgName);

// redirect if successful
header("Location: index.php");
}
}

Если форма не опубликовала данные, то форма запросит данные о выбранном объявлении посредством функции getAd, и задаст значения полям формы:

} else {

// initialize page variables
if (!strcmp("edit", $op)) {

// get ad
$aAd = $oAds->getAd();

// initialize page variables
$iClientId = $aAd["Client Id"];
$sTitle = $aAd["Title"];
$sUrl = $aAd["URL"];
$sClient = $aAd["Client"]["Name"];
$sContact = $aAd["Client"]["Contact"];
$sEmail = $aAd["Client"]["Email"];
$sPhone = $aAd["Client"]["Phone"];
}
}
?>
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Ключевые тэги: PHP, реклама, MySQL
Опубликовал Design FactoRy   Прочитано (раз): 6174   |   Нет комментариев
Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Назовите месяц November по-русски
Подтверждение кода безопасности :

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


Популярные публикации


















Свежие шаблоны сайтов каждый день
С миру по нитке
«    Сентябрь 2017    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930