Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: [ Обсуждение статьи ] Написание системы ротации баннеров
цитата
17/03/05 в 14:31
 Cibtor
bog писал:
так что как я уже несколько раз говорил, единственное что меня раздражает - это статья. Как програмер я ее считаю вредной и пропагандирующей неправильные методы написания скриптов

Напиши статью как нужно правильно писать скрипты. Мне было бы очень интересно почитать. И если не трудно, объясни в чем у меня выражаются неправильные методы. Если не хочешь на форуме, то можешь скинуть на аську или мыло.
цитата
17/03/05 в 15:43
 bog
Cibtor писал:
Напиши статью как нужно правильно писать скрипты. Мне было бы очень интересно почитать. И если не трудно, объясни в чем у меня выражаются неправильные методы. Если не хочешь на форуме, то можешь скинуть на аську или мыло.

не, статью писать об этом не буду.
Хоть я и занимаюсь програмированием уже 15лет, но для меня это всего лишь хобби, и я не считаю себя профи. Есть грамотная литература об общих принципах програмирования, оптимизации процессов, и tips'n'tricks для конкретных языков. Вот ее и стоит почитать. Также настоятельно рекомендую посещать форумы и репозитарии на зенде и рнр.нет. Там можно встретить отличные оригинальные идеи не говоря уже о хорошем стиле програмирования.

Что же до твоего примера, 2 мелкие ошибки уже указывалось... но у тебя изначально пошли неправильные установки:

Cibtor писал:
И если не трудно, объясни в чем у меня выражаются неправильные методы.


Cibtor писал:

$size = getimagesize ($url_baner);
switch ($size[2])
{
case 1:
header ("Content-type: image/gif");
break;
case 2:
header ("Content-type: image/jpeg");
break;
}
@readfile ($url_baner);

заменяется на
header('HTTP/1.0 302 Found');
header ('Location: $url_baner');
при этом у тебя еще и решается проблема с кешированием файлов.
так как при твоем варианте скрипт бы каждый раз полностью прокачивал весь файл банера.
а так - во первых сервер его кеширует при частых обращениях, во вторых клиент его будет стягивать полностью только если он изменится.

Cibtor писал:
включение скрипта показа с хостинга где установлена система, через include

1. include офигенная потенциальная дыра в секурности, на крайняк есть file().
2. лишняя нагрузка на канал и сервер так как у тебя опять прокачивается целиком банер.
3. если у тебя сервак со скриптом в дауне - ты автоматом ложишь всю систему так как у инклуде будет ждать ответа до конца.

все это решается парой строк которые делают локальный кеш и проверку на наличие обновлений или еще парой способов... смотря от того что именно ты хочешь сделать.

и таких косяков в статье уйма.
цитата
17/03/05 в 21:33
 Cibtor
bog писал:
@readfile ($url_baner);
заменяется на
header('HTTP/1.0 302 Found');
header ('Location: $url_baner');

Уважаемый, а вы разницу между между readfile и header ('Location: ') улавливаете ? Я начинаю сомневаться уже в ваших ДНК.
В приведеннои мною коде показа банера (уточняю: это код который включается в текст страницы между тегами <body></body>)
Код:
< a href="http://host.com/click.php?g=grupa1" target=_blank >
<img src="http://host.com/pokaz.php?g=grupa1" border=0 >

использовать header не то что не нужно, а вообще не возможно.
bog писал:
1. include офигенная потенциальная дыра в секурности, на крайняк есть file().

Какая это может быть дыра, если это используется в своей странице, на своем хостинге, для своего скрипта ? При этом учтите, что параметры передаваемые срипту я проверяю всегда.
bog писал:
2. лишняя нагрузка на канал и сервер так как у тебя опять прокачивается целиком банер.

Если вы внимательно читали, то вы надеюсь обратили внимания на слова " через включение скрипта показа с хостинга где установлена система, через include". Прочитаете еще раз внимательно и попытайтесь найти, где здесь написанно про вывод банера или чтение файла. С помощью include я запускаю скрипт, который генерирует и включает в страницу html код вывода банера, который занимает с десяток байтов.
Кстати, вот такой вот еще нюанс:
bog писал:
1. броузеру пофиг на хедер можно всегда указывать джпег - и гифы все равно будут нормально показываться

Я надеюсь, что вы согдасны что над phpAdsNew работают не глупые люди, так вот они не брезгую выводить заголовок формата банера перед выводом самого банера.
bog писал:
не говоря уже о хорошем стиле програмирования

А что вы собственно имеете ввиду говоря о стиле програмирования ? Болгарский стиль, MicroSoft, Borland или еще какой ? Так вот это все фигня - главное алгоритм и что бы программист через некоторое время просмотрем свои исходники мог в них разбираться.
Я предлагаю закончить нам наши прения, так как вы кроме пальцезагинательства и придирок основанных на ваших догадках и предположениях ничего конструктивного не говорите. Если я вас где-то оскорбил, то приношу свои извинения.
цитата
17/03/05 в 22:58
 bog
Cibtor писал:
Уважаемый, а вы разницу между между readfile и header ('Location: ') улавливаете ? Я начинаю сомневаться уже в ваших ДНК.
В приведеннои мною коде показа банера (уточняю: это код который включается в текст страницы между тегами <body></body>)
Код:
< a href="http://host.com/click.php?g=grupa1" target=_blank >
<img src="http://host.com/pokaz.php?g=grupa1" border=0 >

использовать header не то что не нужно, а вообще не возможно.

Про днк - наглый плагиат icon_smile.gif) Яж говорил что у тебя изначальная установка вообще неправильная.

Во первых я говорил не только о readfile а обо всей группе команд.
т.е. насколько понимаю у тебя в файле pokaz.php идет код
<?
$size = getimagesize ($url_baner);
switch ($size[2])
{
case 1:
header ("Content-type: image/gif");
break;
case 2:
header ("Content-type: image/jpeg");
break;
}
@readfile ($url_baner);
?>
вот его целиком и полностью можно смело выкидывать нафиг и написать к примеру
<?
header('HTTP/1.0 302 Found');
header ('Location: https://www.master-x.com/template_m/images/logo.gif');
?>
эфект тот же саммый а экономия ресурсов огромнейшая.

во вторых разговаривать в подобном тоне, когда тебе пытаются помочь - эт конечно забавно, но я предпочитаю другие развлечение.
Так что остальные ошибки, и способы их решения ищите сами.
цитата
17/03/05 в 23:19
 Cibtor
bog писал:
т.е. насколько понимаю у тебя в файле pokaz.php идет код

Ты понимаешь немного не правильно icon_smile.gif. Для начала читаем хелп: "readfile - Читает файл и записывает его в стандартный вывод"; "header - отправляет "сырую" HTTP-шапку/header". Основная твоя ошибка в том, что ты не видел исходники и начал философствовать. Во время работы над своим скриптом я просмотрел исходники не одного чужого скрипта, в том числе и phpAdsNew. Код вида Код:
<?
header('HTTP/1.0 302 Found');
header ('Location: https://www.master-x.com/');
?>
у меня используется в функции учета кликов для перенаправления на спонсора.
bog писал:
Про днк - наглый плагиат
А я злопамятный icon_smile.gif.
bog писал:
во вторых разговаривать в подобном тоне, когда тебе пытаются помочь - эт конечно забавно, но я предпочитаю другие развлечение.
Ты пытаешься не помочь, а при всех показать меня дураком, но так как у тебя это не получается, то в некрасовом положении ты оказываешься сам.
цитата
17/03/05 в 23:32
 bog
Cibtor писал:
Для начала читаем хелп:

раз ты до сих пор не понял, рекомендую начать не с хелпа по РНР,
а с пояснения к стандарту HTTP 1.0 непомню от какого года.

Cibtor писал:
Код вида Код:
<?
header('HTTP/1.0 302 Found');
header ('Location: https://www.master-x.com/');
?>
у меня используется в функции учета кликов для перенаправления на спонсора.

смотри внимательно что я писал выше. там код выглядит иначе, и показывает не страницу - а выдаст картинку.

Cibtor писал:

Ты пытаешься не помочь, а при всех показать меня дураком, но так как у тебя это не получается, то в некрасовом положении ты оказываешься сам.

Да я вроде ничего не пытаюсь ;)
Тыб вместо того чтоб подобные сообщения писать, давноб уже сходил, проверил мой код и понял в чем твоя ошибка. ;)
цитата
18/03/05 в 01:23
 Cibtor
bog писал:
смотри внимательно что я писал выше. там код выглядит иначе, и показывает не страницу - а выдаст картинку

Публично признаюсь - да работает. Работает в ИЕ, Опера и глючит в Mozilla FireFox 1.0.1 (тестирование проводил выводя одну и туже страницу паралельно в трех браузерах). Глюки выражаются в выводе поврежденных банеров, и иногда получается остановка ротации(на страницы выводятся одни и теже банеры в тех же самых местах). А так же иногда перед банером выкидывает текст:"0 HTTP/1.1 200 OK Date: Thu, 17 Mar 2005 22:17:27 GMT Server: Apache/2.0.42 (Win32) X-Powered-By: PHP/4.3.3 Keep-Alive: timeout=15, max=80 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=ISO-8859-1 14f". Хотя это возможно фичи Апача icon_smile.gif.
Я повторюсь, но анализируя исходный код других скриптов, я ни разу не видел предложенный тобой код. Сам понимаешь, если бы так все было хорошо вывод банеров бы происходил так как ты предложил.
цитата
18/03/05 в 01:53
 bog
Cibtor писал:
люки выражаются в выводе поврежденных банеров, и иногда получается остановка ротации(на страницы выводятся одни и теже банеры в тех же самых местах). А так же иногда перед банером выкидывает текст:

х.з. у меня нигде не глючило icon_smile.gif
так что надо или дальше разбирать скрипт, или с хедерами (типа кешконтрол) поиграться, или с апачем.

Cibtor писал:

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

публичные скрипты обычно пишут так, чтоб работало максимально просто и железобетонно на любой системе. Т.е. с расчетом на полных ламеров которые в лучшем случае знают что такое фтп и чмод и не способны в случае чего самостоятельно настроить систему. Но это не значит что используемые ими алгоритмы оптимальные. Для конкретной задачи всегда найдется более простая альтернатива.
цитата
18/03/05 в 04:21
 sAx
icon_lol.gif
МЕГАЛОЛ!
icon_lol.gif

bog: Вспомни пословицу "Кесарю -- кесарево, а слесарю -- слесарево" ... и успокойся. Непомню кого-то там "учить -- только портить" ;)

Cibtor: > Ты пытаешься не помочь, а при всех показать меня дураком, но так как у тебя это не получается, то в некрасовом положении ты оказываешься сам.
А чего ты хотел? Восторгов? Нефиг было выносить сырой проект на публичное обсуждение. А если вынес -- будь благодарен за правильную критику. По обсуждению вижу, что с самолюбием у тебя проблемы...

Cibtor: > Покупай - не жми бабки. Проведешь анализ и тогда у нас будет аргументированный разговор(исходники более-менее откометированы на русском).
Тестер должен купить софт... Это вообще МегаПерл icon_smile.gif
цитата
18/03/05 в 15:35
 Cibtor
bog писал:
публичные скрипты обычно пишут так, чтоб работало максимально просто и железобетонно на любой системе

Популярный phpAdsNew вроде не относиться к простой системе, но у него код примерно похожий на мой.
sAx писал:
Вспомни пословицу "Кесарю -- кесарево, а слесарю -- слесарево"
Из этой серии: "Титаник построили профессионалы, а любители - Ковчег".
sAx писал:
будь благодарен за правильную критику
Я всегда с благодарностью воспринимаю конструктивную критику, а не когда она говориться с издевкой.
sAx писал:
Тестер должен купить софт
Тестеров я приглашал больше месяца назад. bog - не тестер, а критик icon_smile.gif. Критики себе всегда билеты сами покупают в театр.
Стр. « первая   <  1, 2


Эта страница в полной версии