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

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 855
от 01.01.2008, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 444, Экспертов: 44
В номере:Вопросов: 4, Ответов: 10

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 116085: Здравствуйте уважаемые эксперты, у меня возникло несколько вопросов: 1) Часто встречаются ссылки типа http://rusfaq.ru/users/Best Скажите зачем и как их так делают, ведь в конце обычно подразумевается /php или нет обьясните назначение скажите как...
Вопрос № 116099: Здравствуйте! Не нашел информации как находить совпадения, в том случае если нужно обработать две стоки как одну. Использование символов конца и начала строки не помогает :( пример: $string = '<b>example: </b><div align=left><br...
Вопрос № 116136: Здравствуйте, эксперты! Второй день мучаюсь с кодировкой почты. Проблема в том, что не определяются заголовки в начале тела письма. Или тут что-то не так? PS: письмо приходит в таком же виде, как $message, то есть сначала написан...
Вопрос № 116177: Мне нужно сделать форуму отправки на e-mail такого вида От кого: Пустое поле To: Кому(не обязательно т.е. указать в коде программы ) Subject: Selected (Выпадающий список) icq: Ваш icq: (Значение сливать в body) Text1: (Значе...

Вопрос № 116.085
Здравствуйте уважаемые эксперты, у меня возникло несколько вопросов:
1) Часто встречаются ссылки типа http://rusfaq.ru/users/Best Скажите зачем и как их так делают, ведь в конце обычно подразумевается /php или нет обьясните назначение скажите как делать такие ссылки
Отправлен: 26.12.2007, 20:11
Вопрос задал: Вадим Алексеевич Антонов (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Емельянов Данил Юрьевич
Здравствуйте, Вадим Алексеевич Антонов!
Данная технология называется ЧПУ(человекопонятный урл).

Релизация может быть разными способами, но наиболее оптимальный - это создание файла .httaccess

Думаю не стоит подробно описывать этот метод в интернете полно ресурсов на эту теме и вот один из них:
http://spectator.ru/technology/php/user_friendly_urls

Удачи !
---------
Жить хорошо, а хорошо жить еще лучше!
Ответ отправил: Емельянов Данил Юрьевич (статус: 5-ый класс)
Ответ отправлен: 26.12.2007, 21:42

Отвечает: Товарищ Бородин
Здравствуйте, Вадим Алексеевич Антонов!
Существует как минимум две ситуации(или способа - как хотите):
1) Когда мы указываем для какого-либо каталога(в данном случае - /users/Best/) индексный файл(обычно он называется index.php, но их можно указывать несколько - в порядке уменьшения приоритетности), то мы можем ссылаться на него, указывая ссылку просто на каталог, без явного указания самого файла. Вызовется файл с наивысшим приоритетом(на случай если индексных файлов в каталоге присутствует более одного). Но их надо обязательно перечислить. Самый простой путь - создать файл .htaccess с текстом:

DirectoryIndex index.php index.html news.php my.php

В случае наличия всех 4-х файлов будет вызван index.php,а если, скажем, присутствует news.php + index.html -> index.html и т. д.

Естественно, чтобы такое работало, все каталоги должны существовать. И файлы должны существовать в них индексные.

2) Первый способ - для дилетантов, а если точнее, то это, скорее, способ самообмана, чем способ сделать ЧПУ(человеко-понятный УРЛ). Второй способ гораздо более гибок. Для того, чтобы его использовать, на сервере должен быть разрешен mod_rewrite(спец. модуль сервера Apache). Про второй способ имеет смысл говорить либо много, либо совсем ничего(потому что это действительно "глыба"!), однако вкратце скажу, что он дает возможность переписывания URL. Это заключается в том, что в нашем случае не существует в корневом каталоге сайта каталога /users. Реальный адрес может быть далеко не таким красивым и изящным и может напоминать адрес страницы, с которой я Вам пишу ответ :) http://rusfaq.ru/?Step=ask&Action=WebForm&UniqueID=5097300.22531.61568.81062.43714.1199121100

Простейший пример перезаписи URL:

# Приказываем разрешить перезапись URL
RewriteEngine On
# Пишем правило перезаписи
RewriteRule .* index.php

В результате выполнения этого правила какой бы адрес(относительно каталога, для которого мы прописали данные инструкции) мы не ввели в адресную строку браузера, выполнится файл index.php данного каталога. В этом каталоге следует создать старый добрый файл .htaccess :) и записать в него наши инструкции. Вот и вся конструкция.
---------
Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Товарищ Бородин (статус: Практикант)
Ответ отправлен: 26.12.2007, 21:46

Отвечает: proger
Здравствуйте, Вадим Алексеевич Антонов!
Вообще-то это зависит от настроек сервера апаче) по умолчанию так и есть ка вы сказали)) если вы укажете ссылку на определенную папку а не файл .php, то сервер ищет в этой папке index.php и открывает его)) Все это настраиваемое))
Но может быть и так, что можно создать виртуальные ссылки, т.е. писать такого рода ссылки даже при отсутствии таковых папок на сервере. Это делается с помошью дополнительного модуля для апаче) Называется mod_rewrite. О нем можете почитать здесь

http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
Ответ отправил: proger (статус: 3-ий класс)
Ответ отправлен: 26.12.2007, 21:49

Отвечает: Hid
Здравствуйте, Вадим Алексеевич Антонов!
возможно, что подобная ссылка дается на папку каталога, в которой есть файл index.php который, в этом случае грузится по умолчанию, согласно настройкам хостинга. Так же это можно сделать с помощью редиректа в файле .htaccess, но об этом я Вам рассказать не смогу. Удачи!
Ответ отправил: Hid (статус: 3-ий класс)
Ответ отправлен: 31.12.2007, 13:38


Вопрос № 116.099
Здравствуйте!

Не нашел информации как находить совпадения, в том случае если нужно обработать две стоки как одну. Использование символов конца и начала строки не помогает :(

пример:
$string = 'example:

this is a test
'; #

preg_match("/example:
$^(.+)
/", $string, $out) ;

Выдает пустой результат, а нужно получить строку "this is a test"
В Perl это решается элементарно, подскажите пожалуйста, как такое реализовать в PHP?
Отправлен: 26.12.2007, 21:56
Вопрос задал: Serg77 (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Anti_SP
Здравствуйте, Serg77!
^(.+) означает отрицание всех символов от одного и более. Правильный код ниже(и в приложении):

preg_match("/<b>example: </b><div align=left>(.+)</div>/iU", $string, $out);
Ключ U - ограничивает жадность ().
Ключ i - безразличие к регистру букв

С Вашим примером, текст "this is a test" будет находиться в переменной $out[1]

Успехов

Приложение:

Ответ отправил: Anti_SP (статус: 1-ый класс)
Ответ отправлен: 26.12.2007, 23:52


Вопрос № 116.136
Здравствуйте, эксперты!
Второй день мучаюсь с кодировкой почты.
Проблема в том, что не определяются заголовки в начале тела письма.
Или тут что-то не так?

PS: письмо приходит в таком же виде, как $message, то есть сначала написаны все заголовки и потом текст письма...

Приложение:

Отправлен: 27.12.2007, 08:13
Вопрос задала: Кузнецова Александра Игоревна (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Angel7
Здравствуйте, Кузнецова Александра Игоревна!

Верно, что оно так приходит :) Код для заголовков нужно отдельно прописывать.

Я поправила Вам код, он в приложении.

P.S. Могла ошибиться в Ваших переменных, поправьте, если что.

Удачи!

Приложение:

---------
Не останавливайся на достигнутом, работай над собой - и все получится! :)

Ответ отправила: Angel7 (статус: Практикант)
Ответ отправлен: 27.12.2007, 09:59
Оценка за ответ: 5
Комментарий оценки:
Вообще так я тоже пробовала =) Просто хотелось именно тем способом сделать, чтоб всё в 1 теле, т.к. знаю, что работать все-таки должно :)

Отвечает: Товарищ Бородин
Здравствуйте, Кузнецова Александра Игоревна!
Попробуйте вставить заголовки четвертым параметром функции mail("куда","тема письма", "текст письма", "Заголовки"). Я сколько раз пробовал - получается все нормально. Кстати, заголовки надо завершать символом ";", которого в конце заголовков у Вас нет. Проблема может крыться в этом. Дело в том, что текст заголовков очень любит, чтобы его писали правильно, и из собственного опыта я знаю, что тут, как говорится, шаг влево, шаг вправо - попытка к бегству... Намучавшись в свое время с заголовками писем, я таки выработал для себя правильный "стиль" их написания(хотя какой тут стиль, это же не художественная клинопись), и всегда ему следую - никаких проблем.

В четвертый параметр добавьте:
Content-type: text/plain; charset=koi8-r; subject: Тема сообщения; From: mail@from.ru;

И не забывайте разделять заголовки ";".
---------
Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Товарищ Бородин (статус: Практикант)
Ответ отправлен: 27.12.2007, 10:01
Оценка за ответ: 5
Комментарий оценки:
Спасибо за инфу про точку с запятой. С кодировкой разобралась, так что проблему можно считать решенной=)


Вопрос № 116.177
Мне нужно сделать форуму отправки на e-mail такого вида

От кого: Пустое поле
To: Кому(не обязательно т.е. указать в коде программы )
Subject: Selected (Выпадающий список)
icq: Ваш icq: (Значение сливать в body)
Text1: (Значение сливать в body)
Text2: (Значение сливать в body)
Body: (Всё что слито выводить через <br>)

Вот что получилось но как её закончить что бы работала?!

Приложение:

Отправлен: 27.12.2007, 14:36
Вопрос задал: Гареев Ринат Маратович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Н.В.
Здравствуйте, Гареев Ринат Маратович!
Надо добавить какое-нибудь скрытое поле, обозначающее, что письмо должно быть отпревлено (переменная $_POST['submit'] ни в каком случае не определена при вызове этой страницы).
Смотрите код в приложении.

Что Вы имели ввиду под "// Сюда нужно слить выше указанные значения" я не понял...
Если нужно вывести пример отправленного письма, то это делается после отправки (вызова mail() ). А если нужно во время набора текста показывать, как изменяется текст отправляемого письма, то используйте JavaScript, например.

Удачи!

Приложение:

Ответ отправил: Н.В. (статус: Студент)
Ответ отправлен: 27.12.2007, 14:51

Отвечает: BerdArt
Здравствуйте, Гареев Ринат Маратович!
При вызове данной страницы в первый раз переменная $_POST['submit'] действительно не определена. Но так как вы проверяете ее (isset($_POST['send'])), то это ошибок не вернет. Когда же после нажатия кнопки, страница загрузиться во второй раз выражение isset($_POST['send']) вернет true. Должно и так работать.
Для отправки дополнительной информации в теле письма, вам не обязательно в конце страницы визуально все это объединять (конечно, если это не необходимо). Можно сделать так:
mail($_POST['to'], $_POST['subject'], $_POST['icq']+$_POST['text1']+$_POST['text2']+$_POST['body']);
Так должно работать.
Удачи!
Ответ отправил: BerdArt (статус: 3-ий класс)
Ответ отправлен: 28.12.2007, 16:58

Отвечает: Hid
Здравствуйте, Гареев Ринат Маратович!
Смотрите код в приложении.
Возможно чего-нибудь накосячил с html формой, - разберетесь сами. Смысл в том, что сборку BODY проводите в самом скрипте. Форматирование тоже можете переделать, в моем варианте разделитель - пробел, вы можете поставить перевод на другую строку или вообже сформировать в письме html файл с таблицей. Если же Вы хотите проводить сборку при заполнении формы, то это нужно качать в сторону JAVA-Scripts и технологии Аякс, в чем я Вам не советчик. Удачи!

Приложение:

Ответ отправил: Hid (статус: 3-ий класс)
Ответ отправлен: 31.12.2007, 13:39


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.66 от 23.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное