HotMail своими руками, или Что может PHP


Оглавление (нажмите, чтобы открыть):

HotMail своими руками, или Что может PHP

Кидайте все линки на сабж!

Далее мои ссылки:
PHP
— Поисковый механизм для вашего сайта на PHP тут (http://rubooks.narod.ru/books/php/phpse.tgz)
— Руководство по РНР 3.0 (312K) тут (http://rubooks.narod.ru/books/php/rukophp3.exe)
— Введение в PHP (4K) тут (http://rubooks.narod.ru/books/php/vvedphp.tgz)
— PHP. Первые шаги. Действительно легкая смена дизайна (2K) тут (http://rubooks.narod.ru/books/php/php1step.rar)
— PHP3 для Windows (61К) тут (http://rubooks.narod.ru/books/php/php34win.zip)
— Использование шаблонов в PHP4 тут (http://rubooks.narod.ru/books/php/php4temp.zip)
— Учебник РНР (1,4M) тут (http://rubooks.narod.ru/books/php/phpbook.rar)
— Apache + Perl + Php3 + MySql (27К) тут (http://lib.rin.ru/cgi-bin/load/load.pl?open=107134)
— HotMail своими руками, или что может Php (18К) тут (http://lib.rin.ru/cgi-bin/load/load.pl?open=107135)
— Php — система разработки скриптов (8К) тут (http://lib.rin.ru/cgi-bin/load/load.pl?open=107131)
— Безопасный и удобный поиск на Php (5К) тут (http://lib.rin.ru/cgi-bin/load/load.pl?open=107141)
— Инструкция по сборке Php 4.03 betta (5К) тут (http://lib.rin.ru/cgi-bin/load/load.pl?open=107133)
— Классы в php3 (16К) тут (http://lib.rin.ru/cgi-bin/load/load.pl?open=113868)
— Триада Php and MySql and gd library (7К) тут (http://lib.rin.ru/cgi-bin/load/load.pl?open=113855)
— MySQL/PHP Database Application. Работа в php/MySQL связке. Английский язык тут (http://shelek.org.ru/books/php/eBook_MySQL-PHP_Database_Applications.ShareReactor.pdf)
— PHP Developer\’s Cookbook, Second Edition. Вторая редакция книги по php тут (http://shelek.org.ru/books/php/phpcooksecond.zip)
— Secure PHP development. Заголовок говорит о 50 практических аппликациях, для примера разработки защищенных приложений. тут (http://shelek.org.ru/books/php/securephpdev.zip)
— Web Application Development with PHP 4.0. Разработка аппликаций для интернета в среде на php 4.0 тут (http://shelek.org.ru/books/php/Webdevphp40.pdf)
— Школа PHP. Серия Школа — русские руководства (PHP). тут (http://shelek.org.ru/books/php/php.zip)
— Книга по PHP(4) Часть #1 (393Kb) тут (http://hslteam.narod.ru/book/php4_1.rar) Часть #2 (701Kb) тут (http://hslteam.narod.ru/book/php4_2.rar)
— PHP — работа с файлами 5KB тут (http://www.vebius.com.ru/book/php/fail.zip)
— Коллекции ссылок без базы данных на PHP 3KB тут (http://www.vebius.com.ru/book/php/link-coll.zip)
— Руководство по РНР 3.0 204KB тут (http://www.vebius.com.ru/book/php/phpmanual.zip)
— Что нового в PHP4? тут (http://www.vebius.com.ru/book/php/php4-news.zip)
— Отправка писем через PHP тут (http://www.vebius.com.ru/book/php/mail-php.zip)
— Вступление в PHP и MySQL тут (http://lib.km.ru/click_lib.asp? >
И наконец линк обязателен для просмотра — http://www.php.net/

Далее ссылки для тех кто собрался покупать бумажный учебник/руководство (красным выделены книги которые рекомендую для начинающих изучать, есть еще множество книг, но они почти не представляют никакой ценности ИМХО были выбраны лучшие на мой взгляд):

Профессиональное PHP программирование. Джезус Кастаньетто, Дипак Велиаф, Крис Сколло, Саша Шуман, Хариш Рават описание книги (http://books.dore.ru/bs/f1bid250.html)
PHP. Полезные приемы. А. А. Орлов описание книги (http://books.dore.ru/bs/f1bid1834.html)
Профессиональное PHP программирование (2-е издание) Ванкиу Чой, Джон Коггсхол, Кен Эгервари, Крис Сколло, Луис Аргерих описание книги (http://books.dore.ru/bs/f1bid1653.html)
Разработка Web-приложений с помощью PHP и MySQL (2-е издание) Лора Томсон, Люк Веллинг описание книги (http://books.dore.ru/bs/f1bid1648.html)
PHP: настольная книга программиста А. Мазуркевич, Д. Еловой описание книги (http://books.dore.ru/bs/f1bid1081.html)
Разработка Web-приложений на PHP и PostgreSQL. Руководство разработчика и администратора Ганс-Юрген Шениг, Эвальд Гешвинде описание книги (http://books.dore.ru/bs/f1bid320.html)
PHP 4. Специальный справочник Игорь Григин описание книги (http://books.dore.ru/bs/f1bid305.html)
Самоучитель PHP4 Дмитрий Котеров описание книги (http://books.dore.ru/bs/f1bid306.html)
Регулярные выражения Дж. Фридл описание книги (http://www.ru-design.ru/webbooks/1379940.htm)

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

Отправка e-mail в PHP

Обычно я пишу вступление о том, почему данная тема так важна для изучения. Но не в этот раз, потому что здесь, уверен, ни у одного человека не возникнет вопрос: «Зачем отправлять e-mail в PHP?». Поэтому предлагаю сразу приступить к делу и узнать об этом более подробно, тем более, что проще реализации отправки e-mail через PHP и придумать нельзя, так что поймут даже те, кто не знаком с PHP вообще.

Для начала давайте с Вами разберёмся немного с теорией. Скучно, но поверьте важно. Для отправки e-mail необходим SMTP-сервер. На большинстве платных хостингах он обязательно имеется. Однако, если такой возможности нет (допустим, хостинг бесплатный или очень дешёвый), то тогда можно воспользоваться сторонним SMTP-сервером (например, mail.ru). То есть главное: для отправки необходим SMTP-сервер.

Во-вторых, чтобы принимать e-mail необходим POP-сервер. К чему я всё это говорю. А к тому, что очень часто люди спрашивают на форумах: «Почему у меня не работает отправка e-mail в PHP?«. А при этом люди пытаются отправить письма с сервера, на котором вообще нет SMTP. Очень важно: PHP e-mail не отправляет! Отправляет e-mail приложение sendmail, которое имеется на операционных системах Unix, на которых и стоят большинство серверов. А PHP просто передаёт команды этому приложению. Надеюсь, объяснил понятно. Поэтому первое, что необходимо сделать — это раздобыть приложение sendmail. Но порадую тех, кто пользуется пакетом Denwer, так как у них это приложение уже встроено. Правда, с одной особенностью. Реальной отправки писем не происходит — они все складываются в директорию «tmp/!sendmail«. Но если письмо, которое Вы отправили в PHP, там оказалось, то можете быть уверены, что на 99% на реальном хостинге всё будет работать. Хотя, если Вам очень хочется по-настоящему отправлять e-mail, то Вы можете скачать sendmail, настроить его на какой-нибудь SMTP-сервер, например, mail.ru, затем изменить путь к sendmail в php.ini (настройки PHP) и дальше уже радоваться жизни.

А теперь переходим к PHP. Для отправки e-mail используется всего одна функция — mail(). Принимает эта функция четыре параметра, три из которых являются обязательными:

Как видите, всё интуитивно понятно: кому отправлять, какая тема и само сообщение. Если Вы используете пакет Denwer, то после запуска скрипта, Вы сможете найти файл в директории «tmp/!sendmail«, в котором и содержатся данные Вашего письма. Открыть эти файлы можно либо в блокноте, но лучше открыть их в какой-нибудь почтовой программе (например, The Bat или Microsoft Outlook).

Я не даром написал вперемешку русский и английский текст, чтобы проверить кодировку. Очень часто она распознаётся неправильно, и в результате, пользователи видят «абракадабру«. Чтобы этого избежать необходимо задать кодировку. И как раз для кодировки, а также для других особых параметров и существует четвёртый аргумент функции mail():

Теперь давайте расшифрую то, что здесь написано. В переменной headers мы задали следующие параметры: в поле «От кого» будет стоять «abc@gmail.com» (то есть сообщения можно отправлять далеко не от своего имени). Сообщение также является обычным текстовым (text/plain) в кириллической кодировке (windows-1251), то есть в нашей с Вами родной кодировке, в которой имеется русский язык и английский. И, кстати, «\n» — это переход на новую строку (аналог
в HTML).

Также сообщения можно отправлять в HTML-формате. Для этого достаточно всего лишь заменить «text/plain» на «text/html«. И Вы сможете в сообщении использовать HTML-теги. Только не забывайте, что всякие теги, наподобие: «

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 20 ):

    А как сделать автоматическое сообщение вот такие сообщения например это «вместо_этого_текста_приклепленный_фаил Вот файл который вы заказали с вместо_этого_текста_название_сайта. Если вы не заказывали данный файл просто игнорируйте это сообщение.» или «вместо_этого_текста_имя_пользователя на ваш комментарий ответили!»?

    Для этого надо делать шаблон письма, например, такой: «%user% на Ваш комментарий ответили». Затем через PHP перед отправкой надо заменить с помощью функции str_replace %user% на конкретное имя пользователя.

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

    Это надо сделать в цикле. Если же пользователей много, то здесь всё гораздо сложнее, так как сервер может не выдержать. Для отправки письма большому количеству пользователей нужно запускать скрипт много раз, каждый раз отправляя небольшие партии. Например, при первом запуске отправить 20 писем. При втором ещё 20, при третьем ещё 20 и так далее, пока не будут отправлены все письма. Интервал надо делать хотя бы 30 секунд.

    А если написать \r\nContent-type: text/html; charset=windows-1251 \r\n»; mail ($to, $subject, $message, $headers); ?> то письмо отправится на почтовые ящики 1, 2, 3? И как сделать такое уведомление автоматическое, например пользователь отправил письмо на форум, и ему на почтовый ящик такое письмо «Вы отправили новое сообщение на форум вместо_этого_текста_название_сайта»?

    Да, письмо дойдёт до всех трёх ящиков. Однако, минус данного способа: каждый из получателей увидит адреса других получателей. Сделать уведомление автоматическим элементарно. Например, при добавлении нового сообщения на форум, надо вызвать функцию mail(). Тогда сразу же придёт уведомление.

    Спасибо, а как сделать каждый из получателей не видел адрес других получателей? Или можете сказать как Вы делали такие уведомления?

    Надо через цикл (например, for) по очереди вызывать функцию mail, каждый раз отправляя одному получателю.

    Михаил, очень нужна ваша помощь. на моём тестовом хостинге не работает функция «mail», но там можно через сторонний SMTP сервер. Расскажите как им пользоваться,и как его настроить. Прошу расскажите мне или напишите статью. Оооочень надо

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

    извините за нелепый вопрос: а как на этот скрипт попадает пользователь? ведь РНР «сидит» и работает на сервере. и можно ли каким то образом РНР-скрипты вставлять в HTML страницы.

    Пользователь к нему обращается, отправляя запрос. В HTML-страницах нельзя использовать PHP, но в PHP-коде можно использовать HTML.

    Как настроить почту или отправка Email PHP

    Вступление

    Функция PHP mail() предназначена для отправки электронной почты средствами PHP, иными словами – отправка email PHP. Это удобно, если вы хотите создать форму контактов на вашем сайте. С функцией PHP mail() электронные письма или email могут быть отправлены при помощи простого PHP-скрипта. В этом руководстве вы узнаете, как производится отправка email PHP и протестируете функцию PHP mail().

    Что понадобится

    Прежде, чем приступить к действиям из руководства, проверьте наличие:

    • Доступ к вашему хостинг аккаунту
    • Включённая функция PHP mail()

    Шаг 1 – Создание нового файла PHP

    Первым делом, нужно создать PHP-файл на вашем хостинг аккаунте. Ваш PHP-файл должен быть доступен по имени домена, следовательно, его нужно разместить в директории public_html. Для создания файла можете использовать File Manager или FTP client. Назовите свой файл testmail.php.

    Шаг 2 – Редактирование PHP-файла

    Теперь разместите следующий код внутри файла testmail.php:

    • Первые две строки включают сообщения об ошибках, таким образом вы сможете увидеть, если скрипт содержит ошибки и не запускается.
    • $from – адрес отправителя email-а. Многие хостинг-провайдеры не разрешают использовать случайный email-адрес, поэтому вам нужно ввести email-адрес, созданный для вашего доменного имени в этом поле для успешной авторизации и отправки писем.
    • $to – адрес получателя email-а. Если вы отправляете email для проверики, то здесь должен быть ваш собственный email адрес.
    • $subject – тема электронного письма.
    • $message – содержимое сообщения email-а.
    • $headers – у каждого email-а есть заголовки. Они содержат важную информацию, такую как От (From) email-адрес.
    • mail($to,$subject,$message, $headers) – это функция PHP, которая выполняет отправку писем. Ничего не изменяйте в этой строке.
    • echo “Ваше email сообщение успешно отправлено.” – PHP функция echo отобразит сообщение на экране, как только скрипт успешно отработает.

    Шаг 3 – Запуск скрипта и отправка email PHP

    Если (как это рекомендовалось выше) вы разместили PHP-скрипт в директории public_html, вы можете запустить скрипт путем доступа по адресу yourdomainname/testmail.php. Если вы видите сообщение Ваше email сообщение успешно отправлено. в вашем браузере – это значит, что email отправлен успешно и вы можете проверит его во входящих письмах вашей электронной почты (не забудьте проверить папки SPAM/JUNK).

    Если вы получили какую либо ошибку, проверьте все ли детали вы заполнили правильно. Если ошибка не появилась в барузере, вы можете проверить файл error_log в вашем аккаунте. Если вы не уверенны в том, как проверять этот файл посмотрите руководство по ссылке error logs.

    Заключение

    Теперь вы знаете как происходит отправка email PHP. Хотя это руководство предназначено для тестирования, такой же синтаксис можно использовать для разработки контактной формы на вашем сайте. Однако, если вам понадобится более сложная отправка email PHP, то скрипты для этого можно поискать здесь: PHPMailer project. В проекте есть встроенная поддержка SMTP, обширный error_logs на 47 языках и много других полезных функций.

    HotMail своими руками, или Что может PHP

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

    Возможны 2 выхода:

    1. В незнакомом для вас месте настраивать почтовый клиент, вбивать логин/пароль, создавать новый аккаунт и др., получать почту, затем аккаунт удалять, чтобы никто больше не посмотрел. (не уверен что этот вариант в некоторых интернет-кафе прокатит, вдруг там нет почтового клиента, или изменения в настройках заблокированы)

    Мастер Йода рекомендует:  Безопасность поисковых систем в корпоративной среде

    2. Написать собственный веб-интерфейс и разместить его на каком-либо бесплатном/платном сервере, поддерживающем исполнение скриптов (благо такие есть) и смотреть почту через браузер ни о чём не заботясь.

    По-моему, второй вариант удобней.

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


    Bill rulz ^^

    Группа: Участник
    Сообщений: 1418
    Регистрация: 28.09.2003
    Пользователь №: 24

    Bill rulz ^^

    Группа: Участник
    Сообщений: 1418
    Регистрация: 28.09.2003
    Пользователь №: 24

    General Description
    Purpose: Allow PCs, Macs, etc. to download mail from server

    Port number 110

    POP3 uses ASCII only

    Commands to server:

    A keyword followed by zero or more arguments terminated with a CRLF.
    Keywords are 3 or 4 uppercase characters
    A single space separates the keyword from arguments and arguments from other arguments.
    Arguments are at most 40 characters in length and cannot contain spaces.

    Doc 12, POP3 Protocol Slide # 3
    Description (continued)

    Response from server:

    Status keyword followed by additional information
    The status keyword is either «+OK» or «-ERR»
    A single line response ends in CRLF
    Multi line responses end each line with CRLF. The multi line response is terminated with a CRLF.CRLF
    If a line starts with a «.», a «.» will be inserted in front of it

    A POP3 server may have an autologout timer

    A Server must wait at least 10 minutes before timing out a client

    The POP3 server on saturn times out in 2 minutes!

    Doc 12, POP3 Protocol Slide # 4
    States
    AUTHORIZATION

    Must log in with password before entering TRANSACTION state

    Client can request actions of server, get mail for example

    Updates mail box to reflect actions taken in TRANSACTION state.

    Doc 12, POP3 Protocol Slide # 5
    AUTHORIZATION State
    Server acknowledges connection from client with

    +OK UCB Pop server (version 2.1.2-R3) at saturn starting.

    Valid commands: USER, PASS, APOP, QUIT

    PASS must come after USER

    shelly: [14]—$ telnet saturn.sdsu.edu 110

    Connected to saturn.sdsu.edu.

    Escape character is ^].

    +OK UCB Pop server (version 2.1.2-R3) at saturn starting.

    +OK Password required for turtle

    +OK turtle has 21 message(s) (44285 octets).

    Doc 12, POP3 Protocol Slide # 6
    TRANSACTION State
    Valid commands: STAT, LIST, RETR, RSET, QUIT

    Doc 12, POP3 Protocol Slide # 7
    LIST
    Arguments:

    An optional message number

    Size of message in octets

    +OK 22 messages (45595 octets)

    (messages 3 — 21 deleted to save space)

    Doc 12, POP3 Protocol Slide # 8
    RETR
    Arguments:

    A message number

    Received: from [130.191.9.18] (ebb2p9.sdsu.edu) by saturn.sdsu.edu (8. 8.8/8.8. with SMTP id UAA29486 for Thu, 27 Feb 1997 6:22:19 -0800 (PST)

    X-Sender: andrew@contigo.com (Unverified)

    Doc 12, POP3 Protocol Slide # 9
    DELE
    Arguments:

    A message number to delete

    Marks a message to be deleted in the UPDATE state

    A positive response

    A positive response

    Send POP3 server to UPDATE state

    Doc 12, POP3 Protocol Slide # 10
    UPDATE State
    Updates mail box to reflect transactions taken during the transaction state, then logs user out.

    If session ends by any method other than the QUIT command, the UPDATE state will not be reached. In this case, all changes are ignored.

    Doc 12, POP3 Protocol Slide # 11
    Optional POP3 Commands
    TOP
    Arguments:

    A message number

    Top 10 lines of indicated message

    Only allowed in TRANSACTION state

    An optional message number

    A unique ID for the specified message or unique IDs for all messages if no argument was specified.

    +OK 1 826312760.001

    Used by clients to see what message have been seen already


    Doc 12, POP3 Protocol Slide # 12
    APOP
    Arguments:

    A mailbox name and a MD5 string

    (MD5 == Message Digest algorithm #5)

    If MD5 string is correct, move to the TRANSACTION state.

    The digest is computed from the string returned by the initial welcome= response plus the users password.

    Prevents the password from being sent over the network.

    Prevents replay attacts (how?)

    Doc 12, POP3 Protocol Slide # 13
    Observations about POP3

    Short RFC. Only 22 pages.

    Is it «Well defined»?

    Is it «Extendible»?

    Is it «Available»?

    How easy/hard is it to write a POP3 server?

    How easy/hard is it to write a POP3 client?

    Is the syntax of the protocol separated from the semantics of the protocol?

    Частый гость

    Группа: Участник
    Сообщений: 291
    Регистрация: 12.11.2003
    Пользователь №: 895

    HotMail своими руками, или Что может PHP
    Виктор Хименко
    В этой статье я хотел бы продемонстрировать, что создание работоспособных и полезных динамических Web-узлов вовсе не такая сложная задача, как может показаться при чтении текстов, описывающих интерфейс CGI. На самом деле подобная работа (по крайней мере, при использовании Linux) больше всего напоминает игру The Incredible Machines, где нужно кремнем высечь искру, чтобы свет упал на солнечную батарею, от которой срабатывает сверхсовременный компьютер. Здесь тоже все, как правило, собирается из компонентов, которые оказались под рукой.

    В качестве примера мы рассмотрим создание почтовой службы на Web-сервере — WebMail — на основе языка PHP3 с максимальным использованием готовых компонентов. За кадром останутся создание новых пользователей, их регистрация в базе данных и т. п. Наша почта, кроме того, не будет обрабатывать письма с вложениями и в кодировках, отличных от KOI8-R, поддерживать записные книжки и т. п. — все это лишь увеличило бы размеры сценариев, не дав ничего принципиально нового.

    Компоненты
    Вначале о «готовых компонентах». Я уже упомянул о том, что все описанное ниже рассчитано на использование Linux. Однако существующие дистрибутивы этой ОС настолько различаются по комплектации, что вряд ли удастся построить пример, который годился бы для любой версии. Поэтому я ограничусь версией, с которой лучше всего знаком, — KSI-Linux 2.0 (http://www.ksi-linux.com). Если у вас другой вариант Linux, например RedHat 5.2 или Debian 2.0, то вам, скорее всего, потребуется получить некоторые компоненты из Internet или перекомпилировать уже имеющиеся.

    Нам понадобятся Web-сервер Russian Apache 1.3.x rus/PL 27.4, PHP 3.0.6 с поддержкой протокола IMAP4r1 и почтовый сервер IMAP4r1. Благодаря Russian Apache мы будем, по крайней мере отчасти, избавлены от проблем с кодировками: независимо от кодировки, используемой клиентом, данные на сервер всегда будут посылаться в KOI8-R (это настройка Russian Apache по умолчанию). Сервер IMAP4r1 позволит нам манипулировать почтовым ящиком, не описывая в явной форме права доступа (связываясь с этим сервером, вы указываете свое имя и пароль, и он сам решает все проблемы с правами). И наконец, PHP 3.0.6 с поддержкой протокола IMAP4r1 даст возможность работать с сервером IMAP4r1, не реализуя самостоятельно соответствующий протокол, который весьма и весьма нетривиален.

    Здесь многие зададут вопрос: а почему не perl? Дело в том, что, хотя язык perl — стандартная «рабочая лошадка» для создания Web-узлов, у него есть определенные недостатки. Интерпретатор perl существенно сложнее интерпретатора PHP и требует для работы больше ресурсов компьютера. Кроме того, это не интерпретатор в точном смысле слова: он компилирует программу в специализированный псевдокод, который затем немедленно исполняется. Если в программе есть циклы, такой подход может дать существенный выигрыш, но если нет (как это часто бывает в простых сценариях для Web-сервера — например, во всей нашей реализации WebMail будет всего один цикл), накладные расходы не окупаются. Применение mod_perl — дополнительного модуля Apache — позволяет избежать многократной перекомпиляции сценариев, но при этом к памяти сервера предъявляются еще более высокие требования.

    Коротко о PHP
    Теперь несколько слов о том, что же такое PHP. Это интерпретируемый язык для создания активных Web-страниц. Программа на PHP, подобно тексту на JavaScript, VBScript или ASP, вставляется в HTML-файл. Начало и конец программы отмечаются специальными скобками . Текст вне этих скобок PHP не интерпретирует: он передается Web-браузеру «как есть». В листинге 1 приведена реализация на PHP «вечного» примера — счетчика. Как видите, это совершенно обычный HTML-файл, однако в том месте, где должно стоять количество посещений, стоит сценарий на PHP3, который в качестве результата своей работы выводит число посещений страницы1.

    Синтаксис PHP основан на синтаксисе языков Си, Java и perl и довольно подробно описан в руководстве, которое входит в комплект поставки (его также можно взять на узле http://www.php.net/). Способы заставить сервер правильно реагировать на HTML-файлы со вставками на PHP, вообще говоря, различны для разных серверов, но чаще всего бывает достаточно дать имени файла расширение .php3.

    Итак, мы хотели бы иметь возможность читать и отправлять почту с помощью Web-браузера. Видимо, будет разумно сделать интерфейс похожим, скажем, на Netscape Messenger: окно разделено по горизонтали на две части, в верхней находится список писем в нашем почтовом ящике на сервере, в нижней — текущее письмо. Но перед тем как показать пользователю HTML-файл с описанием фреймов, мы потребуем от него ввести свое имя и пароль (при неправильно введенном пароле он получит файл, содержащий сообщение об ошибке). Эту функцию будет осуществлять файл index.php3, показанный в листинге 2. Давайте посмотрим на него поближе.

    Прежде всего стоит обратить внимание на то, что скобка

    HotMail своими руками, или Что может PHP

    CREATE DATABASE mail_collector DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

    CREATE TABLE mailboxes ( id int PRIMARY KEY NOT NULL AUTO_INCREMENT, email varchar(50) NOT NULL, password varchar(50) NOT NULL, host varchar(50) NOT NULL, port varchar(50) NOT NULL, is_ssl bit NOT NULL, is_deleted bit NOT NULL, last_message_uid int NOT NULL );

    INSERT INTO mailboxes(email,password,host,port,is_ssl,is_deleted) VALUES (‘mail.collector.kz@gmail.com’,’mail.collector’,’imap.gmail.com’,’993′,1,0,0), (‘mail.collector.kz@mail.ru’,’mail.collector’,’imap.mail.ru’,’143′,0,0,0), (‘mail.collector.kz@yandex.ru’,’mail.collector’,’imap.yandex.ru’,’993′,1,0,0)

    CREATE TABLE messages ( id int PRIMARY KEY NOT NULL AUTO_INCREMENT, mailbox_id int NOT NULL, uid int NOT NULL, subject varchar(255), body_text text, body_html text, attachment_count int, header text, message_date datetime, create_date datetime NOT NULL, modify_date datetime, is_ready bit NOT NULL );

    ALTER TABLE messages ADD CONSTRAINT fk_messages_user_id FOREIGN KEY (mailbox_id) REFERENCES mailboxes(id);

    CREATE TABLE addresses ( id int PRIMARY KEY NOT NULL AUTO_INCREMENT, message_id int NOT NULL, type varchar(10) NOT NULL, email varchar(50) NOT NULL );

    ALTER TABLE addresses ADD CONSTRAINT fk_addresses_message_id FOREIGN KEY (message_id) REFERENCES messages(id);

    CREATE TABLE attachments ( id int PRIMARY KEY NOT NULL AUTO_INCREMENT, message_id int NOT NULL, file_name varchar(255) NOT NULL, mime_type varchar(255) NOT NULL, file_size int NOT NULL, location varchar(255) NOT NULL );

    ALTER TABLE attachments ADD CONSTRAINT fk_attachments_message_id FOREIGN KEY (message_id) REFERENCES messages(id);

    u );//завершаем транзакцию //закрываем IMAP-поток imap_close($mail); > ?>

    HotMail своими руками, или Что может PHP

    Профиль
    Группа: Экс. модератор
    Сообщений: 292
    Регистрация: 12.7.2004
    Где: Харьков, Украина

    Репутация: 23
    Всего: 53

    3. Apache + Perl + PHP3 + MySQL для Windows 95/98: руководство по установке
    Формат:html
    http://212.35.160.25/infocity/inet/win_apache.zip

    6. Инструкция по сборке PHP 4.03 betta под WinNT 4.0 с использованием MSVC++ 5.или 6.0
    Формат:html
    http://212.35.160.25/infocity/inet/buildphp.zip

    12. Триада PHP & MySQL & gd library Сервис счетчиков обращений
    Формат:html
    http://212.35.160.25/infocity/inet/count.zip

    16. Букварь по PHP и MySQL
    Учебник (версия 1.1 от 16.05.2000) — 31 с.
    Автор:Качанов А. , Ткаченко В., Головин А.
    Первые шаги в изучении PHP и способах взаимодействия его с БД MySQL.
    http://xammepbook.narod.ru/doc/php/php_inet014.zip

    17. Учебник РНР 4
    Автор:Stig Saether Bakken, Egon Schmid и др.
    Справочник по функциям, по языку, разъяснения по возможностям языка PHP и другая информация.
    Формат:chm
    Size:2683 Kb
    http://php.net.ua/manual/download/php4_ru.chm
    Формат:html
    Size:1370 Kb
    http://pyramidin.narod.ru/php42.rar

    18. PHP: Новый тип навигационной системы при постраничном выводе
    Автор:Felenka
    Статья + текст класса и функции — code.zip
    http://www.opennet.ru/docs/RUS/php_navigation/code.zip
    Формат:html
    Size:7 Kb
    http://xammepbook.narod.ru/doc/php/php_nav.zip

    19. PHP 4 на практике
    практическая информациия для web-программистов
    Формат:html
    Size:617 Kb
    http://www.zipsites.ru/programming/php4/php4.rar

    20. Руководство PHP версии 4
    Русский перевод учебника PHP 4
    В распакованном виде более 50 мегов.
    Формат:html
    Size:1657 Kb
    http://script-info.net/bin/php4rus.exe

    21. Школа PHP
    Автор:Metaphor
    Небольшое толковое руководство по PHP
    Формат:pdf
    Size:284 Kb
    http://podgoretsky.com/ftp/Docs/PHP/php.pdf

    22. PHP — уроки
    Учебный курс
    Цикл полезных статей для начинающих
    Формат:chm
    Size:80 Kb
    http://xammepbook.narod.ru/doc/php/phplesson.zip

    24. Самоучитель PHP 4
    Автор:Котеров Д.В.
    Учебное пособие — 576 с., ил.
    Для программистов и web-разработчиков
    Формат:pdf
    Size:3953 Kb
    http://samouchka.stsland.ru/books/ebooks/s. chitel_php4.zip

    25. PHP: авторизация доступа
    Автор:Орлов Антон
    Статья (глава из книги)
    Формат:doc
    Size:170 Kb
    http://orlovs.pp.ru/comp/phpch08.rar

    Guest
    Дата 17.12.2004, 12:54 (ссылка) | (голосов: ) Загрузка .

    Профиль
    Группа: Vingrad developer
    Сообщений: 3876
    Регистрация: 22.7.2002
    Где: Москва

    Репутация: 6
    Всего: 137


    Было время, я увлёкся PHP. Собрал тогда неплохую (по моему мнению) коллекцию статей, которые помогают понять суть программирования на этом языке. Кое-что не относится непосредственно к PHP, но является неотъемлемой его частью и очень важно для понимания этой самой сути.
    Думаю, для начинающих изучать этот язык коллекция окажется полезной.

    На 18.12.2004 все ссылки рабочие.

    Это сообщение отредактировал(а) dm9 — 19.12.2004, 14:21

    dm9
    Дата 18.12.2004, 21:27 (ссылка) | (нет голосов) Загрузка .

    Профиль
    Группа: Экс. модератор
    Сообщений: 292
    Регистрация: 12.7.2004
    Где: Харьков, Украина

    Репутация: 23
    Всего: 53

    30. [url=ftp://files.zipsites.ru/books/programming/PHP/Professional%PHP Programming.pdf]Professional PHP Programming[/url]
    Формат: pdf
    Размер:18,7 Мб

    Это сообщение отредактировал(а) July — 30.1.2006, 13:22

    July
    Дата 26.12.2004, 12:34 (ссылка) | (нет голосов) Загрузка .
    Мастер Йода рекомендует:  Apache Perl PHP4 MySQL для Windows 9598 руководство по установке

    Профиль
    Группа: Экс. модератор
    Сообщений: 292
    Регистрация: 12.7.2004
    Где: Харьков, Украина

    Репутация: 23
    Всего: 53

    July
    Дата 4.1.2005, 18:27 (ссылка) | (нет голосов) Загрузка .

    Профиль
    Группа: Участник Клуба
    Сообщений: 3497
    Регистрация: 31.3.2002
    Где: Лес

    Репутация: 1
    Всего: 115

    ———————————
    Самоучитель PHP4
    ———————————
    Д. Котеров
    Серия: Самоучитель
    Издательство: БХВ-Петербург, 2001 г.
    Мягкая обложка, 576 стр.
    ISBN 5-94157-071-6
    Тираж: 4000 экз.

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

    — Общий шлюзовой интерфейс CGI (Common Gateway Interface);
    — Синтаксис и возможности языка PHP;
    — Выбор инструментария для разработки Web-программ;
    — Конфигурирование Web-сервера Apache при разработке сайта;
    — Работа с базами данных MySQL и язык SQL.

    RA
    Дата 19.3.2005, 20:22 (ссылка) | (нет голосов) Загрузка .

    Профиль
    Группа: Участник Клуба
    Сообщений: 2023
    Регистрация: 23.1.2005
    Где: Екатеринбург

    HotMail своими руками, или Что может PHP

    На серверах виртуального хостинга разрешена отправка почты с сайта только при помощи функции PHP mail().

    Email, с которого будет происходить отправка писем с сайта, прописывается в панели управления хостингом ISPmanager.

    Этот же email необходимо будет прописать в настройках сайта. Совпадение email — обязательное условие корректной работы функции PHP Mail.

    Рекомендуется указывать email вида: любое_удобное_имя@домен_вашего_сайта .

    Указание ящиков вида: @gmail.com, @yandex.ru и др. приведет к попаданию писем в спам!

    Для настройки необходимо зайти в ISP manager >> раздел «World Wide Web» >> «WWW домены»

    Выбрать домен и в поле «E-Mail администратора» указать электронный ящик от которого планируется отправлять сообщения.

    Для проверки работы php mail() на сервере, в корневой папке сайта необходимо создать файл testmail.php cо следующим содержимым:

    $message = «test php mail»;

    // На случай если какая-то строка письма длиннее 70 символов мы используем wordwrap()

    $message = wordwrap($message, 70);

    mail(‘caffeinated@example.com’, ‘My Subject’, $message);

    где caffeinated@example.com email, на который должно прийти сообщение.

    Для проверки нужно исполнить скрипт, сделать это можно через браузер, открыв следующую ссылку:

    где domain.com название сайта, в корне которого был создан скрипт testmail.php.

    Если сообщение «test php mail» пришло на указанный email, то функция php mail работает корректно.

    Пример взят из официальной документации по PHP mail http://php.net/manual/ru/function.mail.php

    Отправка почты с CMS Drupal 7.

    По умолчанию все сообщения с Drupal7 отправляются по средствам php mail(), email отправителя указывается при установке Drupal7.

    Необходимо, чтобы email отправителя в Drupal совпадал с «e-mail Администратора» в панели управления хостингом ISPmanager.

    В дальнейшем email отправителя можно будет изменить в административной части Drupal, в разделе: Administration » Configuration » System

    Если отправка сообщений с сайта не работает, необходимо проверить, возможно включен модуль для работы почты посредством smtp. Для проверки зайдите в раздел модулей, в административной части сайта Drupal: Administration » Modules

    Отключите модуль SMTP, убрав «галочку» возле модуля и сохранив настройку «Save configuration».

    Возможно, что отправка сообщений посредством SMTP реализована и другим способом. Для отправки сообщений через SMTP необходимо, чтобы на сайте присутствовал PHPMailer. Файлы PHPMailer по умолчанию находятся в директории ./sites/all/modules/smtp/phpmailer.

    Существуют еще несколько способов реализации отправки сообщений сайта через php mail и SMTP. С ними вы можете ознакомиться в документации к CMS

    Все сообщения с сайтов на Drupal отправляются посредством внутреней функции Druapl drupal_mail(). Через данную функцию реализовано большинство модулей для отправки. Настройки находятся в файле ./includes/mail.inc

    В частности за отправку сообщений отвечают следующие строки:

    drupal_mail($module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE)

    Отправка почты с CMS Joomla 3

    По умолчанию все сообщения с Joomla отправляются с помощью php mail(), email отправителя указывается при установке Joomla.

    Необходимо, чтобы email отправителя в Joomla совпадал с «e-mail Администратора» в панели управления хостингом ISPmanager.

    В дальнейшем email отправителя можно изменить в административной части Jommla в разделе: System » Global Configuration » Server Settings » Mail Settings

    В поле «Mailler» нужно выбрать «PHP Mail» или «Sendmail», а так же в поле «SMTP Authentication» выбрать «No».

    В Joomla настройки для отправки почты могут быть прописаны в конфигурационном файле configuration.php, который расположен в корневой директории сайта.

    В configuration.php присутствуют следующие строки:

    public $mailer = ‘mail’;

    public $mailfrom = ‘admin [at] yourdomain.com’;

    public $fromname = ‘J25 Демо’;

    public $sendmail = ‘/usr/sbin/sendmail’;


    public $smtpauth = ‘0’;

    public $smtphost = ‘localhost’;

    public $smtpsecure = ‘none’;

    public $smtpport = ’25’;

    $mailer : ‘mail’ использует функцию mail PHP; ‘sendmail’ использует SMTP почту на сервере.

    $mailfrom : адрес From. Адрес электронной почты, который использует Joomla для отправки почты с сайта.

    $sendmail : путь, по которому распложена программа Sendmail. Используется, если $mailer установлено в Sendmail.

    $smtpauth : если SMTP сервер требует аутентификацию для отправки почты, то устанавливается в ‘1’. Иначе ‘0’. Используется, если $mailer установлено в Sendmail.

    $smtpuser : имя пользователя для доступа к SMTP серверу. Используется, если $mailer установлено в Sendmail.

    $smtppass: пароль для доступа к SMTP серверу. Используется, если $mailer установлено в Sendmail.

    $smtphost : SMTP хост. Адрес SMTP сервера при отправке почты. Используется, если $mailer установлено в Sendmail.

    $smtpsecure : выберите модель безопасности, которую использует ваш SMTP сервер: SSL или TLS. По умолчанию выключено. Используется, если $mailer установлено в Sendmail.

    $smtpport : SMTP порт. Наименее защищенные серверы используют порт 25.

    В Joomla много модулей, каждый из которых может использовать собственную систему отправки почты с сайта, не зависящую от глобальных настроек самой CMS Joomla. В связи с этим возможна ситуация, когда глобально настроена отправка через php mail, а в конкретном модуле, который, к примеру, отвечает за «Обратную связь», через SMTP.

    Отправка почты с CMS WordPress 4

    По умолчанию все сообщения с WordPress отправляются при помощи php mail(), email отправителя указывается при установке WordPress.

    Необходимо, чтобы email отправителя в WordPress совпадал с «e-mail Администратора» в панели управления хостингом ISPmanager.

    В дальнейшем email отправителя можно изменить в административной части WordPress в разделе: Settings » General

    Если сообщения с сайта не отправляются, нужно проверить есть ли плагин по отправке писем через SMTP, если есть то отключить.

    Зайдите в раздел: Plugins » Installed Plufins

    Если присутствует плагин по отправке через SMTP, то его нужно отключить.

    Иногда может возникнуть ошибка:

    «Сообщение не удалось отправить. Возможная причина: сервер не поддерживает функцию mail(). »

    Для ее решения нужно отредактировать файл на сайте:

    Найти в этом файле строчки:

    // Set to use PHP’s mail()

    // Set to use PHP’s mail()

    Различные модули WordPress могут использовать для отправки писем как php mail(), так и SMTP вне зависимости от глобальных настроек. В связи с этим возможна ситуация, когда глобально настроена отправка через php mail, а в модуле который, к примеру, отвечает за «Обратную связь», через SMTP.

    Обращаем ваше внимание, что за инфомацией по дополнительным настройкам указанных и других CMS необходимо обращаться к документации CMS.

    HotMail своими руками, или Что может PHP

    Освойте бесплатно наиболее простой, быстрый и гибкий способ создавать адаптивные веб-сайты.

    Дизайн лендинга

    Создавайте дизайн любых сайтов — для себя и на заказ!

    Популярное

    • Главная
    • ->
    • Материалы
    • ->
    • Валидация и очистка данных средствами PHP

    Reg.ru: домены и хостинг

    Крупнейший регистратор и хостинг-провайдер в России.

    Более 2 миллионов доменных имен на обслуживании.

    Продвижение, почта для домена, решения для бизнеса.

    Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

    Бесплатный Курс «Практика HTML5 и CSS3»

    Освойте бесплатно пошаговый видеокурс

    по основам адаптивной верстки

    на HTML5 и CSS3 с полного нуля.

    Фреймворк Bootstrap: быстрая адаптивная вёрстка

    Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.

    Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.

    Верстайте на заказ и получайте деньги.

    Что нужно знать для создания PHP-сайтов?

    Ответ здесь. Только самое важное и полезное для начинающего веб-разработчика.

    Узнайте, как создавать качественные сайты на PHP всего за 2 часа и 27 минут!

    Создайте свой сайт за 3 часа и 30 минут.

    После просмотра данного видеокурса у Вас на компьютере будет готовый к использованию сайт, который Вы сделали сами.


    Вам останется лишь наполнить его нужной информацией и изменить дизайн (по желанию).

    Изучите основы HTML и CSS менее чем за 4 часа.

    После просмотра данного видеокурса Вы перестанете с ужасом смотреть на HTML-код и будете понимать, как он работает.

    Вы сможете создать свои первые HTML-страницы и придать им нужный вид с помощью CSS.

    Бесплатный курс «Сайт на WordPress»

    Хотите освоить CMS WordPress?

    Получите уроки по дизайну и верстке сайта на WordPress.

    Научитесь работать с темами и нарезать макет.

    Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!

    Хотите изучить JavaScript, но не знаете, как подступиться?

    После прохождения видеокурса Вы освоите базовые моменты работы с JavaScript.

    Развеются мифы о сложности работы с этим языком, и Вы будете готовы изучать JavaScript на более серьезном уровне.

    *Наведите курсор мыши для приостановки прокрутки.

    Валидация и очистка данных средствами PHP

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

    Введение

    Я всегда чувствовал, что писать код на PHP легко, а еще легче писать на PHP плохой код. Широкому распространению PHP в сфере веб-разработки способствовали многие проекты с открытым исходным кодом (open-source) вроде WordPress, Drupal, Magento. Кроме того это и веб-приложения вроде Facebook и т.д. При столь широком применении PHP (динамические веб-сайты, платформы для блоггинга, системы управления контентом, использование в приложениях для электронной коммерции и др.) вероятность столкнуться с «грязной» информацией и небезопасными системами очень велика. Данное руководство покажет некоторые методы очистки и валидации данных с помощью PHP. Мы сфокусируем внимание на нескольких типах входных данных и на том, как использовать PHP-фильтры и пользовательские функции.

    Зачем очищать и проверять?

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

    — XSS (Cross-Site Scripting — Межсайтовый скриптинг)

    Это способ инъекции кода, когда скрипт внедряется в страницу атакуемого вебсайта с совершенно другого сайта на другом сервере. Эта уязвимость считается одной из самых распространенных в сети.

    — SQL-инъекция

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

    — CSRF/XSRF (Cross-Site Request Forgery — Подделка межсайтовых запросов)

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

    — Некорректная информация

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

    Перевод диалога к картинке:

    — Здравствуйте, это из школы сына вас беспокоят. У нас тут неприятность с компьютерами.

    — О Боже, он что, что-то сломал?

    — Вашего сына действительно зовут Robert’); DROP TABLE students;?

    — О, да, мы зовем его Little Bobby Tables

    — Вы понимаете, мы потеряли все записи по ученикам этого года. Надеюсь, вы довольны.

    — А я надеюсь, вы научитесь проверять заносимую в базу данных информацию.

    Для наших целей мы будем фокусироваться только на использовании серверных методов повышения безопасности информации, поэтому давайте посмотрим, как определяются термины «sanitization» и «validation» применительно к PHP. Обратимся к руководству по PHP:

    «Валидация используется для проверки того, отвечает ли проверяемая информация определенным требованиям. Например, используя FILTER_VALIDATE_EMAIL мы определяем, является ли информация корректным (т.е. верным по структуре) e-mail-адресом, но не изменяем эти данные.

    Очистка же подразумевает возможное изменение проверяемой информации, например — удаление нежелательных символов. Скажем, при использовании FILTER_SANITIZE_EMAIL будут удалены символы, которые не должны содержаться в e-mail-адресе. Т.е. в данном случае не происходит проверки корректности адреса (т.е. валидации), а удаляются заведомо неподходящие символы — не более того.»

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

    Какие фильтры есть у меня?

    Все инсталляции PHP не могут быть идентичными. Несмотря на то, что фильтры были введены в PHP 5.2.0, не все инсталляции имеют одинаковый набор фильтров. В большинстве случаев все фильтры, о которых мы будем говорить, будут уже включены в установленный PHP на вашем сервере, но чтобы вы чуть больше знали о фильтрах, мы узнаем о том, что доступно именно на вашем сервере. В исходных кодах приложен файл getfilters.php, который, будучи однажды установленным и запущенным на сервере, отобразит список всех ваших фильтров (как фильтры информации, доступные через функцию filter_var, так и потоковые, доступные через stream_filter_append)

    Сначала мы получаем массив, содержащий список всех доступных фильтров с помощью функции filter_list, после чего проходим циклом по массиву, выводя на экран имя фильтра и его ID.

    Как мне использовать фильтр?

    Фильтры PHP для валидации и очистки активируются посредством передачи функции filter_var как минимум двух параметров. В качестве примера давайте применим фильтр очистки для целого числа:

    В этом примере у нас есть переменная value, которую мы передаем функции filter_var из расширения PHP Filters Extension, используя фильтр FILTER_SANITIZE_NUMBER_INT. В качестве результата мы получим:

    Фильтр очистки для целых числе удаляет все символы, не являющиеся целыми числами, выдавая нам «чистое» целое число. В исходниках вы можете попробовать различные входные данные, и к ним будет применяться ряд общих фильтров. В архив включены различные строки, которые вы можете использовать в качестве тестового материала самостоятельно.

    Что делают различные фильтры?

    Список ниже неполный, но он содержит большинство фильтров, которые идут в стандартной установке PHP 5.2.0+.

    FILTER_VALIDATE_BOOLEAN: Проверяет, является ли переданная информация булевым значением TRUE или FALSE. Если переданное значение — значение не типа Boolean, то возвращается FALSE. Скрипт ниже выведет TRUE для примера с переменной value1 и FALSE для примера с переменной value02:

    FILTER_VALIDATE_EMAIL: Проверяет, является ли переданная информация корректным с точки зрения структуры e-mail адресом. Она не проверяет, существует ли этот адрес на самом деле, а только валидность адреса, т.е. правильность его структуры. Скрипт ниже выведет TRUE для примера с переменной value01 и FALSE для примера с переменной value02 (так как не хватает обязательной части со знаком @):

    FILTER_VALIDATE_FLOAT: Проверяет, является ли переданное значение числом с плавающей точкой. Скрипт ниже выведет TRUE для примера с переменной value01 и FALSE для примера с переменной value02 (так как разделить «,» не разрешен в числах с плавающей точкой):

    FILTER_VALIDATE_INT: Проверяет, является ли переданное значение целым числом. Скрипт ниже выведет TRUE для примера с переменной value01 и FALSE для примера с переменной value02 (десятичные числа не являются целыми):

    FILTER_VALIDATE_IP: Проверяет, является ли переданное значение корректным IP-адресом. Она не проверяет, есть ли ответ от этого адреса, а лишь то, что переданное значение по своей структуре является IP-адресом. Скрипт ниже выведет TRUE для примера с переменной value01 и FALSE для примера с переменной value02:

    FILTER_VALIDATE_URL: Проверяет, является ли переданное значение корректным URL-адресом. Она не проверяет, она не проверяет доступность ресурса, а лишь то, что соблюдена структура URL-адреса. Скрипт ниже выведет TRUE для примера с переменной value01 и FALSE для примера с переменной value02:

    FILTER_SANITIZE_STRING: По умолчанию данный фильтр удаляет любую некорректную или не разрешенную информацию в строке. Например, она удалит любые тэги HTML вроде или ‘; echo filter_var($value, FILTER_SANITIZE_STRING);

    Данный скрипт удалит тэги и вернет следующее:

    FILTER_SANITIZE_ENCODED: Многие программисты используют функцию urlencode(). Данный фильтр по сути выполняет те же функции. Например, следующий пример выполнит кодирование любых спецсимволов и пробелов во входящей строке:

    Скрипт закодирует пунктуацию, пробелы, скобки и вернет следующее:

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

    Произойдет конвертация спецсимволов в их HTML-сущности:


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

    Произойдет удаление скобок и вы получите на выходе свой чистый и красивый е-mail:

    Это отличный фильтр, который можно использовать в формах для ввода e-mail, особенно в паре с FILTER_VALIDATE_EMAIL, что позволит снизить число ошибок пользователей и предотвратить атаки типа XSS.

    FILTER_SANITIZE_URL: Данный фильтр похож на предыдущий. Он удаляет любые символы, недопустимые в URL. К примеру, скажем, в адресе случайно оказался знак «®». Опять же, как он туда попал — сплошная загадка.

    Таким образом мы удалим ненужный знак «®» и получим нормальный адрес:

    FILTER_SANITIZE_NUMBER_INT: Данный фильтр похож на FILTER_VALIDATE_INT, но вместо простой проверки на то, является ли число целым, он еще и удаляет все, что не является целым числом. Отличная вещь, особенно против надоедливых спам-ботов и обманщиков, норовящих ввести в поле какую-нибудь ерунду:

    Оба набора символов преобразуются и на выходе получаем следующую картину:

    FILTER_SANITIZE_NUMBER_FLOAT: Похож на FILTER_VALIDATE_INT. Точно также позволяет добиться аналогичного эффекта:

    Оба набора символов преобразуются и на выходе получаем следующую картину:

    Как же нам быть, если нужно сохранить десятичное число — спросите вы, например:

    Точка будет удалена и возвращено значение:

    Одна из главных причин того, что фильтры FILTER_SANITIZE_NUMBER_FLOAT и FILTER_SANITIZE_INT разделены — это возможность использовать специальный флаг FILTER_FLAG_ALLOW_FRACTION, который идет как третий параметр, передаваемый функции filter_var:

    Так мы можем сохранить десятичную часть и получить в итоге:

    Опции, флаги и контролирующие массивы — Майн Готт!

    Флаг, использовавшийся в предыдущем примере — лишь один из способов получить более детальный контроль над типами данных, которые будут подвергаться очистке, определениями ограничителей, тем, как обрабатываются фильтрами массивы и др. Узнать больше про флаги и функции, используемые всвязи с применением фильтров вы можете в руководстве PHP, в части, посвященной Фильтрам — php.net/manual/en/book.filter.php.

    Другие методы очистки информации средствами PHP

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

    htmlspecialchars: эта функция PHP преобразует 5 специальных символов в соответствующие HTML-сущности.

    & (амперсанд)
    » (двойные кавычки) когда не установлен флаг ENT_NOQUOTES
    ’ (одинарные кавычки) только когда установлен флаг ENT_QUOTES
    (больше, чем)

    Используется данная функция точно так же, как и любая другая в PHP:

    htmlentities: Подобно функции htmlspecialchars эта функция конвертирует специальные символы в их HTML-сущности. Все отличие в том, что в данном случае конвертируются все спецсимволы, которые могут быть конвертированы. Это достаточно распространенный метод для запутывания (обфускации) e-mail-адресов от спам-ботов, так как далеко не все из них настроены на чтение html-сущностей:

    mysql_real_escape_string: Это функция MySQL, помогающая защититься от атак типа SQL-инъекция. Считается хорошей практикой (а по сути необходимостью) пропускать всю информацию передаваемую SQL-запросу через эту функцию. Она экранирует все опасные спецсимволы, которые могут вызвать проблемы и стать причиной того, что little Bobby Tables уничтожит еще одну таблицу в школьной базе данных.

    Пользовательские функции

    Для многих людей встроенных функций и фильтров может оказаться недостаточно. Часто может потребоваться более жесткая и узкая валидация или очистка. Чтобы добиться нужных результатов многие сами пишут функции для валидации данных. В качестве примера можно привести вариант поиска в базе данных значений определенного типа, вроде:

    Другие пользовательские функции могут быть не связаны с базой напрямую, а заниматься подготовкой информации перед вставкой в базу:

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

    Michael Owens
    По материалам www.net.tutsplus.com
    Перевод — Дмитрий Науменко

    Исходники

    P.S. Если вы хотите взять хороший старт в изучении PHP, обратите внимание на бесплатный курс по созданию своей CMS-системы на PHP с нуля. Используется объектно-ориентированный подход, поэтому вы сразу будете привыкать к хорошему:

    Понравился материал и хотите отблагодарить?
    Просто поделитесь с друзьями и коллегами!

    Как настроить почтовый ящик для сайта с помощью функции mail

    Рад видеть вас на моем блоге start-luck.ru. Сегодня рассмотрим, зачем нужна Php функция Mail. Какой бы вы не создали интернет-проект на нем должна быть форма обратной связи, чтобы люди могли с вами общаться. Особенно это актуально для коммерческих проектов. Это сложная тема, о которой я уже говорил в статье «Как написать сайт на php». Рассмотрим, как использовать данную функцию для отправки сообщений.

    Немного теории

    Для отправки писем необходим SMTP-сервер. Он есть на всех качественных платных хостингах. Для приема понадобится POP-сервер. Необходимо понимать, что php не отправляет сообщение, он передает команды приложению sendmail, которое и занимается отправкой. Поэтому его нужно иметь. Если вы используете Денвер, то это приложение уже встроено. Все сообщения помещаются в директорию «tmp/!sendmail». Кстати, рекомендую вам, завести себе почту от Гугла. Это особенно актуально, если вы занимаетесь сайтостроением.

    Что это такое

    Mail применяется для отправки сообщений при условии что будут выполняться некоторые правила. Самое главное — эта функция не подходит для пересылки большого числа писем. Потому что после каждой отправки она закрывает, а потом опять открывает соединение с почтовым сервером. Это приведет к перерасходу мощностей на хостинге.

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

    Mail принимает пять аргументов из которых три — обязательные:

    • Адрес отправителя;
    • Тайтл письма;
    • Текст сообщения.

    Например, напишем такие строки кода

    Если вы пользуетесь Денвером, то информация, которую вы отправили, сохранится на виртуальном диске Z папке «tmp\!sendmail». Если вы забыли, как установить данный локальный сервер, то советую почитать статью «Как быстро установить Denver».

    Некоторые особенности

    При работе возникает много нюансов. Они зависят от используемой платформы ОС и других настроек и параметров. Рассмотрим самые основные:

    • При отправке письма заголовок Form нужно задать через необязательный параметр «additional_headers». При его отсутствии может возникнуть ошибка при отправлении;
    • Заголовки разделите символами перевода на новую строку и каретки (\r\n);
    • Длина строки не более семидесяти знаков. Ее регулируйте (\r\n).

    Что делать если функция не отправляет письма

    Даже с учетом всех перечисленных выше моментов, mail может не работать. При этом на локальном сервере все отправляется как следует. Одной из причин почему так происходит — неправильная настройка функции на хостинге. Поэтому нужно обратиться к конфигурационному файлу php.ini, в котором посмотрите функцию «disable_functions».

    Для проверки работоспособности напишите такой несложный код и разместите его в корне созданного интернет-проекта.

    Если все работает правильно, то на экране браузера появится цифра один «1». Ее возвратит «print» после выполнения.

    Важно! Если вы используете в качестве локального сервера OpenServer, то письма сохраняются в папке C:\openserver\userdata\temp\email. При условии, что его вы установили на локальный диск «С».

    Отправка с вложением

    Рассмотрим пример, как отсылать сообщения с прикрепленным файлом. Для этого используется функция sendMailAttachment(). Рассмотрим, как это работает на примере:

    Проблемы с кодировкой

    Иногда сообщения приходят в виде вопросов «?» или непонятных символов. От того насколько правильно оно будет перекодировано, зависит прочтет ли его получатель. При стандартных способах отправки php не учитывает кодировку. На эту тему на моем блоге уже была статья «UTF-8 и Windows 1251». Сам контент сообщения может быть любой кодировки. Вся сложность заключается в заголовке From. По стандарту они должны быть в US-ASCII. Есть две формы кодирования —BASE64 и Quoted-Printable. Первая — более универсальная и работает с UTF-8, поэтому используете ее. Например,

    HotMail своими руками, или Что может PH

    Продажа товара приостановлена.

    Попробуйте поискать похожий товар у других продавцов.

    Продавец

    Описание товара

    HotMail своими руками, или Что может PH
    Виктор Хименко
    МИР ПК #02/99
    В этой статье я хотел бы продемонстрировать, что создание работоспособных и полезных динамических Web-узлов вовсе не такая сложная задача, как может показаться при чтении текстов, описывающих интерфейс CGI. На самом деле подобная работа (по крайней мере, при использовании Linux) больше всего напоминает игру The Incredible Machines, где нужно кремнем высечь искру, чтобы свет упал на солнечную батарею, от которой срабатывает сверхсовременный компьютер. Здесь тоже все, как правило, собирается из компонентов, которые оказались под рукой.
    7 стр.

    Отзывы

    С товаром «HotMail своими руками, или Что может PH» также смотрят:

    В целях противодействия нарушению авторских прав и права собственности, а также исключения необоснованных обвинений в адрес администрации сайта о пособничестве такому нарушению, администрация торговой площадки Plati (http://www.plati.market) обращается к Вам с просьбой — в случае обнаружения нарушений на торговой площадке Plati, незамедлительно информировать нас по адресу support@plati.market о факте такого нарушения и предоставить нам достоверную информацию, подтверждающую Ваши авторские права или права собственности. В письме обязательно укажите ваши контактные реквизиты (Ф.И.О., телефон).

    В целях исключения необоснованных и заведомо ложных сообщений о фактах нарушения указанных прав, администрация будет отказывать в предоставлении услуг на торговой площадке Plati, только после получения от Вас письменных заявлений о нарушении с приложением копий документов, подтверждающих ваши авторские права или права собственности, по адресу: 123007, г. Москва, Малый Калужский пер. д.4, стр.3, Адвокатский кабинет «АКАР №380».

    В целях оперативного реагирования на нарушения Ваших прав и необходимости блокировки действий недобросовестных продавцов, Plati просит Вас направить заверенную телеграмму, которая будет являться основанием для блокировки действий продавца, указанная телеграмма должна содержать указание: вида нарушенных прав, подтверждения ваших прав и ваши контактные данные (организиционно-правовую форму лица, Ф.И.О.). Блокировка будет снята по истечение 15 дней, в случае непредставления Вами в Адвокатский кабинет письменных документов подтверждающих ваши авторские права или права собственности.

    Мастер Йода рекомендует:  SSI и общий стиль
    Добавить комментарий
    Golden Hands
    Дата 12.6.2005, 23:22 (ссылка) | (нет голосов) Загрузка .