Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
interaktivnoe_programirovanie_internet-prilozheniy (1).docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Установка почтовой заглушки

В каталоге C:\Server\bin\ создайте новый каталог с названием Sendmail. Теперь в этом каталоге создайте файл sendmail.php со следующим содержимым:

#!/usr/bin/env php

<?php

/* PHP.INI

* [mail function]

* ;SMTP = localhost

* ;smtp_port = 25

* ;sendmail_from = me@example.com

* sendmail_path = php.exe sendmail.php --dir C:\mail --open

*/

$is_windows = stristr(PHP_OS, 'WIN');

$options = getopt("", ['open', 'prepend', 'file:', 'dir:']);

$is_open = isset($options['open']);

$is_prepend = isset($options['prepend']);

$is_onefile = isset($options['file']);

$mail_dir = isset($options['dir']) ? $options['dir'] : sys_get_temp_dir() . '/mail';

$file_name = isset($options['file']) ? $options['file'] : mkname();

$file_path = $mail_dir . '/' . $file_name;

if (!is_dir($mail_dir)) {

mkdir($mail_dir, 0777, TRUE);

if (!is_dir($mail_dir)) {

die('Mail folder [' . $mail_dir . '] not created');

}

}

$stream = $is_onefile ? PHP_EOL . str_repeat("-=", 10) . date('Y-m-d H:i:s') . str_repeat("-=", 10) . PHP_EOL : '';

while (false !== ($line = fgets(STDIN))) {

//$stream .= ($is_windows ? str_replace("\n", PHP_EOL, $line) : $line);

$stream .= $line;

}

if ($is_prepend && file_exists($file_path)) {

$file_contents = file_get_contents($file_path);

$stream .= $file_contents;

}

file_put_contents($file_path, $stream, $is_prepend ? 0 : FILE_APPEND);

if ($is_open && $is_windows) {

pclose(popen("start /B notepad " . $file_path, "r"));

}

function mkname($i = 0) {

global $mail_dir;

$fn = 'mail_' . date('Y-m-d_H-i-s_') . $i . '.eml';

return file_exists($mail_dir . '/' . $fn) ? mkname( ++$i) : $fn;

}

Откройте конфигурационный файл PHP, размещённый в каталоге C:\Server\bin\PHP\php.ini, и добавьте туда одну строчку (см. рисунок 124):

sendmail_path = "C:\Server\bin\PHP\php.exe C:\Server\bin\Sendmail\sendmail.php --dir C:\Server\bin\Sendmail\emails"

Рисунок 124 – настройка почтовой заглушки в php.ini

Сохраните этот файл и перезапустите сервер. Теперь все отправленные письма будут сохраняться в каталоге C:\Server\bin\Sendmail\emails\.

Письма будут иметь расширение .eml и их можно будет открывать в программе Outlook или в обычном текстовом редакторе.

Тема 2. Использование php в веб-разработке Как работает php

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

PHP - язык создания сценариев, который давно перерос свое название. Дело в том, что PHP - это аббревиатура от слов Personal Home Page (персональная домашняя страница). Созданная Расмусом Лердорфом в 1994 году, первая версия PHP представляла собой набор функций для мониторинга посетителей веб-страницы.

Постепенно, в процессе усовершенствования, PHP из набора функций стал полноценным языком программирования. Его аббревиатура теперь расшифровывается как PHP HyperText Preprocessor - препроцессор гипертекста PHP.

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

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

Рисунок 125 - Процесс выполнения HTML-файла

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

PHP-скрипт, напротив, выполняется на стороне сервера. Когда пользователь посылает запрос на получение веб-страницы, содержащий PHP-код, сервер находит ее и отправляет сначала на обработку интерпретатору PHP. После того, как весь PHP-код будет исполнен, данные отправляются клиенту.

С точки зрения пользователя, это будет обычная HTML-страница, не содержащая никакого постороннего кода, так как он уже был выполнен до этого. Затем браузер обработает полученные данные и отобразит веб-страницу в соответствии с ними. Процесс выполнения PHP-файла представлен на рисунке 126.

Рисунок 126 - Процесс выполнения PHP-файла

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