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

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

  Все выпуски  

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


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

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

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

Выпуск № 929
от 23.03.2008, 01:35

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

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


Вопрос № 127707: Добрый день! Помогите пожалуйста разобраться в вопросе? На сайте все страницы генерируются системой управления. Это значит что дата создания страницы все время новая. Вопрос: влияет ли это на индексацию, позицию сайта и т.д.? Если вли...
Вопрос № 127710: Приветиствую всех, проблема в следующем: Есть 2 файла к page1.php, page2.php При нажатии на кнопку, мне приходит 3 письма на емеил, как сделать так чтобы мне приходило все в 1 письме, искал ответы по интернету, так ничего и ненашол... ес...
Вопрос № 127737: Доброго времени суток. Вновь необходима ваша помощь, уважаемые эксперты. Помогите, пожалуйста, решить последнюю проблему на пути к завершению моего скрипта "креатива". В бд есть таблица "creative", состоящая из двух полей - id и t...
Вопрос № 127810: Здравствуйте, эксперты! Хочу создать на сайте опрос, но хочу, чтобы при ответе на вопросы учитывались ответы на вопросы заданные ранее. Например: "Вы били в нашей бане?" Да/Нет Если "Да", то выходит следующий вопрос: &...

Вопрос № 127.707
Добрый день!
Помогите пожалуйста разобраться в вопросе?
На сайте все страницы генерируются системой управления. Это значит что дата создания страницы все время новая.
Вопрос: влияет ли это на индексацию, позицию сайта и т.д.?
Если влияет, то подскажите пожалуйста способ, как можно указать дату создания страницы.

Примечание: автоматически, из БД, генерируются следующие данные - все что указано в тегах head, title..., меню сайта. А содержание страницы вставляется из файла.
Отправлен: 17.03.2008, 12:20
Вопрос задал: Armaniden (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Стас Тельнов/[анти]КИЛЛЕР
Здравствуйте, Armaniden!
Если я правильно понял ваш вопрос, то вот что я могу сказать:
Не волнуйтесь. В принципе это у вас получатся разные страницы. Ведь информация о том, какая именно страница загружается, передаётся в GET запросе и каждая такая страница является отдельной.
Т.е. например:
http://ваш_сайт/viev.php?cat=1 и http://ваш_сайт/viev.php?cat=2 совершенно разные страницы и индексируются они отдельно.
И каждая более менее нормальная система управления передаётся данные о загружаемой странице именно GET запросом, а не POST.
---------
Не стыдно не знать, стыдно не учиться
Ответ отправил: Стас Тельнов/[анти]КИЛЛЕР (статус: 5-ый класс)
Ответ отправлен: 17.03.2008, 12:32


Вопрос № 127.710
Приветиствую всех, проблема в следующем:
Есть 2 файла к page1.php, page2.php

При нажатии на кнопку, мне приходит 3 письма на емеил, как сделать так чтобы мне приходило все в 1 письме, искал ответы по интернету, так ничего и ненашол... если можно то с коментариями разъесните, я начинающий в PHP!
Заранее БЛАГОДАРЕН!!!

Приложение:

Отправлен: 17.03.2008, 13:07
Вопрос задал: Сурыев Назар (статус: 8-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Serge R. Bochkareff
Здравствуйте, Сурыев Назар !
Надо переставить последнюю закрывающую фигурную скобку в конец файла. См. пример.

Приложение:

Ответ отправил: Serge R. Bochkareff (статус: 3-ий класс)
Ответ отправлен: 17.03.2008, 13:14

Отвечает: Иван Сергеевич
Здравствуйте, Сурыев Назар !

1. В скрипте page2.php я нашел всего два вызова функции mail(). Так что к Вам должно было приходить по два письма, а не три...
2. Чтобы посылать только одно письмо, логично во время исполнения скрипта собирать тело письма в переменную (например, использовать Вашу переменную $mess). Далее вызываете функцию mess(), е-майл у Вас есть, тему сообщения придумаете, а в качестве тела сообщения вставьте переменную $mess.
3. Искать по интернету подобные вопросы бессмысленно, сначала надо было вникнуть в используемый скрипт и разобраться в его логике ;)
Ответ отправил: Иван Сергеевич (статус: 4-ый класс)
Ответ отправлен: 17.03.2008, 13:29


Вопрос № 127.737
Доброго времени суток. Вновь необходима ваша помощь, уважаемые эксперты. Помогите, пожалуйста, решить последнюю проблему на пути к завершению моего скрипта "креатива". В бд есть таблица "creative", состоящая из двух полей - id и texts. Последнее хранит в себе текст, к примеру, размером в 3450 символов. Мне нужно вывести текст на страницу таким образом, чтобы он разбился на n-ное количество страниц, скажем, по 1000 символов на каждой. То есть, в случае примера, должно получится 4 страницы.
Отправлен: 17.03.2008, 14:49
Вопрос задал: Андрей Л (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Чаднов Н
Уважаемый, Андрей Л!
Предлагаю такой алгоритм:

1. стартуем сессию
2. Проверяем что переданно скрипту. Номер страницы(идем на 3) или ИД в базе.(идем на 4)
3. Загружаем данные из сессии. выдаем часть которую указали в Номере страницы.
4. Загружаем текст из базы по ид.
5. Делим текст на страницы (В приложении пример)
6. Заносим каждую часть в сессию.
7. Выводим первую часть.

Приложение:

Ответ отправил: Чаднов Н (статус: 2-ой класс)
Ответ отправлен: 17.03.2008, 15:21

Отвечает: Иван Сергеевич
Здравствуйте, Андрей Л!

Получить первые N символов из полученного текста очень просто (см. Приложение).
Однако тут встает вопрос об избыточности: даже при размере в 1000 символов мы получим 3450/1000 = 3,5 коэффициент избыточности. А если вдруг надо будет выводить по 100 символов? Каждый раз считывать весь текст и получать из него всего 1/35...
Есть более простой вариант - выбирать из базы данных не весь текст, а только вычисленный участок:

$query1 = "select id, SUBSTRING(texts,1,1000)";
$query2 = "select id, SUBSTRING(texts,1001,1000)";

Обратите внимание, что в mysql нумерация строк начинается с 1! При указании стартового смещения=0 запрос ничего не вернет.

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

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

Приложение:

Ответ отправил: Иван Сергеевич (статус: 4-ый класс)
Ответ отправлен: 17.03.2008, 15:28


Вопрос № 127.810
Здравствуйте, эксперты!
Хочу создать на сайте опрос, но хочу, чтобы при ответе на вопросы учитывались ответы на вопросы заданные ранее.
Например: "Вы били в нашей бане?" Да/Нет
Если "Да", то выходит следующий вопрос: "Вам у нас понравилось". Да/Нет.
Если "Нет", то - следующий: "А что Вам не понравилось?". И поле для ответа.
Отправлен: 17.03.2008, 21:28
Вопрос задал: Puma (статус: Практикант)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Чаднов Н
Хауреро, Puma!

Если на PHP то все свосем просто.
Первая страница.
Выводим вопрос.
Ответ отправляем на вторую страницу.
Вторая страница.
Если ответ положительный то записываем в базу.
Ответ отрицательный, выводим новую форму ввода.
Ответ отправляем на третью страницу.
Треться страница.
Если ответ положительный то записываем в базу.
Ответ отрицательный, выводим новую форму ввода.
Ответ отправляем на четвертую страницу страницу.
...
...
114 страница.
Если ответ положительный то записываем в базу.
Ответ отрицательный, выводим новую форму ввода.
Ответ отправляем на 115 страницу страницу.
115 страница.
Все записываем данные. Это конец.
И так далее можно до бесконечности. Можно все сделать в одном файле, используя сессию. Если Вы не можете написать сами, поищите в интернете должен быть такой скрипт.
Ответ отправил: Чаднов Н (статус: 2-ой класс)
Ответ отправлен: 17.03.2008, 21:55

Отвечает: Иван Сергеевич
Здравствуйте, Puma!

Давайте представим количество возможных исходов опроса:

1. Мнение пользователя (введенное в поле для ответа).
2. Промежуточное ДА/НЕТ, переводящее пользователя к следующему этапу.
3. Ответ, завершающий промежуточный опрос без перехода на следующий этап опроса.

В итоге смотрим получаемые таблицы:
/* Опросы */
id, title, id_firstquestion
/* Вопросы */
id, opros_id, text
/* Варианты ответа */
id, question_id, text, id_nextstep

Опросу соотвествует несколько вопросов (этапов), один из которых стартовый.
Вопрос состоит из идентификатора, текста вопроса и идентификатора опроса.
Каждому вопросу соответствует несколько вариантов ответа. Кроме идентификатора варианта и идентификатора вопроса, вариант содержит текст ответа и идентификатор следующего этапа (т.е. идентификатор следующего вопроса).
Если этот вопрос конечный (т.е. по сути это поле с вводом текста), то id_nextstep==0, а если это "отрубающий" ответ (например, не ходил человек в Вашу баню), то id_nextstep==-1.
Далее в скрипте остается проверять текущий этап опроса, и в зависимости от него формировать варианты ответов и интерфейсы пользователя. Механизм передачи ответов между скриптами можно реализовать с помощью сессий, как и было предложено в ответе выше.
Хранить в базе результаты опроса можно в таком виде:
/* Ответы */
id_user, id_opros, id_question, id_answer, text

Где id_answer - идентификатор последнего ответа. Если после ответа появилось поле ввода (id_answer==-2), то заполняем переменную text (необязательное поле, т.е. могущее содержать NULL)

Что в итоге?
Получим гибкую систему опросов, которая может содержать сколько угодно вариантов ответов, любую глубину вложенности и тд. Кроме того, нам не потребуется править скрипт опроса для замены одного опроса другим (или даже для добавления/удаления/редактирования вариантов ответа).

PS. Возможно, получилось немного сумбурно, я постарался описать Вам сам механизм.

Приложение:

Ответ отправил: Иван Сергеевич (статус: 4-ый класс)
Ответ отправлен: 17.03.2008, 22:26


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

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

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

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

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

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


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


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

В избранное