Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на PHP - вопросы и ответы.


Служба Рассылок Subscribe.Ru

Рассылка сайта РНР для всех!

Выпуск номер 31

Здравствуйте

Вы получили этот выпуск рассылки, так как являетесь подписчиком рассылок сайта http://subscribe.ru Рассылка выходит еженедельно, и предлагает Вам авторские материалы на тему программирования на скриптовом языке гипертекстового препроцессора РНР. Кроме того - есть система вопросов и ответов, обмен ссылками и баннерами, раздел Ваши письма и многое другое.

заказать книги по РНР (только Беларусь)

Вам доступен форум рассылки по адресу:
www.adelavida.com.ua/MenuRelative/Forums.php?PrimIndexSelected=Scripts&
ForumSelected=PHP%26MySQL&Submit=Ok&Preference=ShowAll&StartVsQuest=Yes

Все вопросы и ответы из форума будут публиковаться в рассылке!


Теория чата

Сегодня я хочу сказать несколько слов об очень большой проблеме. На самом деле этому вопросу можно посвятить целую книгу, а не одну статью, так что я коснусь вопроса очень поверхностно, и основная моя цель - натолкнуть Вас на собственные исследования в этой области. Надо сказать, что это не так уж и сложно, как кажется на первый взгляд, и при определенных обстоятельствах есть возможность сделать свой собственный чат, пользуясь только РНР. А эта статья - всего лишь маленький намек на те проблемы, и методы их решения, которые могут встретиться у Вас на пути.

Итак, чат. Очень многие вебмастера мечтают сделать для своих посетителей хороший чат, но они даже не представляют всю сложность этой задачи. Как правило, такой вебмастер идет проторенным путем, ищет в Интернете исходники чатов и размещает их у себя на сервере. Непременное условие - обязательное наличие на сервере поддержки одного из языков программирования. Как правило, чаты предпочитают делать на CGI (например, Perl), и такие чаты получаются достаточно быстрыми и надежными. Но как быть тем, кто по ряду причин не может себе позволить запускать скрипты CGI на своем сервере? Или не может до конца освоить один из языков программирования для CGI? Конечно, совсем без усилий тут не обойтись, ведь чат - дело серьезное, и требует к себе внимательного отношения. Нет, вообще-то можно пойти по и по легкому пути. Например - открыть свой чат на другом бесплатном сервере. А что - преимуществ масса, ведь вся настройка сводится к выбору цвета, расположения фреймов, другим мелким деталям... Но есть как всегда и отрицательные стороны такого решения. никто за просто так Вам не даст пользоваться своим чатом - придется рассчитываться тем, что на Вашем чате будут показываться неизвестно чьи баннеры. Да и прикрыть могут в любой момент. Только реально это единственный способ сделать чат тем, у кого хостинг не поддерживает CGI.

Однако, как всегда есть способ лучше! Если Вы располагаете поддержкой сервера CGI или РНР, Вы можете легко найти в Интернете массу хороших и не очень скриптов чатов, и разместить их у себя на сервере, и тогда Вы уже ни от кого не будете зависеть. Но есть недостатки и у этого способа. Дело в том, что исходники таких чатов всегда общедоступны, и у них почти всегда обнаруживается какая-нибудь уязвимость, позволяющая злоумышленникам взламывать Ваш любимый чат. Не всегда такие взломы приносят существенный вред, но все равно не приятно, что кто-то роется там, где доступа никому нет. Итак, если Вы готовы воспользоваться уже написанным кем-то кодом чата, будьте готовы к двум проблемам - предварительной настройке чата (это тоже не так просто иногда), и к возможности взлома чата недоброжелателями через стандартную ошибку, коими часто просто изобилуют бесплатные скрипты.

Если эти вопросы очень важны для Вас, придется идти по очень сложному пути - пути создания своего собственного чата. Для основного языка программирования давайте выберем РНР, так как его поддержка наиболее часто встречается на серверах в сети, а также поставим себе ряд условий - никаких баз данных (их ведь несколько, и заранее не известно, что за база на сервере), и работоспособность на версии РНР3. Это еще больше усложняет задачу, так как придется отказаться от сессий, поддержка которых включена только в 4 версию РНР. Но - именно это дает нам возможность важной для нас сейчас совместимости, уж на 3 версии работают сейчас все сервера в сети. Итак, я повторюсь - основная наша задача есть работа написанного чата на РНР версии 3 без баз данных.

Что можно сделать исходя из поставленных условий? Очень многое на самом деле. Во первых, нам придется решать проблемы авторизации пользователей в чате. Это - одна из самых больших проблем, и не только в чатах, но и во всем мире. Предложенных решений масса, но у каждого из них есть очень большой недостаток - знание того как все шифруется неизбежно приводит к появлению алгоритмов расшифровки. Значит, нам придется делать свой собственный алгоритм шифрования паролей пользователей с условием невозможности расшифровки за разумный промежуток времени (надеюсь, NASA или ФБР не будут ломать Ваш чат). Кроме того, неплохо бы было сделать так, чтобы даже при краже файла с паролями их невозможно было бы расшифровать. В моем опыте есть случай, когда ошибка одного скрипта привела к появлению возможности доступа к исходникам на сайте, и - к краже паролей. Правда, тут есть и большой минус. Если человек забыл пароль, его нельзя уже восстановить, так как пароль нигде не хранится незашифрованным. В этом случае можно удалять регистрационную запись пользователя и предоставить ему возможность повторно зарегистрироваться.

Возможно, покажется странным, что пароли будут шифроваться до такого состояния, что их нельзя (мы уже условились, что нельзя - это значит нельзя за разумный промежуток времени, а вообще-то можно все, только долго...) даже расшифровать. Как же эти пароли будут проверяться на соответствие с хранимым в базе зашифрованным паролем? Все очень просто и элегантно. Я опишу на примере Windosw2000, где реализован примерно следующий алгоритм. При регистрации пользователь вводит свой пароль, он обрабатывается специальной функцией необратимого шифрования и результат заносится в базу паролей вместе с учетными записями (имя пользователя, описание и т.д.). Когда пользователь входит в систему в следующий раз, Windows опять шифрует пароль своей стандартной функцией и сравнивает результат с тем, что хранится у нее в базе данных паролей. Если результат шифрования введенного пароля и хранящегося в базе есть идентичные строки, пользователь авторизован, если нет - ошибка ввода пароля. Таким образом достигается сильная конфиденциальность, так как пароль не хранится в открытом виде, а хранится уникальный идентификатор строки, соответствующей паролю. И даже есть база данных с хранимыми паролями будет украдена, только от этого похитителю будет мало, ведь открытых паролей там нет, только зашифрованные. А обратной расшифровке такие идентификаторы просто не поддаются, уж так устроена функция шифрования.

Правда, есть подводный камень и тут (как всегда). Дело в том, что простые пароли очень легко восстановить методом перебора. Пишется несложная программа, она перебирает различные варианты (комбинации символов пароля) и сравнивает результат шифрования с тем, что хранится в украденной базе. Таким образом очень легко взломать нестойкий пароль. О стойкости пароля сказано уже очень много, но вкратце смысл таков - ни в коем случае нельзя применять для пароля смысловое сочетание букв. Другими словами - пароль должен казаться полной бессмыслицей постороннему человеку. Такой пароль гораздо труднее подобрать методом прямого перебора и практически невозможно - перебором слов по специальным словарям. Очень хорошо, если в пароле присутствуют знаки препинания, чередуются маленькие и большие буквы, используются цифра и т.д. Впрочем, я больше чем уверен, что большинство из Вас не пользуются данными методиками для увеличения стойкости пароля - а значит, и нет смысла дальше развивать эту тему, тем более что подобных рекомендация очень много в Интернете.

продолжение следует...
Кухарчик Андрей @ октябрь 2001
http://virtual.bresttelecom.by/php/
virtualphp@tut.by


Сайты в тему

Предлагаю Вам коллекцию сайтов, где Вы сможете отыскать различную информацию по поводу РНР. Если у Вас есть предложения по поводу расширения этого списка - я с удовольствием добавлю сюда еще один полезный ресурс. Присылайте свои ссылки и описания.

  • http://www.php.net/ - официальный сайт РНР. Масса информации, но только для тех, кто дружит с английским.
  • http://www.php-encoder.f2s.com - защита РНР скриптов UPDATED.
  • http://phpclub.net - Архив бесплатных PHP-приложений (вкл. E-commerce), форумы, чаты, рассылки, книги, обучение, хостинг.
  • http://www.devshed.com/Server_Side/PHP/ интересные статьи по PHP и не только.
  • http://ancient.dax.ru На сайте много готовых решений на PHP: форумы, чаты, гостевые книги и многое другое. Кроме того сам сайт реализован на php.
  • http://detail.phpclub.net/ - как обычно, о РНР.
  • http://firststeps.narod.ru/html/php/php.html
  • http://detail.phpclub.net/
  • http://phpclub.unet.ru
  • http://open.appideas.com/   сборник скриптов
  • http://programmingpub.com/scripts.html   скрипты на perl,php,python,tcl
  • http://px.sklar.com   php сборник скриптов
  • http://phplib.netuse.de   Здесь можно найти самую матёрую библиотеку на php(не отдельные скрипты, а цельное пособие по разработке), только не спешите подписываться на рассылки (авторы думают что все в мире должны знать немецкий
  • http://php.resourceindex.com/   коллекция скриптов
  • http://phpwizard.net   Tobias Ratschiller ничего не говорит?
  • http://www.umnik.f2s.com/ содержит информацию для вебмастера (по всем актуальным языкам веб-программирования), установка домашнего сервера Apache (разных версий)+MySQL+PHP+Perl. Также можно подписаться на рассылки
    "Вопросы и ответы по ОС" и "Будь достойным вебмастера". Имеются множество советов по компьютеру...
  • www.phpbuilder.com Здесь есть все! Форум, статьи, мануал, скрипты, да и вообще очень много профессионалов, тусующихся на сайте.
  • http://phpclasses.upperdesign.com/ Там находится масса классов на php, имеется рассылка на английском
    языке, регистрация бесплатная.
  • http://www.sourceforge.com - Вот IMHO очень полезный сайт. И не только для PHP-программистов, но и для всех остальных. Там десятки тысяч готовых примеров.

Где можно посмотреть

А и правда. РНР, да РНР! А где посмотреть как все это работает и оценить, стоит или нет заниматься этим... Правильное решение будет таким. Посетите сайты, указанные ниже, и посмотрите как они работают. Кстати, если хотите продемонстрировать всем свой проект или то, чего Вы достигли изучая РНР, присылайте ссылку и описание, и все это будет размещено здесь. Только не забудьте поставить у себя наш баннер, можно и не на главной, но буду не против :-) Ссылки на сайты будут вращаться по кругу по мере поступления.

http://virtual.bresttelecom.by - Виртуальный Брест. На РНР работают чат, форум, гостевая, объявления, статистика посещений, обмен компакт дисков, анекдоты.
www.gdekupit.ru Интернет-каталог Где купить в России. Каталог полностью автоматизирован. Регистрация, добавление нового города, Оформление Договора, выписка счета, служба рассылки и т.д. полностью автоматизировано. Все, кроме счетчика посещений на PHP и MySQL. Кстати, регистрация предприятий, расположенных в любом города России, абсолютно бесплатная.
http://www.ohrana.nsk.su - Практически весь сайт написан на PHP. Используется БД на MySQL.
http://www.webclub.lv   - Латвийский Клуб Веб-мастеров Наш сайт предназначен для всех кто творит и хочет творить Интернет. Мы предлагаем информацию, помощь и примеры по дизайну. Довольно обширная коллекция скриптов. Статьи, учебники и многое другое.
http://www.love24h.com/ru/   - международная служба знакомств, все анкеты (более 1500) с фото
http://www.freeglobus.com/ - сайт бесплатных игр (все со скриншотами и линками на загрузку)
http://trinet.wallst.ru - на PHP сделан каталог игр
www.nixers.com - сайт для поиска непостоянной работы в Ирландии. Short term, part-time and temporary jobs in Ireland.
http://karaganda.central.kz - "На связи Караганда" - содержание сайта полностью отделено от оформления.
http://moredeneg.wallst.ru - Сайт о Реальном заработке в сети. На сегодняшний день сайт почти полностью на PHP.
http://www.yanka.f2s.com - полностью написан на PHP. Работают следующие скрипты: новости, talk box, links, фотографии, гостевая, тексты, дневник.
http://softm.vov.ru - программы для бизнеса - это простые решения сложных задач
http://rec.gov.by - Сайт Центральной Комисси Республики Беларусь по выборам и проведению республиканских референдумов.
http://www.zgoda.f2s.com сайт белорусской опозиционной газеты "ЗГОДА" полностью сделан на php:"движок", гостевая, счетчик, голосование, обновление, а так же еще пару других мелких, но полезных фишек.
http://rec.gov.by - Сайт Центральной Комисси Республики Беларусь по выборам AK> и проведению республиканских референдумов.
www.saratoff.ru - "Саратовские народные новости". Новости политики, экономики, культуры, спорта и общественной жизни Саратовской области. Посетители сайта сами могут публиковать собственные новости на сайте. Удобная система администрированная, реализованная на принципиально новой технологии алгоритмизации, с использованием всех возможностей PHP и MySQL позволяет авторизованным пользователям самим создавать и администрировать новые разделы на портале.
www.ecsot.narod.ru  Это сайт ПП "Эксот", которое специализируется на изготовлении сепараторов для очистки сжатого воздуха от масла и влаги.
http://americansingles.to - знакомства, магазин. Много интересного, и вс ена РНР.
http://www.uvd.tula.ru - сайт УВД Тульской области.
http://www.andrey.nnov.ru "Сайт Андрея Зайчикова" - Поможет начинающим программистам стать профессионалами. Алгоритмы, статьи, книги, faq и многое другое.
www.puhlik.f2s.com - Система позволяет провести опрос (голосование) любой целевой аудитории (посетители сайта, участники форума и т.д.). Полностью написана на PHP4 с использование MySQL.
http://flower.lgg.ru - Доставка цветов и подарков


Почта рассылки

Обратите внимание: Поступило предложение...

Итак, поступили результаты, которые еще очень малы, но общая картина уже вырисовывается. Шансы быть или не быть примерно равны, но основной вопрос, который неизбежно встает - как рассчитываться. Это действительно большая проблема на сегодня. Ну, для белорусов и россиян все более менее ясно - почтовый перевод. А вот для ближнего зарубежья, оказывается, перевод такой небольшой суммы может вылиться в 400% расходов. Это для меня новость, но надеюсь, не везде так.
Еще очень многие беспокоятся, а не оставлю ли я свою рассылку. Могу таких успокоить, что нет, так как новому проекту нужна реклама и продвижение, а рассылка - лучший вариант это сделать.
Много вопросов по поводу общения. Кого не устраивает почта - могу предложить специальный чат в заранее условленное время. ICQ не предлагать по определению. Возможны телефонные консультации.
Очень многие не понимают, зачем нужно платить, если любой информации полно по теме в Интернете, и найти ее не проблема. Ну... Для кого как, кто-то может и хочет найти, да не в состоянии по разным причинам. Еще раз напоминаю, что проект расчитан на самых-самых начинающих, и не претендует на серьезные и глубокие наработки. Просто есть возможность дать желающим первый толчок в освоении программирования, а дальше - каждый выберет себе сам, что ему предпочтительней. Дальше можно и самостоятельно.
Есть предложения о сотрудничестве - я в принципе не против, но говорить об этом пока очень рано. Еще до конца не ясно, быть или быть... :-)

А пока - опрос продолжается. Не обращайте внимание на несоответствие кодировки, просто кликните на нужном варианте ответа, и отправьте его, дописав или нет свои комментарии. Напоминаю, мы обсуждаем возможность создания платного обучения программированию на HTML и PHP для начинающих через Интернет.

Да, ПОДДЕРЖИВАЮ                                        Нет, НЕ ПОДДЕРЖИВАЮ


Вопросы и ответы
задать вопрос

Предлагаю Вам присылать свои вопросы на адрес рассылки. Вопрос должен быть кратким, точным и по теме. Ответы на вопросы по мере знаний будут даваться мной, а если я не смогу дать Вам исчерпывающий ответ - кто-то из подписчиков обязательно поможет. А если Вы знаете ответ на заданный вопрос - не поленитесь ответить. Этим Вы очень поможете кому-то решить свою проблему. Синтаксис и грамматика - авторские.

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

задать вопрос

Вопросы: 

  1. для тех имеет свой сайт на f2s.com и создавал сам (!) на пхп таблицу в БД MySQL. Дело в том, что я пишу:
    $sql="create table somename(id int(5) default '0' auto_increment
    primary key, emails varchar(30))";
    mysql_query($sql);
    по идее должна создаться таблица, но она не создается, поскольку каких то параметров нет (я смог создать только через phpmyadmin). еще раз повторюсь: прошу ответить тех кто СОЗДАВАЛ через php таблицу БД именно на www.f2s.com . Напишите свой пример кода (начиная с подключения к БД). Заранее всем спасибо.
    ответить
  2. Подскажите пожалуйста, каким образом можно сделать так, чтобы при указании пути в URL строке, например: www.mysite.ru/page1.html при несуществующей странице "page1.html" скрипт "page.php" "загружал" эту страницу. Надо, чтобы адрес не был в таком виде: www.mysite.ru/page.php?page=1
    Заранее спасибо!
    ответить
  3. Я сделал себе движок для сайта. Статьи для сайта я заношу через форму, файл формы (addstatya.html) расположен на сайте. Форма передает данные скрипту, который создает текстовый файл на хостинге содержащий данную статью (т.е. я не использую FTP клиент). Как мне сделать так, чтобы этот текстовый файл создавался еще и уменя на компьютере (например, в директории D:\MYSITE\ ), а то мало ли хостинг сбойнет и удалит все статьи, а на моем компе у меня их не будет?
    ответить
  4. В формах в списках и в полях со списком есть возможность многозначного выбора (держа Ctrl и кликая по пунктам). Я пробовал чего-то сделать, но в форме отсылается только последнее выбранное значение. А как сделать, чтобы всё, что я навыбирал, отправилось? Thanx.
    ответить
  5. Можно ли использовать модуль с привязкой к Oracle, как если бы я подключал екстент php_oci8.dll, и как? Спасибо заранее
    ответить
  6. У меня такая проблема, мне нужно из своего скрипта запустить скрипт с другого сайта, причем так чтобы тот скрипт передал моему переменные (не обязательно запускать из скрипта можно, главное получить
    переменные из скрипта находяшегося на другом сайте) Возможно ли это? Если да, то опишите поподробнее! Заранее благодарен!
    ответить
  7. Часто вижу в исходниках примерно такое:
    $this->charset = $v;
    А что означает такая стрелка, ->, а? Я пытался в мануале найти, но так и не смог. Если кто знает. скажите хотя бы, в каком разделе мануала почитать об этом. Спасибо. Hunter.
    ответить
  8. Как чат написать?
    ответить

    Ответы на заданные вопросы:
  1. Имеем грабилку Яндекса
    <?php
    // начало
    $link = "http://www.yandex.ru/yandsearch?text=$text";
    $file = @fopen($link, "r");
    if ($file) {
    $rf = fread($file, 200000); fclose($file);
    $rf = trim (chop ($rf));
    $s = strpos($rf, "<!-- web search results -->");
    $rf = substr($rf, $s);
    $s = strpos($rf, "<!-- /web search results -->");
    $rf = substr($rf, 0, $s);
    $rf = str_replace ("/yandsearch","http://www.yandex.ru/yandsearch", $rf);
    $rf = str_replace ("/redir","http://www.yandex.ru/redir", $rf);
    $rf = str_replace ("Похожие документы","", $rf);
    $rf = str_replace ("Еще с сервера","", $rf);
    $rf = str_replace ("Показать найденные слова","", $rf);
    $rf = str_replace ("<!-- Text adv. -->","<!-- ", $rf);
    $rf = str_replace ("<!-- /Text adv. -->"," -->", $rf);
    $rf = str_replace ("Переход в категорию","<!-- ", $rf);
    $rf = str_replace ("</b>&nbsp;|&nbsp;"," -->", $rf);
    // 4
    echo $rf;}
    else { echo "<center><font>Извините, поиск не возможен!";}
    ?>
    Локально она работает, т.е все нармально выдает. А вот когда на сервер ее заливаешь она отказывается работать выдает надпись "извените, поиск не возможен". В чем тут может быть проблема? http://veslo.vov.ru
    Ответ:

    Судя по всему сервер не обрабатывает внешие запросы, скорее всего или с правами проблема или с проксей. Ниже (в той рассылке в которой опубликован твой вопрос)есть писмецо на тему работs с fopen. Попробуй убрать подавление сообщений об ошибки (@) в 4 строке $file = @fopen($link, "r");
    возможно он тебе сообщит причину по которой не создается дискриптор файла. Может стоит поставить 777 права для начала. Если скрипт бегает по UNIX. Удачи, ItMan ( webmaster@soft.ru )

    А вы не думали что у вас на сервере реализована определенная политика безопасности, которая запрещает вам связываться с другими хостами через процедуры perl, php, и ssi. Скорее всего вы хоститесь на халявном сервере - да? Например, h1, hut, holm, agava. Такая политика обусловлена тем что сервера являются бесплатными. И спомощью, несложных умозаключений можно было бы строить сканеры, снифферы, а также кликеры. Если вы не в курсе что это - то в кратце это не очень легальное программное обеспечение.(подробнее hackzone.ru) Да и грабить странички и все остальное, тоже не очень то по соображениям авторских прав. %((( Best regards, BlackSmith. mailto:ray_n@pisem.net


  2. Какими средствами я могу воспользоваться и где их взять для того чтобы работая на PHP пользоваться не
    MySQl, а MSSQL.Олег.
    Ответ:

    1. Установить MS SQL.
    2. Раскомментарить в php.ini строку extension=php_mssql.dll
    3. Перезапустить Apache (или какой там у Вас Web сервер).
    Во всяком случае у меня все проблемы с Oracle'ом разрешились именно так.
    Павел, Донецк, Украина. pavel@imail.dc.ukrtel.net

    PHP содержит функции работы не только MySQL, но и MSSQL, mSQL, Oracle, PostgeSQL, Sybase, InterBase, Informix, FilePro, DBM, dBASE и конечно ODBC через который можно работать фактически с любой базой. Но если под "средствами" имеются в виду готовые скрипты, то это батенька наврядли найдете. Не многие провайдеры позволяют себе поставить дорогой и сложный MSSQL, когда есть бесплатный и простой MySQL. Удачи, ItMan ( webmaster@soft.ru )

    Отпиши мне на l0g_err@xakep.ru пришлю тебе список функций для работы с MSSQL. В принципе можно работать через ODBC, но это довольно геморно, особенно для человека, который только начинает разбираться:))

    Надо на компьютер с PHP (а не на другой - это важно, даже отмечается в мануале) установить MS SQL (любой, хоть Personal), В расширениях PHP (php.ini) раскомментировать модуль, соответствующий MSSQL, задать через Enterprise Manager (Query Analyser или как-то еще) пользователя, создать базу и - вперед RTFM по функциям MSSQL. Алексей Мельник

  3. Здравствуйте, не поможите неного, я уже тихо матюкаюсь. вот такой простой код
    <html><head><title>Example</title>
    </head><body>
    <?php
    // create the image
    $gif = ImageCreate(200,200);
    $bg = ImageColorAllocate($gif,0,0,0);
    $tx = ImageColorAllocate($gif,255,128,128);
    ImageFilledRectangle($gif,0,0,200,200,$bg);
    ImageString($gif,3,70,90,"it works !",$tx);
    // send the image
    header("content-type: image/png");
    ImagePng($gif);
    ?>
    дает на выходе примерно
    ______
    Warning: Cannot add header information -
    headers already sent by (output started at e:\www\php_test1.phtml:6)
    in e:\www\php_test1.phtml on line 15
    PNG  IHDRхх<щPLTEЪмдIhIDATx°cёQ0 Fа(тЮ:8 alюaф%цxЭД 3Х9л 9МФ 2
    йs[Piлpй%uа(ёQ0 Fа(y|°KIENDB
    _____

    я так понимаю хедер добавиться не может. и - матюкаюсь. нигде не описано - словно у всех, кроме меня, хедеры добавляются с ликованием.:-( спасибо, григорий
    Ответ:


    хедеры должны идти самыми первыми. т.е. до хедера не должно быть НИЧЕГО (ни <body>, ни даже пробела). Потому что это означает выдачу клиенту контента, после чего естественно хедер добавить невозможно. Есть еще один выход - буферизация вывода (см. мануал "Output control functions"). puhlik

    Пишешь свой рисунок(начиная c header) в файл picture.php далее <html><head><title>Example</title>
    </head><body><img src=picture.php> Других вариантов нет.

    Уберите HTML теги вначале Вашего примера - все работает как часы. Общее правило: функцию header (и некоторые другие) надо вызвать ДО ЛЮБОГО ВЫВОДА В БРОУЗЕР! Павел, Донецк, Украина. pavel@imail.dc.ukrtel.net

    Все должно выглядеть так:
    <html><head><title>Example</title></head><body>
    <img src="image.php"></body></html>
    а в image.php пишешь:
    <?php
    // create the image
    $gif = ImageCreate(200,200);
    $bg = ImageColorAllocate($gif,0,0,0);
    $tx = ImageColorAllocate($gif,255,128,128);
    ImageFilledRectangle($gif,0,0,200,200,$bg);
    ImageString($gif,3,70,90,"it works !",$tx);
    // send the image
    header("content-type: image/png");
    ImagePng($gif);
    ?>
    Что-бы понять в чем была проблема читай как происходит работа по протоколу HTTP Maxim => maximm@inbox.ru

    Зря матюкаетесь, в заголовке передаются данные о том, что это картинка, html-документ или еще что. Поэтому завголовок должен отправляться браузеру до того, как передана информация (в данном случае сгенеренный png). То есть header("content-type: image/png"); надо посылать до того, как что-то выводим в браузер. Ошибка в следующем:
    Вы пишите:
    <html><head><title>Example</title>
    </head><body>
    тем самым вы посылаете браузеру информацию о том, что ему передаётся текст (это происходит по умолчанию как только в коде проскальзывает echo/print или просто html тэг). Решение: Уберите
    <html><head><title>Example</title></head><body> Должно работать.

    Цитирую кусочек мануала по РНР: "Note: Remember that the Header() function must be called before any
    actual output is sent either by normal HTML tags or from PHP. " А вот то, что у тебя написано:
    <html><head><title>Example</title></head><body> это и есть этот самый output, который send before header() function. Оттого и ошибка

    http заголовок должен посылаться в начале, а судя по твоему коду, у тебя посылается пустой http заголовок, потом html код, а потом еще один http заголовок, поэтому и не работает.... Попробуй убрать строчки: <html><head><title>Example</title></head><body>

    Батенька, header нежно отправлять пока не отправленно ни чего иного! В твоем случае строки
    <html><head><title>Example</title></head><body> должны быть после PHP блока. Кстати учти, PHP автоматически НЕ поддерживет использование функций создания изображений . Для этого нужно скачать соответствующие библеотеки (например отсюда ftp://boutell.com) и перекомпелировать PHP
    для поддержки соответсвующих библиотек. Что соответсвенно геморой и многие провайдеры данные опции не поддерживают.

    создай файл image.php со следующим содержанием
    <?php
    // create the image
    $gif = ImageCreate(200,200);
    $bg = ImageColorAllocate($gif,0,0,0);
    $tx = ImageColorAllocate($gif,255,128,128);
    ImageFilledRectangle($gif,0,0,200,200,$bg);
    ImageString($gif,3,70,90,"it works !",$tx);
    // send the image
    header("content-type: image/png");
    ImagePng($gif);
    ?>
    И второй файл example.html
    <html><head><title>Example</title>
    </head><body><IMG SRC="image.php" ></body></html>
    Тогда все заработает! всегда ваш, Андрей html@tut.by

    Заголовки послать можно только в слечае, если ничего не выведено в браузер. А у тебя перед заголовком выведено уже <html><head><title>Example</title> </head><body> . Естественно, ничего не работает. Способ лечения: оставь только код между тэгами PHP (вместе с самими тэгами), остальное удали. Будет работать. Дмитрий.

    Заголовки потому так и называются, что должны пересылаться агенту пользователя (например, браузеру) ДО начала HTML документа. В нашем случае это означает, что скрипт должен начинаться с <?php - с первого символа первой строки. Алексей Мельник

    Убери HTML код из начала скрипта!!!!! В пятый раз говорю ВСЕМ - перед вызовом функции Header НЕЛЬЗЯ ОТПРАВЛЯТЬ ИНФОРМАЦИЮ посредством echo или print и вставлять HTML код! Лучше сохрани сгенеренную картинку в файл, а потом выведи его. Примерно так:
    <?php
    // create the image
    $gif = ImageCreate(200,200);
    $bg = ImageColorAllocate($gif,0,0,0);
    $tx = ImageColorAllocate($gif,255,128,128);
    ImageFilledRectangle($gif,0,0,200,200,$bg);
    ImageString($gif,3,70,90,"it works !",$tx);
    // send the image
    // header("content-type: image/png");
    ImagePng($gif,"sample.png" );
    ?>
    <html><head><title>Example</title></head><body><img src="sample.png">
    </body><html>
    И вообще лучше делай GIF. PNG не везде поддерживают. Да и не прижился этот формат :(
    Если что -пиши на l0g_err@xakep.ru

    Заголовки (Headers) надо вставлять перед выводом в документ (У Вас:
    <html><head><title>Example</title></head><body>
    <?php
    // create the image
    $gif = ImageCreate(200,200);
    $bg = ImageColorAllocate($gif,0,0,0);
    $tx = ImageColorAllocate($gif,255,128,128);
    ImageFilledRectangle($gif,0,0,200,200,$bg);
    ImageString($gif,3,70,90,"it works !",$tx);
    // send the image
    header("content-type: image/png");
    ImagePng($gif);
    ?>
    НАДО:
    <?php
    // create the image
    $gif = ImageCreate(200,200);
    $bg = ImageColorAllocate($gif,0,0,0);
    $tx = ImageColorAllocate($gif,255,128,128);
    ImageFilledRectangle($gif,0,0,200,200,$bg);
    ImageString($gif,3,70,90,"it works !",$tx);
    // send the image
    header("content-type: image/png");
    ImagePng($gif);
    ?>
    Сохранить файл как напр. image.php Из другого файла с тегами (<html><head><title>Example</title>
    </head><body> ...) вставлять изображение: <img src=image.php> Paul Bush b7@mailru.c

  4. Я заказал у приглашенных программистов разработку базы. Вся работа сделана, я хотел бы   поменять пароль для доступа к базе MySQL. Как мне это сделать?Спасибо
    Ответ:

    shell> mysql(под win .exe) -u root mysql (запуск клиента как root)
    password *******
    mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
    mysql> FLUSH PRIVILEGES;

    mysqladmin.exe -u root pass newpass
    puhlik

    Заходите в клиента под root и набираете команды:
    UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
    FLUSH PRIVILEGES;
    P.S. Эти команды взяты из manual Павел, Донецк, Украина. pavel@imail.dc.ukrtel.net

    Для этого достаточно сменить одну строчку в таблице user базs данных под названием mysql. В
    частности это можно сделать с помощью следующего запроса к этой базе: UPDATE user SET password=password("новый_пароль") WHERE user='имя_пользователя' Для выполнения этого запроса надо иметь право UPDATE на данную таблицу. Ciroja.

    Если не знаете SQL может быть немного проблематично. Путь может быть в принципе следующий.
    1. Заходим в директорию:
    c:/mysql/bin
    2. Запускаем:
    mysql --user=root --password=

    (Кстати по умолчанию в MySQL у root'a пароль пустой, что не есть гоод. Вот на его пример я покажу как установить для него новый пароль. И всем рекомендую это сделать, есди не хотите чтобы у Вас в базе рылся кто угодно.) если связь с базой установлена (а она соответсвенно должна быть запущена и все описанные операции производятся на той машине на которой стоит база) должна появиться строка приглашения:
    mysql>
    3. Меняем пороль root'a:
    UPDATE user SET Password=password('новый пароль') WHERE user='root';
    Вуаля, root с новым поролем. По этому же принципу меняется пороль любого иного пользователя. Обязательно нужно использовать функцию password()! Поскольку в MySQL пароли храняться в зашифрованном виде.
    4. Актуализируем изменения пользователя. Иначе пароль начнет работать только после перезагрузки MYSQL.
    flush privileges;
    5. exit
    Удачи, iTMan ( webmaster@soft.ru )

    Обратитесь к Админу сервера .:) l0g_err@xakep.ru

  5. Здравствуйте! Имею Apache 1.3.20 и PHP 4.0.5. под Win98 Не знаю так заложено в данной версии Apache или так сконфигурирована инсталляшка , но сервер грузится  автоматически при запуске Windows. Не через автозапуск, а прописывается в реестр. Конечно можно отключить его запуск, но не в этом дело - если я постоянно работаю с ним пусть грузится автоматом, не жалко. Проблема не в этом. Первое время после инсталляции все было нормально: сервер запускался автоматом и я мог тестировать свой сайт в off-лайне. Но потом он начал при запуске требовать Dial-up соединение - т.е. грит давай соединяйся со своим провайдером - будет интернет. Если я соединяюсь с провайдером и у меня появляется активное соединение - то Apache грузится нормально и я могу работать off-line со своим сайтом. Но если я отказываюсь от соединения или соединение было не удачным, то Apache не загружается(или загружается с ошибками) - и работать off-line не возможно. Дальше - больше. Даже если загрузка Apache прошла успешно(с дозвоном, естественно, по-другому он теперь не грузится) и я мог нормально работать, то если я делаю disconnect(обрываю удаленку) - то и Apache отказывается работать, то есть при загрузке моей странички требует дозвон и если выбираешь работу в off-line, то отказывается ее грузить, если опять соединяешься с провайдером - все нормально начинает работать.Что за беда? Вроде не смертельно и работать можно, но как-то неприятно. Помогите, кто знает. Спасибо за внимание, Владимир.
    Ответ:

    В c:\windows\hosts пропиши
    127.0.0.1 localhost

    у меня по началу тоже самое было! я этот апач напереустанавливался, что теперь как все свои пять пальцев знаю. А дело то оказалось в браузере: сначала я его переустановил (браузер в смысле), все начало работать, но потом опять шибонулось, я залез в свойства обозревателя-подключение и выбрал там то что подходит т.е. перебробовал все галочки (также откл. прокси на локалку). Попробуй,
    надеюсь что получится.

    А в конфиге менял чего-нить? Пришли httpd.conf на l0g_err@xakep.ru - разберемся.

    Для начала проверьте что у вас стоит в апплете Internet option/Свойства обозревателя в панели управления, закладочка соединение/connection. Возможно, стоит поменять опции установки dialup
    соединения на «не устанавливать соединение». А еще есть такой файлик, называется он Hosts. Дак вот, Бронепоезд98 перед тем, как определить что хост не локальный обращается к нему и просматривает в нем все записи. Вообщето если у вас нет локальной сетки то апача должен быть настроен на так называемый адрес локальной заглушки 127.0.0.1, а это обозначает примерно то что он даже и просматривать этот файлик не будет. Так что попробуйте по адресу 127.0.0.1.
    Скорее всего Бронепоезд найдет Вертолет. И еще, возможно проблема у вас решиться сама. :)))
    А знаете почему? IE кэширует ip адреса, а если вы закачивали на удаленный сервер то он и просит его. (но это в том случае если вы пытались сопоставить несколько FQDN(имен хостов) своей машине, или изменить имя веб сервера.) Best regards, BlackSmith.

  6. Пытаюсь запустить внешнюю программу:<? $g=system(findgrp.exe);?>. А IE выдает: Findgrp: working...... User "*****" belongs to the following local groups on ***: Access Denied. Access Denied. Что длать?
    Ответ:

    что то... права на этот файл выставь, так чтобы можно было всем его читать. (chmod ...) только сам вот не знаю какие именно (по моему 777, но это и запись по ходу)

    A кто тебе разрешит такое? На то он и апач чтоб пресекать такие попытки Нужно чтоб админ разрешил запускать юзеру apache запускать ентот файл либо кидать его в cgi-bin/(опять же без админа не обойтись)

    Права доступа поставить надо правильные....

  7. Как будет выглядеть PHP4-скрипт, записывающий все переменные отправляемые в него, в файл в формате например,если делаешь: saver.php?name=Петя&family=Петров, то получаешь файл saver.txt, выглядеший: name=Петя?family=Петров.
    Ответ:

    <?php
    $fp=fopen("saver.txt","a");
    fputs($fp,$QUERY_STRING);
    fclose($fp);
    ?>
    Можешь еще и блокировать файл, но это уже сам (в рассылке эта тема проходила).maximm@inbox.ru

    Парраметры, передаваемы скрипту, храняться в переменной $QUERY_STRING. Вот пример такого скрипта:
    <?php
    $f = fopen("test.txt","a+");
    fwrite($f,$QUERY_STRING."\n");
    fclose($f);
    ?>Если непонятно - пиши : l0g_err@xakep.ru

  8. Объясните пожалуйста чем PHP4 отличается от PHP3?
    Ответ:

    есть в php4 очень много полезных ф-ий (наиболее простые), которых у php3 нет: поиск строк, wordwrap и т.п. можно зайти на php.net И почитать там what's new

    Отличается, в основном, функциями. Например в PHP3: - отсутствует поддержка сессий - ее надо писать самому с нуля; - какие-то ограничения при сериализации экземпляров классов - какие именно - забыл. Кое-что еще в таком роде. Павел, Донецк, Украина. pavel@imail.dc.ukrtel.net

    У брат, это тема целого выпуска, если не двух. В кратце:
    - Встроенная поддержка сессий (в третьем нужна была отдельная библиотека)
    - Полностью переписанное ядро (теперь это не чисто интерпретируемы язык. Происходит предварительная компиляция скрипта, в результате чего производительность увеличилась в разы)
    - Подсистема буферизации вывода.
    - Поддержка Java.
    - Расширен список функций для работы с массивами
    Ну и так далее :)

    Самое первое и главное отличие PHP4 от PHP3 это ядро, а это влечет за собой то, что в РНР4 код сначала компилируется (полностью), а потом интерпритируется, то есть если есть ошибка в коде, анализатор укажет на нее и продолжение выполнения сценария закончится, в то время как в РНР3 код компилируется, а потом анализируется построчно, то есть при наличии ошибки в строчке, анализатор укажет на нее и продолжит выполнение сценария с выдачей результатов, даже
    если они не правильны.  В РНР4 изменены некоторые функции и способы их применения, а также добавлены функции для работы с Java и возможности в сессиях.

    Доработкой некоторых функций и введением новых (см. доку) || www.nokstr.dax.ru ||

  9. Пожалуйста поскажите какие надо сделать установки на MY-SQL сервере и какой надо написать
    техт на PHP чтобы подключить БД в формате CSV. PS: напишите пожалуйста подробней и если
    есть возможность пришлите готовый скрипт С уважением Евгений
    Ответ:

    ответов не было.

    задать вопрос


Обмен ссылками и баннерами

Предлагаю Вам стать участниками баннерообмена. Ваши ссылки и описания Ваших сайтов вы можете присылать по адресу рассылки - virtualphp@tut.by Все ссылки обязательно появятся в этой рассылке. Если есть желание разместить свой баннер 88*31 на сайте рассылки http://virtual.bresttelecom.by/php/ , укажите это дополнительно, и пришлите код своего баннера. В любом случае, Вам надо будет разместить у себя код баннера сайта рассылки, и только на главной страничке Вашего сайта.

Взять код моего баннера (на выбор) можно по адресу: http://virtual.bresttelecom.by/php/index.phtml?php/banner.html или воспользоваться этим:

<a href="http://virtual.bresttelecom.by/php/"><IMG SRC="http://virtual.bresttelecom.by/baner/8831.phtml"
alt="Виртуальный Брест" width="88" height="31" border="0"></a>

Наши друзья

Правила у меня стандартные - описания Ваших сайтов будут периодически (в зависимости от их количества) размещаться в рассылке. И конечно - будет отдельная страничка на сайте, на которой будут представлены все друзья сайта.

http://virtual.bresttelecom.by - Виртуальный Брест. Региональный информационно - развлекательный портал города Бреста. Чат, форум, статьи, услуги, объявления, недвижимость, каталог сайтов - это и многое другое ждет Вас на страницах сайта.
http://price.bresttelecom.by - сайт прайсов фирм города Бреста. Поиск, подсчет, реклама и т.д.
http://tweak.tut.by - http://tweak.bresttelecom.by - Оптимизация и настройка компьютера. Если Вас интересуют различные аспекты настройки Вашего мегагерцевог
о друга, Вам надо посетить сайт посвященный настройке и оптимизации. Кроме того - список последних версий популярных программ и свежие новости, а так же чат, форум и многое другое!
http://saleha.al.ru/anecdot/index.phtml   - самые новые и смешные анекдоты.
http://klepan.narod.ru  - Халява pliz! - реферал клуб.
http://www.ohrana.nsk.su - Название: Управления вневедомственной охраны г.Новосибирска. Описание: Услуги по охране квартири других объектов, сопровождение грузов. На сайте: интересные статьи, новости, криминальная хроника, вакансии и другая полезная информация!
http://www.programing.narod.ru - программирование на РНР
http://icebreaker.dax.ru - самый информативный сайт об ударных инструментах, здесь находится огромное количество полезной информации для ударника:фотографии,статьи,табулатуры,самоучители,ссылки и много чего ещё!
http://webd.hut.ru - AGS Design. Сайт для вебмастера. 1500+ изображений фонов, иконки и кнопки, отличная графика, скрипты, очень понятная документация по различным языкам программирования, изучение Фотошоп
от А до Я, и мн. др.
www.nokstr.dax.ru - Программы, статьи и примеры по Visual Basic, C++, Халява.
http://www.ancient.dax.ru - Ancient - Каталог Веб-Мастера. Бесплатные скрипты CGI, PHP, JAVA
WebCraft - всё для вебмастеров, увеличение вашего трафика на 200 посетителей в день.

http://softm.h1.ru/ - программы для бизнеса - это простые решения сложных задач
http://moskalyuk.com/links/index.htm . На сайте собрана коллекция ссылок, причем, как нетрудно убедиться, многие посвящены программированию и компьютерным наукам. По РНР отдельно пока ничего нет, просто в последнее время я увлекался языком Perl, кому-то может показаться интересным.
http://sos.dax.ru - Проект "SOS:Помощь пользователю". На сайте вы найдете множество статей, советов по компьютеру. Всегда свежий софт. А также вы сможете задать вопрос и получить на него моментальный ответ. Если вам нужна помощь - мы поможем вам!
http://www.uvd.tula.ru - сайт криминальной милиции УВД Тульской области. Здесь будет все, что касается милиции, права и жизни города Тулы.
http://www.pro-forex.com/ru/index.php - Большой проект финансовой тематики, полностью реализованный на PHP и MySql: Дилинговый Центр PRO-FOREX.COM
http://myvote.hut.ru - MyVote - голосование на Вашем сайте.Сервис для всех вебмастеров, которые хотят сделать свой сайт более интерактивным. Позволяет организовать опрос мненияпользователей на любом сервере.
http://kinfa.narod.ru/ "Для программистов, Web - мастеров, разработчиков и пользователей, интересующихся новыми возможностями языка HTML"
http://catsclub.boom.ru - Все о кошках в Кошкином Клубе
www.adelavida.com.ua - Юмор, Галерея совремённых художников, Советы по Виндозе, Полезные ссылки
http://www.sura.ru/maxwell Математика, Алгоритмы, Программирование. На сайте можно найти описания различных алгоритмов и методов, относящихся к различным математическим (и не только) дисциплинам.
http://rodinaaa.nm.ru - Велкам в "Уголок Родины", на персональную страницу Бориса Киреева aka Генерал Родина. Здесь Вы можете познакомиться с моим как бы литературнымтворчеством. Творчеством моих друзей.
ermakov.hut.ru - Не нажимайте на эту ссылку! Все равно на Абсолютно бесполезном сайте Вы не найдете ничего, кроме самых интересных кроссвордов, обычных и не очень, самых смешных анекдотов. Стоит ли идти на этот сайт для того, чтобы подписаться на лучшую кроссвордную рассылку Subscribe.ru?!


Подпишитесь на рассылки!

Рассылки Subscribe.Ru
Программируем на PHP - вопросы и ответы
Новости сайта Виртуальный Брест
Оптимизация и настройка компьютера
SOS:Помощь пользователю Интернета
Вэб-строительство Профессионалам
Кроссворды от К.Ермакова
JavaScript и PHP
:-) ШуТкИ - ШутКамИ (-:
Dummpy Daily eTips

Здесь будет публиковаться список рассылок, рекомендуемых к подписке. Если у Вас есть рассылка - предлагаю Вам обменяться подобной формочкой для подписчиков. Достаточно прислать мне код рассылки и ее название.


автор рассылки Андрей Кухарчик / http://virtual.bresttelecom.by/php



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Рейтингуется SpyLog

В избранное