С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 17/03/05 в 14:31 |
bog писал: | так что как я уже несколько раз говорил, единственное что меня раздражает - это статья. Как програмер я ее считаю вредной и пропагандирующей неправильные методы написания скриптов |
Напиши статью как нужно правильно писать скрипты. Мне было бы очень интересно почитать. И если не трудно, объясни в чем у меня выражаются неправильные методы. Если не хочешь на форуме, то можешь скинуть на аську или мыло.
|
|
|
|
пенсионер
С нами с 07.11.02
Сообщения: 2612
Рейтинг: 1166
|
Добавлено: 17/03/05 в 15:43 |
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. если у тебя сервак со скриптом в дауне - ты автоматом ложишь всю систему так как у инклуде будет ждать ответа до конца.
все это решается парой строк которые делают локальный кеш и проверку на наличие обновлений или еще парой способов... смотря от того что именно ты хочешь сделать.
и таких косяков в статье уйма.
|
|
|
|
С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 17/03/05 в 21:33 |
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 или еще какой ? Так вот это все фигня - главное алгоритм и что бы программист через некоторое время просмотрем свои исходники мог в них разбираться.
Я предлагаю закончить нам наши прения, так как вы кроме пальцезагинательства и придирок основанных на ваших догадках и предположениях ничего конструктивного не говорите. Если я вас где-то оскорбил, то приношу свои извинения.
|
|
|
|
пенсионер
С нами с 07.11.02
Сообщения: 2612
Рейтинг: 1166
|
Добавлено: 17/03/05 в 22:58 |
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 не то что не нужно, а вообще не возможно. |
Про днк - наглый плагиат ) Яж говорил что у тебя изначальная установка вообще неправильная.
Во первых я говорил не только о 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/images/logo.gif');
?>
эфект тот же саммый а экономия ресурсов огромнейшая.
во вторых разговаривать в подобном тоне, когда тебе пытаются помочь - эт конечно забавно, но я предпочитаю другие развлечение.
Так что остальные ошибки, и способы их решения ищите сами.
|
|
|
|
С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 17/03/05 в 23:19 |
bog писал: | т.е. насколько понимаю у тебя в файле pokaz.php идет код |
Ты понимаешь немного не правильно . Для начала читаем хелп: "readfile - Читает файл и записывает его в стандартный вывод"; "header - отправляет "сырую" HTTP-шапку/header". Основная твоя ошибка в том, что ты не видел исходники и начал философствовать. Во время работы над своим скриптом я просмотрел исходники не одного чужого скрипта, в том числе и phpAdsNew. Код вида у меня используется в функции учета кликов для перенаправления на спонсора.
bog писал: | Про днк - наглый плагиат |
А я злопамятный .
bog писал: | во вторых разговаривать в подобном тоне, когда тебе пытаются помочь - эт конечно забавно, но я предпочитаю другие развлечение. |
Ты пытаешься не помочь, а при всех показать меня дураком, но так как у тебя это не получается, то в некрасовом положении ты оказываешься сам.
|
|
|
|
пенсионер
С нами с 07.11.02
Сообщения: 2612
Рейтинг: 1166
|
Добавлено: 17/03/05 в 23:32 |
Cibtor писал: | Для начала читаем хелп: |
раз ты до сих пор не понял, рекомендую начать не с хелпа по РНР,
а с пояснения к стандарту HTTP 1.0 непомню от какого года.
Cibtor писал: | Код вида у меня используется в функции учета кликов для перенаправления на спонсора. |
смотри внимательно что я писал выше. там код выглядит иначе, и показывает не страницу - а выдаст картинку.
Cibtor писал: |
Ты пытаешься не помочь, а при всех показать меня дураком, но так как у тебя это не получается, то в некрасовом положении ты оказываешься сам. |
Да я вроде ничего не пытаюсь ;)
Тыб вместо того чтоб подобные сообщения писать, давноб уже сходил, проверил мой код и понял в чем твоя ошибка. ;)
|
|
|
|
С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 18/03/05 в 01:23 |
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". Хотя это возможно фичи Апача .
Я повторюсь, но анализируя исходный код других скриптов, я ни разу не видел предложенный тобой код. Сам понимаешь, если бы так все было хорошо вывод банеров бы происходил так как ты предложил.
|
|
|
|
пенсионер
С нами с 07.11.02
Сообщения: 2612
Рейтинг: 1166
|
Добавлено: 18/03/05 в 01:53 |
Cibtor писал: | люки выражаются в выводе поврежденных банеров, и иногда получается остановка ротации(на страницы выводятся одни и теже банеры в тех же самых местах). А так же иногда перед банером выкидывает текст:
|
х.з. у меня нигде не глючило
так что надо или дальше разбирать скрипт, или с хедерами (типа кешконтрол) поиграться, или с апачем.
Cibtor писал: |
Я повторюсь, но анализируя исходный код других скриптов, я ни разу не видел предложенный тобой код. Сам понимаешь, если бы так все было хорошо вывод банеров бы происходил так как ты предложил. |
публичные скрипты обычно пишут так, чтоб работало максимально просто и железобетонно на любой системе. Т.е. с расчетом на полных ламеров которые в лучшем случае знают что такое фтп и чмод и не способны в случае чего самостоятельно настроить систему. Но это не значит что используемые ими алгоритмы оптимальные. Для конкретной задачи всегда найдется более простая альтернатива.
|
|
|
|
С нами с 07.06.00
Сообщения: 3516
Рейтинг: 1802
|
Добавлено: 18/03/05 в 04:21 |
МЕГАЛОЛ!
bog: Вспомни пословицу "Кесарю -- кесарево, а слесарю -- слесарево" ... и успокойся. Непомню кого-то там "учить -- только портить" ;)
Cibtor: > Ты пытаешься не помочь, а при всех показать меня дураком, но так как у тебя это не получается, то в некрасовом положении ты оказываешься сам.
А чего ты хотел? Восторгов? Нефиг было выносить сырой проект на публичное обсуждение. А если вынес -- будь благодарен за правильную критику. По обсуждению вижу, что с самолюбием у тебя проблемы...
Cibtor: > Покупай - не жми бабки. Проведешь анализ и тогда у нас будет аргументированный разговор(исходники более-менее откометированы на русском).
Тестер должен купить софт... Это вообще МегаПерл
|
|
|
|
С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 18/03/05 в 15:35 |
bog писал: | публичные скрипты обычно пишут так, чтоб работало максимально просто и железобетонно на любой системе |
Популярный phpAdsNew вроде не относиться к простой системе, но у него код примерно похожий на мой.
sAx писал: | Вспомни пословицу "Кесарю -- кесарево, а слесарю -- слесарево" |
Из этой серии: "Титаник построили профессионалы, а любители - Ковчег".
sAx писал: | будь благодарен за правильную критику |
Я всегда с благодарностью воспринимаю конструктивную критику, а не когда она говориться с издевкой.
sAx писал: | Тестер должен купить софт |
Тестеров я приглашал больше месяца назад. bog - не тестер, а критик . Критики себе всегда билеты сами покупают в театр.
|
|
|
|