ciao raggazzi, vi volevo chiede un aiuto. Io ho questo script e volevo modificarlo in modo da poter rilevare i banner reciproci, nel senso che chi mette il suo banner sul mio e sul suo non lo mettesse automaticamente il suo verrebbe cancellato o non inserito, mi date un aiuto grazie. Questo e il codice
PHP:
<?php
require_once('lib/master.php');
require_once('macro/start.php');
//if (!Login::get()->is) Request::redirect('/login.php?r=/banner.php/');
// Blocca ai non plus
//if (!Login::get()->user->plus) Request::redirect('/plus.php?msg=videochat');
// Carica la classe Banner
__autoload('Banner');
// Banner inviato?
if (Request::isAction('send')) {
// Errori
$e = new Error();
try {
// Validazione dei dati
$v = new Validator($_POST);
$v->check('link', 'Inserisci il link al tuo sito', Validator::NOT_EMPTY);
if (!$v->isOk()) throw new ValidatorException();
// Sistema link
if (
(!Strings::startsWith($_POST['link'], 'http://')) &&
(!Strings::startsWith($_POST['link'], 'https://'))
) {
$_POST['link'] = 'http://' . $_POST['link'];
}
// Upload
$u = new Upload($_FILES['banner']);
// Crea banner
$banner = Banner::create(); /* @var $banner Banner */
$banner->caricaBanner($u);
$banner->link = $_POST['link'];
$banner->note = $_POST['note'];
$banner->save();
// Vai all'ultima pagina
$go_to_last_page = true;
} catch (ValidatorException $x) {
$_POST_ERRORS = $v->getErrors();
$e->set('Dati inseriti non validi. Ricontrolla i campi evidenziati.');
FB::error($_POST_ERRORS);
FB::error($x);
} catch (UploadException $x) {
if ($x->getMessage() == 'Empty upload data') {
$e->set('Non hai scelto nessun banner da caricare.');
$_POST_ERRORS['banner'] = 'Carica il tuo banner cliccando il pulsante "Sfoglia".';
} else {
$e->set('Hai caricato un file troppo grande.');
$_POST_ERRORS['banner'] = 'Scegli una banner non più grande di '.Strings::humanizeFilesize(Config::$BANNER_UPLOAD_MAX).'.';
}
FB::error($x);
} catch (BannerSizeException $x) {
$e->set('Il banner deve essere in formato '.Config::$BANNER_SIZE_W.'x'.Config::$BANNER_SIZE_H.'.');
$_POST_ERRORS['banner'] = 'Il banner deve essere in formato '.Config::$BANNER_SIZE_W.'x'.Config::$BANNER_SIZE_H.'.';
FB::error($x);
} catch (ImageException $x) {
$e->set('L'immagina caricata non è un'immagine valida.');
$_POST_ERRORS['banner'] = 'Scegli una foto in formato JPG, PNG o GIF.';
FB::error($x);
} catch (DBException $x) {
FB::error($x);
$smarty->assign('banner_error', true);
}
// Passa gli errori a Smarty
$smarty->assign('done', $e->no());
$smarty->assign('error', $e->get());
}
// Pagina
$p = new Page();
$perpage = 30;
// Leggi i banner
try {
$banners = Banner::getAll();
$smarty->assign('banner_count', count($banners));
$p->setPageMax(ceil(count($banners) / $perpage));
if ($go_to_last_page) $p->set('page', ceil(count($banners) / $perpage));
$banner_page_filter = array();
for ($i = ($p->getPage() - 1) * $perpage; ($i < ($p->getPage() * $perpage)) && ($i < count($banners)); $i++)
$banner_page_filter[] = $banners[$i];
$smarty->assign('banners', $banner_page_filter);
$smarty->assign('pager', $p->createHtmlPager());
} catch (DBException $x) {
FB::error($x);
$smarty->assign('banner_read_error', true);
$banners = array();
}
// Passa a smarty i limiti dei banner
$smarty->assign('banner_dimensioni', Config::$BANNER_SIZE_W.'x'.Config::$BANNER_SIZE_H);
$smarty->assign('banner_size', Strings::humanizeFilesize(Config::$BANNER_UPLOAD_MAX));
// Stampa HTML
$smarty->display('banner.tpl');
require_once('macro/end.php');
?>