Для начала, мы включаем файл 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"];
}
}
?>