Как отправить письмо через PHP, используя формы, и как при этом устранить возникающие проблемы с кодировкой? Рассмотрим на простом примере, как отправить вопрос через формы на сайте.
У нас будет 3 поля для ввода:
Ваше имя:
* E-mail:
* Вопрос:
Причем "Ваше имя" не является обязательным параметром.
Для простоты и удобства разместим форму и код прогараммы в одном файле. Важно указать кодировку страницы (windows-1251), чтобы далее не возникало проблем с перекодированием из win в koi (ниже)
Итак, приступим. Начало документа стандартное:
Код:
Далее идет 2 логические части:
1 - вывод формы
2 - обработка формы и отправка письма
Вначале идет вывод формы.
Для удобства в начале определяем e-mail через переменную $mailto, на который будет отсылаться письмо из формы.
Далее мы определяем, была ли нажата кнопка "отправить".
В конце формы имеется кнопка "отправить", она имеет аттрибуты name="ok" и value="отправить". После нажатия на нее переменная $ok будет иметь значение "отправить". Если кнопка не нажата, то переменная не определена.
Таким образом, выражение if (empty($ok)) означает буквально "если кнопка отправить не была нажата". Функция empty() возвращает true, если переменная не определена, содержит 0 или пустоту.
Код:
Далее идет вывод формы, если выполнено предыдущее условие if (empty($ok)).
Переменная $PHP_SELF означает, что обработку формы производит текущий файл, т.е. тот же, на кот. расположена форма.
Код:
В противном случае, т.е. если была нажата кнопка, идет обработка формы и отправка письма
Код:
Далее идет проверка на корректность заполнения поля "E-mail". Любители ругулярных выражений эту проверку поймут. Для остальных немного поясню:
Подразумевается, что e-mail должен быть такого вида:
слово@слово.слово
При этом слово может состоять из всех букв латинского алфавита и цифр и точка может быть не одна. (например слово@слово.слово.слово)
[a-z,0-9] - означает "любая буква латинского алфавита или цифра"
+ - означает, что [a-z,0-9] может встречаться 1 или более раз.
Если введен неправильный e-mail, то в переменную $error записывается ругательное сообщение.
Код:
Если поле "Вопрос" не заполнили, то к переменно $error добавляем еше одно ругательство:
Код:
Если переменная $error не пустая, то мы ее выводим на экран и немедленно прекращаем дальнейшую обработку с помощью exit
Код:
Ну а если таки $error осталась пустой и exit не сработал, то можно приступать к отправке письма, т.е. главной цели всего этого мероприятия...
Сформируем тему и тело сообщения:
А теперь самое главное, чтоб потом можно было прочитать письмо "по-русски" :) Функция convert_cyr_string перекодирует строку из win в koi (w-win, k-koi) Это необходимо, т.к. все почтовые клиенты по дефалту принимают письма в koi. А у нас вверху страницы стоит charset=windows-1251, поэтому функция грамотно переводит из win в koi Затем с помощью функции mail отправляется письмо на $mailto, указанный в начале файла.
Код:
Ну и самое приятное... Если письмо успешно отправлено, то выводим благодарственную надпись и предлагаем вернуться..
Код:
Стандартный конец..
Код:
P.S. Как наверно понял читатель, нужно выделить и скопировать все зеленые блоки в один файл по порядку и запустить его на сервере
Весь код является полностью проверенным и рабочим.
Эта заметка не имеет непосредственного отношения к DELPHI, уж извините :) Но получив в очередной раз письмо с предложение за два клика заработать $5000 я не выдержал, душа просит высказаться!
Я рассмотрю несколько вариантов заработка денег в internet с описанием, их плюсами и минусами. Сразу предупреждаю, это мое личное мнение, никак не претендую на глубину и всесторонность обзора.
1. Начнем с наиболее правильного и близкого нам программистам :) SHAREWARE.
Написание программы с целью ее продажи. Решаясь на подобное сначала все хорошенько обдумайте и взвесьте, зарабатывать на shareware можно и нужно, но… всегда есть проклятое "но" :) Для создания хорошо продаваемой программы вам придется не мало потрудиться. Срок от начала написания до реальных продаж вряд ли получится менее полугода. Вам придется много работать и главное думать. Здесь нет руководителя, который напишет Т.З. и скажет когда и что нужно сделать :( Все самому, а еще лучше команде. Одному человеку трудно быть одновременно хорошим программистом, генератором идей, дизайнером, маркетологом и т.д. и т.п. Лучше, если каждый будет заниматься тем, что умеет делать лучше всего. И тогда… по непроверенным данным ReGet получат более $50.000 в месяц! ;)
Как этого добиться? Здесь нет никаких строгих правил, все зависит от вашего таланта и, наверное, везения. Вот один из вариантов: выбрать направление программы, лучше, если это будет то, что требуется большому количеству людей каждый день в их постоянной работе за компьютером. Потратить с месяц или более, на сбор и анализ существующих подобных программ в интернете (трудно придумать что-то совсем уж уникальное :) обязательно уже есть аналоги, необходимо выяснить слабые и сильные стороны каждой программы и составить Т.З. для своей программы, включая туда самое лучшее. Кстати, не обязательно делать самостоятельную программу, это вполне может быть что-то прикладное к уже имеющимся. Например, каждый браузер умеет сам закачивать файлы из internet и тем не менее, "качалок" великое множество! Почему? Да потому что они удобнее в использовании и имеют дополнительные функции.
Далее самый плодотворный процесс - написание самой программы. На это уходит от месяца до года (больше не надо, а то она за это время бесконечно устареет :) По окончании написания программы, ее отладка и анализ, а действительно ли она так хороша, как предполагалось в начале?! ;) На этом этапе лучше выложить для скачивания бесплатную beta-версию на русском языке. И, зарегистрировавшись в русских каталогах, предлагать нашим тестировать новое чудо современных технологий! После чего, вы получите массу писем с ошибками и пожеланиями, все учитываете и дорабатываете, дорабатываете… На это может уйти даже больше, чем на написание основного кода программы. Когда считаете, что программа отшлифована и проверена на самых различных конфигурациях компьютеров, можно готовить английскую версию, выкладывать на сайт, регистрироваться в системах, которые помогут вам получать деньги от буржуев (например RegNow) и раскрутка вашего детища - регистрация в поисковых системах, а главное в каталогах для ShareWare программ, которых в инете великое множество. И с замиранием сердца ждать :) анализировать статистику заходов на ваш сайт, откуда приходят, почему с других мест не идут? Сколько людей пришло и "дошло" до скачивания и оплаты. На каком этапе вы потеряли клиента, почему? Все надо довести до идеала, клиенту нужно максимально упростить способ расставания с деньгами! :) Как видите, непосредственно программирование здесь занимает очень малую долю, и можно даже сказать, не главную! (Билл Гейтс ведь смог же продавать геморрой за деньги! :) :)
Рекомендую вам подписаться на рассылку российских шароварщиков swrus.com, узнаете много нового и полезного. А главное, общение с людьми, которые реально зарабатывают на этом! Плюсы:Это станет вашим основным заработком. Сумма, получаемая вами ежемесячно, ничем не ограничена, только вашим талантом! При удачной раскрутке, можно создавать свою фирму, становиться начальником, нанимая других программистов ;) Если на вас обратит внимание крупная западная фирма, то можно выгодно "продаться" :) Минусы: Вам придется долгое время вкалывать за красивую мечту. Никто, ничего не гарантирует. Вы с большой вероятностью можете в итоге оказаться у разбитого корыта :( Придется запастись терпением!
2. Создание сайта.
Вы создаете сайт, делаете его интересным для как можно большей доли посетителей интернета и как следствие, высокую посещаемость. После чего можно продавать рекламное место на своем сайте или зарабатывать через баннерные сети, что платят за показы или клики. Важно правильно выбрать тематику сайта, рекламодателям должно быть выгодно именно у вас размещать свою рекламу. Возьмем к примеру этот сайт (Мастера DELPHI), сайт сильно специфичен, рассчитан на очень малый процент людей в сети, мало того что именно программист, так еще и обязательно на DELPHI :) Потому добиться действительно высокой посещаемости его просто не реально. Но не это главное, кто из рекламодателей захочет здесь разместить рекламу? Ведь, понятно, его реклама должна ему же приносить деньги, т.е. чаще всего это или продажа своей программы, или привлечение целевой аудитории. Сайт русскоязычный, а русские не привыкли покупать программы, да и зачастую не на что! Вот и получается, что работаем мы над этим сайтом, только ради альтруизма и пользы вам, наши дорогие посетители :)
Или другой пример, сайт NoNaMe. Ему пол года, и за это время автор сайта добился блестящих результатов! (потому что сайт действительно интересен, всегда можно найти для себя что-то полезное. Рекомендую всем!) На данный момент до 9тыс. уникальных посетителей! Но… опять же, сайт специфичен, публикация кряков к программам оставляет весьма сомнительную вероятность того, что кто-то захочет рекламировать там свой продукт ;)
Лучше всего, конечно же, сайт рассчитанный на широкую публику: поисковые системы, каталоги, новости… игровые/развлекательные сайты здесь не лучшем положении (мой знакомый, автор сайта netcross.ru раскрутил его весьма хорошо, а сейчас практически забросил. Создал свою фирму по дизайну, и она за два месяца принесла денег больше чем за все время существования netcross.ru :) Плюсы:Широчайшее поле для творчества. Ваш доход ничем не ограничен. Интернет развивается бешенными темпами. И помните! Совсем недавно list.ru был продан за $5.000.000 !!! Вполне хватит на карманные расходы ;) Минусы: Вам придется в поте лица работать над своим сайтом и, как и в первом случае, большая вероятность остаться у разбитого корыта :(
3. Интернет услуги.
Создаете свою компанию по оказанию каких-либо интернет услуг: дизайн, интернет магазин, хостинг, регистрация, раскрутка и т.д. и т.п. Вполне реальный способ заработка, здесь нечего добавить. Практически в любом случае вы будете получать доход, доход лишь зависит от вашего желания работать и от того, откуда у вас растут руки :) Лично я напрямую связан с предоставлением хостинга российским компаниям, и со всей ответственностью заявляю, на хостинге можно и нужно зарабатывать. Помните, русский интернет сейчас развивается очень быстро, и потребность в различных видах услуг велика. Плюсы: Вы получаете реальные деньги за реальную работу. Все сводится только к поиску и привлечению людей, которым ваши услуги необходимы. Минусы: Зачастую требует начальных капиталовложений. Здесь нет халявы, не получится почивать на лаврах (как при удачном раскладе в первых двух пунктах), работать, работать и еще раз работать :)
На этом позвольте закончить вторую часть. Это не все о заработке, возможно я продолжу этот цикл, если вам конечно интересно :)
Довольно часто встречается мнение, что в подобных статьях слишком много говорится о теории разработки успешных сайтов. Что ж, отбросим теорию и обратимся к проверенным временем методам. Следующая система со 100%-ной вероятностью достичь желаемого положения в Google по широкому кругу запросов. Это те методы, которые я использую постоянно в своей работе. Результаты зависят, как правило, от темы, потенциальной аудитории и уровня конкуренции в нише.
Следующие методы позволят построить успешный сайт для Google в течение одного года. Впрочем, можно уложиться и в более короткий срок - если вы действительно решите постараться.
A) Начинайте строить содержание сайта. Прежде чем даже выбрать доменное имя для сайта, отметьте для себя следующее - необходимо иметь 100 страниц сайта. Это, причем, только для начала. Это только страницы с реальным содержанием - не списки ссылок, вступительные страницы и что-либо подобное.
B) Доменное имя - легко запоминающееся и осмысленное. Не надо вставлять ключевые слова - вам надо создать брэнд, торговую марку, которые будут легко запоминаться. Времена доменов из ключевых слов прошли. Поучитесь на примере GoTo.com, который недавно стал Overture.com - по моему мнению, это был один из лучших примеров создания брэнда в Интернет, который, кстати, потребовал отбросить целые годы, потраченные на создание другого брэнда.
C) Дизайн сайта - чем проще, тем лучше. Текста должно быть больше, чем тэгов разметки. Страницы должны быть видны в любом броузере - от lynx до IE 6.0 - старайтесь соблюдать стандарт HTML 3.2. Не похоже, чтобы роботы понимали HTML 4.0. Воздерживайтесь от всякого рода тяжестей на странице - Flash, Java, JavaScript - они, как правило, мало помогают сайту, но могут серьезно повредить по целому ряду причин, и нелюбовь поисковиков к ним лишь одна из них.
Стройте сайт структурно понятным. Включайте в имена директорий слова запросов, которые вы хотите “перекрыть”. Можете поступить иначе и все страницы положить в корневую директорию - несмотря на противоположность совета, он неплохо срабатывает на многих поисковиках, и в т.ч. на Google.
Воздержитесь от ненужных ссылок, засоряющих сайт, например, “Best viewed with”, счетчиков, кнопочек, и т.д. Сделайте его простым и профессионально выглядящим. Поучитесь на примере самого Google - простота - вот что хочет посетитель.
Скорость загрузки - это еще не все. Ваш сайт должен отзываться мгновенно. Если после перехода на сайт в броузере ничего не происходит в течение 3-4 секунд - у вас есть проблемы. Это время может меняться в зависимости от местонахождения сервера, но сайт, расположенный в вашей стране, должен отзываться в течение 3-4 секунд. Секундой больше - и вы начинаете терять аудиторию, по 10% примерно за каждую секунду. Между тем, 10% могут быть разницей между успехом и неудачей.
Страницы:
D) Размер страниц - чем меньше, тем лучше. Постарайтесь не превысить 15 кБ. Чем меньше, тем лучше. Постарайтесь не превысить 12 кБ. Чем меньше, тем лучше. Постарайтесь не превысить 10 кБ. Идея понятна? Удержитесь в пределах от 5 до 10 кБ. Да, это сложно сделать - но возможно и это работает. Как для поисковых систем, так и для посетителей.
E) Содержание - сделайте одну страницу с текстом и выкладывайте по 200-250 слов в день. Если вы не знаете, что должно быть на странице - воспользуйтесь сервисом Overture. Полученный список - это ядро вашей страницы, стартовая линия.
F) Частота, положение и т.д. - простой, старомодный стиль здесь наиболее уместен. Включите ключевое слово по разу в title, description, тэге H1, тексте ссылки, жирным шрифтом, курсивом, в начале страницы. Постарайтесь выдерживать частоту употребления ключевого слова в пределах от 5 до 20%. Используйте красивые фразы и проверьте их написание. Поисковые системы все чаще применяют автоматическую корректировку запросов и нет никаких причин этим пренебрегать.
G) Внешние ссылки - поставьте на каждой странице ссылки на один или два сайта, которые хорошо находятся по нужным вам запросам. Используйте эти запросы в тексте ссылок - это окажется весьма полезным в будущем.