Вопрос № 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 или нет обьясните назначение скажите как делать такие ссылки
Отвечает: Емельянов Данил Юрьевич
Здравствуйте, Вадим Алексеевич Антонов!
Данная технология называется ЧПУ(человекопонятный урл).
Релизация может быть разными способами, но наиболее оптимальный - это создание файла .httaccess
Думаю не стоит подробно описывать этот метод в интернете полно ресурсов на эту теме и вот один из них:
http://spectator.ru/technology/php/user_friendly_urls
Удачи !
--------- Жить хорошо, а хорошо жить еще лучше!
Отвечает: Товарищ Бородин
Здравствуйте, Вадим Алексеевич Антонов!
Существует как минимум две ситуации(или способа - как хотите):
1) Когда мы указываем для какого-либо каталога(в данном случае - /users/Best/) индексный файл(обычно он называется index.php, но их можно указывать несколько - в порядке уменьшения приоритетности), то мы можем ссылаться на него, указывая ссылку просто на каталог, без явного указания самого файла. Вызовется файл с наивысшим приоритетом(на случай если индексных файлов в каталоге присутствует более одного). Но их надо обязательно перечислить. Самый простой путь - создать файл .htaccess с текстом:
В случае наличия всех 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. О нем можете почитать здесь
Ответ отправил: 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, то есть сначала написаны все заголовки и потом текст письма...
Отвечает: Angel7
Здравствуйте, Кузнецова Александра Игоревна!
Верно, что оно так приходит :) Код для заголовков нужно отдельно прописывать.
Я поправила Вам код, он в приложении.
P.S. Могла ошибиться в Ваших переменных, поправьте, если что.
Удачи!
Приложение:
--------- Не останавливайся на достигнутом, работай над собой - и все получится! :)
Ответ отправила: Angel7 (статус: Практикант)
Ответ отправлен: 27.12.2007, 09:59 Оценка за ответ: 5 Комментарий оценки: Вообще так я тоже пробовала =)
Просто хотелось именно тем способом сделать, чтоб всё в 1 теле, т.к. знаю, что работать все-таки должно :)
Отвечает: Товарищ Бородин
Здравствуйте, Кузнецова Александра Игоревна!
Попробуйте вставить заголовки четвертым параметром функции mail("куда","тема письма", "текст письма", "Заголовки"). Я сколько раз пробовал - получается все нормально. Кстати, заголовки надо завершать символом ";", которого в конце заголовков у Вас нет. Проблема может крыться в этом. Дело в том, что текст заголовков очень любит, чтобы его писали правильно, и из собственного опыта я знаю, что тут, как говорится, шаг влево, шаг вправо - попытка к бегству... Намучавшись
в свое время с заголовками писем, я таки выработал для себя правильный "стиль" их написания(хотя какой тут стиль, это же не художественная клинопись), и всегда ему следую - никаких проблем.
И не забывайте разделять заголовки ";".
--------- Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Товарищ Бородин (статус: Практикант)
Ответ отправлен: 27.12.2007, 10:01 Оценка за ответ: 5 Комментарий оценки: Спасибо за инфу про точку с запятой.
С кодировкой разобралась, так что проблему можно считать решенной=)
Вопрос № 116.177
Мне нужно сделать форуму отправки на e-mail такого вида
От кого: Пустое поле
To: Кому(не обязательно т.е. указать в коде программы )
Subject: Selected (Выпадающий список)
icq: Ваш icq: (Значение сливать в body)
Text1: (Значение сливать в body)
Text2: (Значение сливать в body)
Body: (Всё что слито выводить через <br>)
Вот что получилось но как её закончить что бы работала?!
Отвечает: Н.В.
Здравствуйте, Гареев Ринат Маратович!
Надо добавить какое-нибудь скрытое поле, обозначающее, что письмо должно быть отпревлено (переменная $_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