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

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


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

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

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

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

Мне приходит очень много просьб вернуться к самому началу, и рассказать о основах РНР. Предлагаю Вам вторую часть статьи о РНР.


РНР для всех!

Вложения файлов в РНР

Каждый, кто сделал хоть одну страничку в сети, сталкивался с проблемой изменения тех или иных данных на ней. Конечно, это не сложно когда страничек несколько или она одна :-), но если Вы сделали большой сайт, маленькое дополнение (например, в меню) в сотни файлов может превратиться в настоящий кошмар! РНР решает эту проблему в раз, позволяя вкладывать одну страницу в другую. Достигается это с
помощью операторов REQUIRE и INCLUDE. После этих операторов в круглых скобках должен стоять путь к вкладываемому файлу. Например – INCLUDE ("text.phtml"). Различие между указанными операторами заключается в том, что REQUIRE подменяется содержимым указанного файла, и может быть использован только один раз, а INCLUDE – вставляет и выполняет содержимое указанного файла, что позволяет
применить его несколько раз, например в цикле. В любом случае, при исполнении файла интерпретатор РНР (правильно говорить – парсер) пребывает в состоянии HTML, и для его включения код надо заключить в конструкцию <?php … ?>. Вложения файлов могут происходить только внутри серверного пространства, доступного РНР. Другими словами, Вы не можете использовать в имени файла http://.

Достаточно часто встречаются сайты, ссылки которых включают в себя специальные символы - &, ?, %. Все это может быть и результатом работы РНР. Дело в том, что сли в конце ссылки добавить ?имя=значение, это значение будет доступно под этим же именем в файле, куда указывает ссылка. Если необходимо добавить несколько имен, они могут быть разделены знаком &. Теперь мы можем сделать сайт, который будет доступен с помощью только одной странички. А всю остальную информацию эта страничка будет выводить на основании полученных по ссылке данных. Вид такой ссылки будет примерно таким: http://имя.ru/index.phtml?link=1 Единица в конце ссылки и есть наш параметр, который будет подставляться в файле index.phtml. Например, вот так:

<html>
…начало файла …
<?php
$url = "";
if ($link == 1) { $url = "name1.phtml"; }
if ($link == 2) { $url = "name2.phtml"; }
if ($link == 3) { $url = "name3.phtml"; }
if ($link == 4) { $url = "name4.phtml"; }
if ($url == "") { $url = "error.phtml"; }
INCLUDE ($url);
?>
… конец файла …
</html>

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

Есть и другой путь. Его суть заключается в том, что у РНР есть доступ к так называемым переменным окружения сервера. Одна из этих переменных – запрашиваемый посетителем путь относительно адреса сайта. И этот путь становится нам доступен для использования. В этом случае ссылки у нас будут такого вида: http://имя.ru/index.phtml?patch/name.phtml . Вторая часть ссылки - patch/name.phtml будет нам доступна, если мы считаем параметр $QUERY_STRING. Например так - $add = $QUERY_STRING. Теперь изменим наш головной файл index.phtml, чтобы все работало автоматически. А если запрашиваемый параметр не будет указан (правильно говоря – будет равен пустой строке), чтобы что-то открыть, присвоим переменной $add имя файла, который должен быть открыт как главная страничка. Пусть это будет файл
main.phtml. Тогда код будет выглядеть следующим образом:

<html>
…начало файла …
<?php
$add = $QUERY_STRING;
if ($add == "") { $add = "main.phtml"; }
INCLUDE ($url);
?>
… конец файла …
</html>

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

Пример счетчика посещений на РНР

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

<p>Посетителей странички -
<?php
$filename = "counter.dat";
$fp = @fopen($filename,"r");
if ($fp) { $counter=fgets($fp,10); fclose($fp); } else { $counter=0; }
$counter++;
echo $counter;
$fp = @fopen($filename,"w");
if ($fp) { $counter=fputs($fp,$counter); fclose($fp); }
?></p>

В том же каталоге, что и Ваша страничка, создайте файл counter.dat, закачайте его на сервер, и с помощью своего FTP-менеджера измените атрибуты этого файла таким образом, чтобы он был доступен для записи. Обычно нужно установить галочки на всех атрибутах файла. Если Вы этого не сделаете, скрипт будет постоянно выдавать ошибку при попытке записи в файл. Кстати, для того, чтобы этого не происходило, стоит поставить перед командой записи и открытия файла символ @, он отменит вывод
сообщения о возникшей ошибке на экран посетителя. Когда атрибуты изменены, обновите Вашу страницу на сервере, и обратитесь к ней по ее адресу в браузере. Вы увидите что там, где Вы вставили код РНР, появляется строка: "Посетителей странички – " и далее число, соответствующее количеству посещений. И никакого следа кода! Он был обработан на сервере в Интернете, а браузеру просто передан результат этого исполнения.

Алгоритм этого скрипта очень прост. В первой строке мы присваиваем выбранной переменной имя файла, где будет храниться число посещений. Во второй – открываем соединение с этим файлом для чтения. Дальше проверяем успешность соединения, и если файл существует и он доступен для чтения, считываем из него строку из 10 байт, чего более чем достаточно для счетчика, и закрываем соединение с файлом.
Увеличиваем показание счетчика на единицу и выводим его новое значение на экран. На следующем этапе нам нужно записать новое значение счетчика, и для этого мы снова открываем соединение (дескриптор) с файлом, но уже на запись с очисткой содержимого файла. Если оно успешно – записываем туда новое значение счетчика и закрываем дескриптор файла. Вот и все.

На этом наше первое знакомство с языком РНР будем считать законченным. Конечно, за кадром осталось еще очень много полезного и интересного но, к сожалению все сразу охватить невозможно. Впрочем, для того и придумали умные люди Сеть, чтобы сделать доступным недоступное. В Интернете есть очень много полезных ресурсов на тему РНР, и при минимальных навыках работы в поисковиках Вы без труда отыщите их. А я посоветую Вам подписаться на рассылку РНР для всех!, в которой регулярно раз в неделю появляются новые статьи, примеры скриптов, есть раздел вопросов-ответов а также много другой полезной информации. Найти форму для подписки и подписаться можно по адресу в сети http://virtual.bresttelecom.by/php   Там же выложены все предыдущие выпуски рассылки. А по адресу http://virtual.bresttelecom.by Вы сможете посмотреть, как все это работает в действии. Все что Вы встретите на этом сайте – сделано на РНР. Чат, форум, частные объявления, система статистики – это только малая часть тех возможностей, что дает нам программирование на языке РНР.



Андрей Кухарчик @ май 2001
http://virtual.bresttelecom.by
virtualbrest@tut.by 


P.S. По Фидо просшла ссылка, которую я с удовольствием переадресовываю Вам. Не знаю, будет ли она работать (когда я проверял - работала), но там лежит файл около 7,5 Мегабайт, в котором дистрибутивы PHP+Apache+MySQL. Все уже установлено и настроено, нужно только распаковать куда надо. Пробуйте!
http://virtual.bresttelecom.by/apache.phtml


Сайты в тему

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

  • http://www.php.net/ - официальный сайт РНР. Масса информации, но только для тех, кто дружит с английским.
  • http://go.to/php-encoder - защита РНР скриптов.
  • http://phpclub.net - Архив бесплатных PHP-приложений (вкл. E-commerce), форумы, чаты, рассылки, книги, обучение, хостинг.
  • http://www.devshed.com/Server_Side/PHP/ интересные статьи по PHP и не только.
  • http://ancient.dax.ru На сайте много готовых решений на PHP: форумы, чаты, гостевые книги и многое другое. Кроме того сам сайт реализован на 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 - "На связи Караганда" - содержание сайта полностью отделено от оформления.


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

Открывается новый раздел, в котором будут публиковаться материалы, дополнения и обзоры, составленные по Вашим письмам...

 

Здравствуйте Андрей,

К сожалению, вынужден отметить ряд "НЕТОЧНОСТЕЙ" в Вашей последней статье. К сожалению, а может быть к счастью, большие PHP программы НЕ ТОЛЬКО НЕ ТРУДНЕЕ, НО И НЕСОИЗМЕРИМО ЛЕГЧЕ в разработке, чем что-либо другое из их "ЗАМЕНИТЕЛЕЙ" - консольных приложений CGI или перловских скриптов. Просто для многих пользователей не всегда ясно, что PHP это:

- Язык, который может быть как интерпретирован, так и ОТКОМПИЛИРОВАН! Для этого существует PHP-Compiler. Качество генерируемого кода не уступает С++-ному. Единственное, что теряет программист - возможность "создавать" новую программу по ходу выполнения другой или доставать ее из записи в БД, и тут же передавать ее на выполнение.

- Это ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ЯЗЫК со всеми удобствами для разработки крайне сложных систем.

- Интерпретатор PHP работает быстрее, чем интерпретатор Perl, просто очень много времени тратится на загрузку расширений, которые некоторые пользователи "цепляют" даже не всегда понимая, зачем они им могут понадобится.

- Решением проблемы медленной загрузки среды выполнения и ряда других проблем является "встраивание" php в соответствующий веб-сервер - для этого существуют написанные специально для них модули, которые обеспечивают постоянное присутствие PHP в памяти, кеширование текстов скриптов, быструю передачу кода на интерпретацию и исполнение.

ОСОБЕННО ОБРАЩАЮ ВНИМАНИЕ: Когда PHP используется как модуль к Apache, появляется возможность использовать продукты ZEND CACHE и BWCACHE (последний особенно рекомендую), которые держат часто используемые скрипты в памяти в ОТКОМПИЛИРОВАННОМ виде (т.е. ИСПОЛНЯЕМЫЙ КОД).

И, наконец, обращаю внимание на то, что с конца 2000 года у PHP новое ядро, разработанное компанией ZEND ( http://www.zend.com ).

..---------------------------------------

В качестве помощи пользователям Win32: найти последнюю версию PHP и инсталлятор к ней можно было на www.php4win.de , правда на протяжении последнего месяца этот портал закрыт на глобальную реконструкцию.

..---------------------------------------

Где можно посмотреть: http://www.sorter.ru На PHP сделан весь Front End портала, включая пред. и постпроцессинг поискового запроса. Сама поисковая машина сделана как специализированный WEB-сервер живущий на отдельной машине (он загружает и использует словари и индексы к ним, которые весят 200 Мб и описывают весь нормативный русский язык). PHP общается с этим сервером по протоколу HTTP.

P.S. Не судите поиск строго: требование Шефа, чтобы результаты выводились не по степени соответствия запросу, а по рейтингу ресурса. Переделано это будет лишь через месяца 2.

..---------------------------------------

А вообще, Андрей, полезное Вы дело начали. Желаю Вам творческих
успехов. ;-)

С Уважением,
Константин Варов.

 

Уважаемый, Андрей!
Почему-то во всех учебных примерах по обработке форм на PHP используются 2 файла: 1-ый это сама форма и 2-ой обработчик формы, который указан в <form action="file.php3" method="post">.

Я решил поделится маленькой хитростью: Используя глобальную переменную $PHP_SELF, в которой хранится имя исполняемого файла и функцию isset(), которая проверяет была ли об'явлена переменная, эта задача решается с помощью одного файла.

Ниже привожу полный код программы, в которой я использую форму из Вашей рассылки (выпуск #10) и ее обработку одним файлом.

<html>
<head>
<title>Посылка письма из формы</title>
</head>
<body>
<?
// Если была нажата кнопка "Послать"
if (isset($submit)):
mail($email, $name, $txt, $name);
endif;
?>
<form action="<? echo $PHP_SELF; ?>" method="post">
<input type="text" name="email" size="20"><br>
<input type="text" name="name" size="20"><br>
<textarea rows="2" name="txt" cols="20"></textarea><br>
<input type="submit" name="submit" value="Послать">
<input type="reset" value="Очистить">
</form>
</body>
</html>

На мой взгляд это более элегантное решение. Хотя, "на вкус и цвет товарищей нет!" :-)

С уважением, Чернухин Евгений mailto:pocherk@chat.ru http://www.pocherk.ru



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

Я только что подписался на Вашу рассылку в Субскрайбе. Я, конечно, еще не получал письма с Вашей рассылкой, с вопросами и ответами, но у меня самого есть вопрос: Где-то недели две назад я начал долбить этот самый ПХП, и вполне нормально разобрался, относительно, конечно. В основном я учился по примерам скриптов, большинство из которых вытащил из Админ страниц. Некоторое время всё было нормально. И вот я столкнулся с такой штукой - выведением данных из таблицы MySQL в HTML (Всё нормально было до знакомства с MySQL). Сначала я просто вытянул из Админ страниц нужные мне файлы и они вполне нормально всё показывали. Теперь
мне понадобилось, чтобы данные выводились в зависимости от условий, которые заданы пользователем в форме. Я взял образец из PHP Manual, но эта зараза не работает, выдаёт что-то вроде "Supplied argument is not valid… что-то там такое... on line, скажем, 7". В чём тут дело - не понимаю. С сервером коннектится, с базой коннектится, но когда приходится делать выборку данных из таблицы - труба. Мне один человек сказал, что может быть, дело в User и в Password, кто его знает, я даже не знаю, какой должен быть User и пароль. А! может, всё дело в настройках, может нужно позволить пропускать варнинги, может, Вы знаете? Я пользуюсь PHP Version 4.0.1pl2 и МайЭсКьюЭл 3.23.10-alpha, кажись вот так. Может, поможете. Всё, что мне нужно, это чтобы в HTML выводились все данные из таблицы, или данные, которые подлежат
условию, но это уже детали. Главное, чтоб вывод данных заработал. Я столько бился над этим, чуть башку не свернул :(. Очень надеюсь на Вашу помощь.
alka@btsau.kiev.ua


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

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

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

Вопросы: 

  1. Где можно найти электронные книги по PHP???
    ответить
  2. У меня Apache под Win, как можно добавить FTP опции ?
    ответить
  3. Как в php подключить библиотеки для работы с изображениями и флеш?
    ответить
  4. Привет! У меня есть вопрос... Допустим есть сайт с одинаковым дизайном, как менять отдельные его
    элементы его содержания... инклюде виртуал не подойдет... Так как на первые десять страниц нужно вставить новости к примеру, а в другие 10 в этом же месте нужно вставить различные материалы, обзоры и т.д. Причем что файл с дизайном один типа index.php, и его вот так гибко приходится менять... Если вы чтонить из выше упомянутого поняли, помогите пожалста желательно с примером...
    Большое спасибо!
    ответить
  5. почему у меня при использовании команды $counter=fgets($fp,10); - считывание идет до ближайшего перевода каретки, дальше нет. - filesize($filename) дает одно значение, а считать возможно только меньше Спасибо, Илья mis421@chat.ru
    ответить
  6. S chego nachat' izuchenie PHP, kakoe PO nugno?
    ответить
  7. На одном хосте мне дали доступ к MySql то есть дали пароль и остальные параметры. Как я понимаю веб интерфейса там нет и отсюда вопрос куда мне вводить все эти примочки для того чтобы создать
    базу данных, таблицу и всякие строчки. Если можно ответьте пожалуста по подробнее!
    ответить
  8. Вопрос, относительно MySQL У меня создано несколько виртуальных хостов: 127.0.0.1, 127.0.0.2
    Я создала обычным путем базу данных в MySQL
    >CREATE DATABASE products;
    >CREATE TABLE clients (name VARCHAR(25), email VARCHAR(25), choise VARCHAR(8));
    А файл для обработки stat.phtml поместила в 127.0.0.2 И у меня происходил стопор: "Не могу выбрать базу данных " Не трудно было догадаться в чем может быть дело, но появляется другой вопрос:
    Как тогда создавать базы данных на других хостах, а не тех, которые указаны по-умолчанию?

    stat.phtml
    <?
    $hostname = "127.0.0.2";
    $username = "";
    $password = "";
    $dbName = "products";
    $userstable = "clients";

    MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");
    mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");
    .......................
    .......................
    MYSQL_CLOSE();
    ?>

    ответить
  9. Я долго ищу надежную, быструю, бесплатную службу, дающую бесплатные e-mail’ы (с SMTP, POP3). Я
    испробовал множество из них, но у всех есть недостатки – то невозможно соединится; то почта не
    принимается, а у них на сайте (в web интерфейсе) посмотреть можно; то невозможно отправить. Подскажите, какая лучше и какую выбрать?

    ответить
  10. У меня установлены PHP 4.0.4pl1, Apache 1.3.14 и MySQL 3.23.22-beta ( и все под Win98 ).
    PHP и Apache я настроил нормально ( между собой работают великолепно ). Хочу проверить взаимодействие с MySQL, для чего экспортировал одну из своих баз данных. В свойствах MySQL отображаются базы: mysql ( что это такое я уже прочитал в книге ) и моя под именем ilya.
    В ней показана database tables "cpu". Table columns: test [ char(50)], cpu char(30)] и другие.
    Теперь хочу написать сценарий на PHP для работы с ней. Хотя бы вывод содержимого. По примерам в книге не получается. Если кому несложно, покажите образец (самый простой, чтобы хотя бы представить себе как оформляются команды ). Заранее благодарен, Илья. mis421@chat.ru

    ответить
  11. Пожалуйста, подскажите! Где можно лучше всего почитать и понять механизмы работы session в PHP4 в полном объеме. Честно говоря документацию я проработал, но работать с ними так и не научился из-за отсутствия опыта в этих делах. Хотелось бы видеть примеры использования в системах аутентификации пользователей с использованием cookies и без них, а также механизм шифрования пароля и данных при передаче от пользователя к серверу. И еще правильно ли заявление, что session является наиболее эффективным механизмом (я не имею ввиду маленькие проекты типа домашних страничек, а более серьезные разработки). Спасибо. АМ.
    ответить
  12. Просьба не посылать читать FAQ (или подскажите где взять по емейлу), как поднять Apache под Мандрейковский Linux 7.2 (возможно я неправильно выбрал инсталяцию - рабочая станция, а не сервер)
    ответить
  13. Вопрос по переменным окружения РНР. Если есть у кого полный список, или знаете где такой можно взять в Интернете, ответьте пожалуйста.
    ответить
  14. Просьба не посылать читать FAQ (или подскажите где взять по емейлу),
    как поднять Apache под Мандрейковский Linux 7.2

    ответить
  15. При вставке в скрипт dl("php_mcrypt.dll"); окно браузера выдает сообщение: Warning: Unable to load dynamic library 'd:\usr\local\php4\extensions\php_mcrypt.dll' - Присоединенное к системе устройство не работает. in d:\usr\local\www\shop\admin\index.php on line 5 extension=php_mcrypt.dll - тоже не помогает
    ответить
  16. В одной из книг, которую я читаю, написан перечень "функций уровня абстракции баз данных (dbm-style)". При попытки их использовать в своих файлах ( локально на компьютер при запущенном апаче ) выводится сообщение: "Fatal error: Call to undefined function: dbase_create() in
    d:/./data-base.php on line 5". ( вызов неизвестной функции ? ). Значит ли это, что для их использования надо установить еще какую-нибудь программу ?

    ответить
  17. В выпуске 7 вы сказали, что в PHP есть функция виртуал - аналог апачевских "include virtual". Если не трудно, опишите точно ее, поскольку второй совет по указанию в served-parced типов файлов PHP ни к чему не приводит (точнее приводит к полному отказу загрузки страниц - их предлагает сохранить на диск).Заранее благодарен Василий Ясный.
    ответить


    Ответы на заданные вопросы:
  1. Можно ли где то получить бесплатно вэб страничку с поддержкой PHP ?

    Ответ:

    www.f2s.com  бесплатно PHP and MySQL
    www.h1.ru
    www.hut.ru
    www.portland.co.uk

    Da, konechno. Naprimer, www.webservis.ru , www.lgg.ru , www.f2s.com   i dr. Na sayte free.lgg.ru mojete poiskat xostingi s podderjkoy PHP.
    http://WALLst.ru

    на http://hut.ru ввели поддержку php
    Можно, например на www.webservis.ru http://lgg.ru

  2. На локальном компьютере связка PHP+MySql отлажена и прекрасно работает. Какие шаги следует
    дальше предпринять, чтобы проект также хорошо работал с сервера провайдера ?


    Ответ:
    Собственно, нужно скопировать все файлы веб странички на сервер провайдера и сделать аналогичную базу в MySQL провайдера, зарегистрировать username и password и поменять в скрипте имя пользователя, пароль и hostname для коннекта к MySQL

    На сервере провайдера должны быть установлены продукты PHP, MySQL и web сервер, связанный с этим php, например Apache.

    Прочитать внимательно инструкцию по установке скриптов, т.е. иногда возникают проблемы с расширениями, т.е. сервак считает, что php файлы имеют расширение только php3 или phtml, а ты написал все файлы как php, вот только одна из проблем. Так же желательно записать все
    настройки сервера, т.е. Твой локальный путь, права, которые нужно ставить на php файлы (обычно не надо), пароль, порт и сервер на базу данных, и т.д. MaximatoR ( maximator_@rambler.ru )

  3. Подскажите как вставить с помощью РНР в html-страничку картинку gif или jpg сохраненную в базе MySQL. С помощью include/require не получается из-за header.

    Ответ:
    Отвечаю на вопрос, точнее высылаю пример. Думаю разберетесь сами, но если что пишите мне.
    spc@nm.ru

    <?php
    $HostName = 'localhost';
    $UserName = 'root';
    $UserPass = '';
    $DBName = 'Proba';
    $db = mysql_connect($HostName,$UserName,$UserPass) or die("Нет соединения");
    mysql_select_db($DBName,$db) or die("Не могу выбрать БД");
    $resd=mysql($DBName,"select picture from table where id=2");
    $f=mysql_fetch_array($resd);
    // Необходимо знать формат в котoром хранится картинка в БД
    // и в зависимости от этого подставлять необходимый заголовок
    // например такие
    Header("Content-type: image/x-windows-bmp");
    // Header("Content-type: image/x-gif");
    // Header("Content-type: image/x-jepg);
    echo $f["picture"];
    ?>


    <html><head><title>Картинка из БД</title></head>
    <body bgcolor="#FFFFFF" text="#000000" link="#000099" vlink="#330066">
    <img src="1.php3"></body></html>



    Я пробовал сделать так: написать скрипт img.php, который принимает в качестве GET переменных
    параметры картинки. Допустим, это значение поля id в таблице с именем images.
    <?php
    if (isset($HTTP_GET_VARS["id"])) {
    $id = $HTTP_GET_VARS["id"];
    /*Достаем из базы картинку с кодом $id в $img_source*/
    $img = ImageCreateFromString($img_source);
    /*Допустим, будем выводить jpeg.*/
    $type = "jpeg";
    header("Content-type: image/" . $type);
    $func_name = "image" . $type;
    $func_name($img);
    } else {
    /*Обработка ошибок.Можно создать картинку с сообщением об ошибке.*/

    }?>
    С уважением, Руслан Охитин rus@bagan.ru

  4. У меня установлено PHP 4.0.4 и Interbase 5.5, каким образом организовать их взаимодействие?

    Ответ:

    Выкачайте с www.php.net PHP 4.0.5 и соответствующую доку. Interbase там поддерживается, правда не знаю какой версии.

    У меня правда Interbase 6, но помоему разница невелика. Единственной проблемой было то, что мне пришлось перекомпилировать PHP, так как бинарный дистрибут PHP, который шел у меня в SuSE Linux 7.0 не поддерживал Interbase по умолчанию. После перекомпиляции с добавлением соответствующих ключей все заработало. Кроме этого есть специальный модуль для связки PHP и Interbase, писанный в Борланде, живет это чудо по адресу http://www.borland.com/interbase/projects.html
    Список функций PHP по работе с Interbase находится здесь:
    http://www.php.net/manual/en/ref.ibase.php  

  5. как войти в строку mysql? Александр

    Ответ:
    Если вы имеете в виду утилиту типа SQLPlus (Oracle), то это x:\mysql\bin\mysql.exe  

  6. Добрый день, у меня возник вопрос, как можно осуществить вставку данных из формы, прямо на страницу, т.е. в html? Что бы пользователи могли оставлять свои комментарии... Заранее спасибо!

    Ответ:
    В принципе можно и это сделать, но зачем, все равно без РНР тут не обойтись (еще JavaScript помоему можно, но это не моя тема), а с РНTML сделать все легче. Ответы есть в предыдущих выпусках рассылки.

    ...mysql/bin/mysql.exe - это если ты в локалке, а если на серваке то:
    1.Скачать бинарники mysql ( http://www.mysql.com )
    2.mysql.exe в консоли connect host[,port] дальше читай help
    3. Вообще лучше скачать phpmysqladmin и не страдать :)
    MaximatoR ( maximator_@rambler.ru )

  7. Я сделала себе несколько виртуальных хостов в Apache: 127.0.0.1, 127.0.0.2,...127.0.0.9 А если мне нужно будет еще создать, то какая-следующая должна быть нумерация после 127.0.0.9, чтобы Apache все правильно понимал?

    Ответ:
    Максимальное число может быть 256, то есть после 127.0.0.256 уже не получится больше сделать. Но я думаю для вас и этого хватит.

    Можно делать хоть вот так: 127.255.255.255 or 127.55.55.55 или еще как вздумается!

  8. У меня вопрос, относительно создания гостевой книги на PHP: каким образом можно реализовать на PHP следующее:
    1) чтобы при добавлении новой записи она автоматически направлялась на e-mail автора странички?
    (в action у меня указывается ссылка на phtml файл для обработки формы, а 2 action в одной форме не могут быть)
    2) например, в textarea человек вводит длинное сообщение, не разделяя его при этом Enter'ом и это очень сильно портит дизайн? Может у кого-нибудь есть код разбиения таких длинных записей? Стоит PHP 4.0. а функция wordwrap работает только с 4.0.2
    3) Существует ли возможность автору добавлять комментарии для сообщений в гостевой книге


    Ответ:
    2) а зачем разделять сообщение? - просто надо ограницить рамки его вывода следующим образом:
    <table width=70% cellspacing=0 cellpadding=0><tr><td>сообщение</td></tr></table>
    70% я выбрал просто так - можно поставить любое число...(html надо знать;)


    1. В конце своего файла что указан в форме добавь:
    header("Location:mainsend.php");
    хотя это бред, не проще дальше после того, как добавишь запись, просто отправить на мыло что тебе надо ?
    ...
    mail(...)
    ...
    exit;
    и все.

    3. Конечно, вот пример реализации:
    http://www.yanka.f2s.com/guestbook.php - комментарии добавляет админ. Возможны варианты с комментариями гостей, но это сложней. MaximatoR (mailto:maximator_@rambler.ru)

  9. Не подскажите в чем дело? Написал скрипт для вывода случайного текста:
    <?php
    $l[1]="text 1";
    $l[2]="text2";
    ...........
    $l[30]="text30";
    $n=rand(1,30);
    echo $l[$n];
    ?>
    на моем домашнем компьютере все получается нормально (у меня стоит Small HTTP server и php4), выгружаю скрипт на сервер и в результате выводится один и тот же текст (сайт у меня на http://www.wallst.ru   )


    Ответ:
    В хелпе по PHP сказано: "Не забудьте проинициализировать генератор случайных чисел" читайте же внимательно. в начале скрипта напишите: srand((double)microtime()*1200000); SPC spc@nm.ru


  10. Написал скрипт для вывода случайного текста:
    <?php
    $l[1]="text 1";
    $l[2]="text2";
    ...........
    $l[30]="text30";
    $n=rand(1,30);
    echo $l[$n];
    ?>
    на моем домашнем компьютере все получается нормально (у меня стоит Small HTTP server и php4), выгружаю скрипт на сервер и в результате выводится один и тот же текст (сайт у меня на http://www.wallst.ru )


    Ответ:
    Согласно руководства по PHP: Remember to seed the random number generator before use with srand().
    Что, собственно, означает: не забудьте активизировать генератор случайных чисел и пример -

    // seed with microseconds since last "whole" second
    srand ((double) microtime() * 1000000);
    $randval = rand();
    У меня - работает: http://www.eav.vov.ru/pract/gallery/index.rnd.html ,
    желаю удачи, Андрей.


    инициализи генератор случайных чисел:
    srand((double)microtime()*1000000);
    $random = rand(1,count($l));
    MaximatoR. (mailto:maximator_@rambler.ru)

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


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

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

PHP для всех! Программируем сами.            <!-- PHP banner --><a target="_blank"  href="http://virtual.bresttelecom.by/php/"><img    src="http://virtual.bresttelecom.by/php/php/php1.gif" border="0" width="88" height="31"
alt="
PHP для всех! Программируем сами."></a>

<!-- PHP banner end -->
PHP для всех! Программируем сами.            <!-- PHP banner --><a target="_blank"  href="http://virtual.bresttelecom.by/php/"><img    src="http://virtual.bresttelecom.by/php/php/php2.gif" border="0" width="88" height="31"
alt="
PHP для всех! Программируем сами."></a>

<!-- PHP banner end -->
PHP для всех! Программируем сами. <!-- PHP banner --><a target="_blank"  href="http://virtual.bresttelecom.by/php/"><img    src="http://virtual.bresttelecom.by/php/php/php3.gif" border="0" width="88" height="31"
alt="
PHP для всех! Программируем сами."></a>

<!-- PHP banner end -->
PHP для всех! Программируем сами. <!-- PHP banner --><a target="_blank"  href="http://virtual.bresttelecom.by/php/"><img    src="http://virtual.bresttelecom.by/php/php/php4.gif" border="0" width="88" height="31"
alt="
PHP для всех! Программируем сами."></a>

<!-- PHP banner end -->

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

  1. http://tweak.tut.by - Оптимизация и настройка компьютера. Если Вас интересуют различные аспекты настройки Вашего мегагерцевого друга, Вам надо посетить сайт посвященный настройке и оптимизации. Кроме того - список последних версий популярных программ и свежие новости, а так же чат, форум и многое другое!

  2. http://www.webclub.lv - Латвийский Клуб Веб-мастеров Наш сайт предназначен для всех кто творит и хочет творить Интернет. Мы предлагаем информацию, помощь и примеры по дизайну. Довольно обширная коллекция скриптов. Статьи, учебники и многое другое.

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

http://virtual.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 - самый информативный сайт об ударных инструментах, здесь находится огромное количество полезной информации для ударника:фотографии,статьи,табулатуры,самоучители,ссылки и много чего ещё!


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

Рассылки Subscribe.Ru
Программируем на PHP - вопросы и ответы
Новости сайта Виртуальный Брест
Оптимизация и настройка компьютера
Кроссворды еженедельно

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


Разное

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

Текстовая обменная сеть

TLE (http://www.tle.ru)   - это уникальная сеть обмена ссылками, позволяющая увеличить посещаемость Вашего сайта. Показывая у себя на сайте 100 баннеров, вы зарабатываете всего 80 показов Ваших баннеров. Показывая 100 рекламных блоков TLE.RU, Вы зарабатываете 255 показов Ваших ссылок! Почуствуйте разницу! Высокий CTR%, удобная панель управления, мгновенная регистрация. Спешите! Только до 15 мая каждому новому участнику 50,000 БЕСПЛАТНЫХ показов! Узнать подробности и стать участником сети можно на сайте http://www.tle.ru


автор рассылки Андрей Кухарчик



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

В избранное