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

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

  Все выпуски  

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


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

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

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

Выпуск № 828
от 04.12.2007, 02:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 447, Экспертов: 47
В номере:Вопросов: 6, Ответов: 8


Вопрос № 111315: 1. Есть поле DATATIME, как проверить что есть записи у которых дата более месяца. 2. Как вывести всю таблицу. (Обьясните пожалуйста как обработать результат запроса) Спасибо за ответы на вопрос №111311...
Вопрос № 111373: Здравствуйте! Подскажите новичку :) У меня есть форма с кучей элементов, ее заполняет пользователь, а затем мне нужно эту информацию послать в базу данных. Есть ли какой-нить быстрый способ это сделать, массивом как-то например, чтобы не переписы...
Вопрос № 111414: Здравствуйте ув. эксперты. Такая вот проблемка опять: Нужно нарисовать круговую диаграмму. Я рисую (код в приложении). В принципе ничего сложного, но диаграмму нужно разбить на 2 сектора, причём величина сектора заранее не известна. Значение ...
Вопрос № 111432: После отправки письма с формы обратной связи с русскими буквами, на почту приходит абракадабра. Я уже узнал, что проблема в кодировке (с сайтов письма идут в win-1251, а почтовые программы открывают его как KOI8-R). Но я далёк от программиров...
Вопрос № 111433: Здравствуйте ! Можно ли на php или на чем нибудь еще , связанном с интернетом запаковать в архив фотографию , расположенную на удаленном сервере. Использовать при этом подключение по ftp. Если можно , то приведите пример пожалста. а заодно как ее рас...
Вопрос № 111464: После отправки письма с формы обратной связи, на почту приходит письмо, в котором в графе "От" написано Nobody. Хотелось бы, чтобы там была написана желаемая надпись. Как это сделать? И ещё: что необходимо добавить в код, чтобы ...

Вопрос № 111.315
1. Есть поле DATATIME, как проверить что есть записи у которых дата более месяца.
2. Как вывести всю таблицу. (Обьясните пожалуйста как обработать результат запроса)

Спасибо за ответы на вопрос №111311
Отправлен: 28.11.2007, 02:54
Вопрос задал: LEXASOFT (статус: 8-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Alex_Nick
Здравствуйте, LEXASOFT!
1. проверить что есть записи у которых дата более месяца можно так:
$num_days=30; //отступ назад, в данном случае 30 дней
$date=strftime("%y/%m/%d",strtotime("-".$num_days." day", time())); //дата "месяц назад"
$mydate = mysql_connect(db_server,db_login,db_pwd) or die("Сервер недоступен"); //соединение сервером баз данных, установите значения параметров db_server,db_login,db_pwd
mysql_select_db(db_name) or die("БД недоступна"); //выбор нужной базы данных
$intres=mysql_query("select * from my_table where reg_date<'".$date."' ",$mydate);// выбор всех элементов таблицы, где значение поля reg_date "раньше", чем установленная дата
if(mysql_num_rows($intres)>0){ выполняете действия если есть записи у которых дата более месяца}else{выполняете действия если нет записей у которых дата более месяца}

2. Чтобы вывести результаты запроса я использую такую конструкцию:
допустим, есть таблица my_table с полями id, name. для вывода всех строк таблицы:
$mydate = mysql_connect(db_server,db_login,db_pwd) or die("Сервер недоступен"); //соединение сервером баз данных, установите значения параметров db_server,db_login,db_pwd
mysql_select_db(db_name) or die("БД недоступна"); //выбор нужной базы данных
$intres=mysql_query("select * from my_table",$mydate);//выбор всех строк таблицы
echo "<table>"; //начало таблицы
for($i=0;$i<mysql_num_rows($intres);$i++){ //в цикле перебор результатов запроса
$row=mysql_fetch_object($intres); //получение очередной строки значений
echo "<tr><td>".$row->id."</td><td>".$row->name."</td></tr>"; //вывод строки таблицы со значениями
} //конец цикла
echo "</table>"; //конец таблицы

Удачи!

Ответ отправил: Alex_Nick (статус: 2-ой класс)
Ответ отправлен: 28.11.2007, 10:52
Оценка за ответ: 5
Комментарий оценки:
Спасибо уже нашел! Вот как я сделал: $result = mysql_query("SELECT `date_log` FROM `ls_counter` WHERE `date_log` < DATE_SUB(NOW(), INTERVAL 1 MONTH)") or die(mysql_error()); if (mysql_num_rows($result)!=0) { $result = mysql_query("SELECT * FROM `ls_counter` ORDER BY `date_log`") or die(mysql_error()); $mail_text = ""; while($row = mysql_fetch_row($result)){ $mail_text .= ""; } $mail_text .= "
DATE_LOGUSERREMOTE_ADDRREMOTE_HOSTREMOTE_IDENTREMOTE_PORTREMOTE_USERHTTP_CONNECTIONHTTP_COOKIEHTTP_KEEP_ALIVEREQUEST_URIHTTP_REFERERHTTP_USER_AGENTHTTP_CACHE_CONTROLHTTP_CACHE_INFOHTTP_CLIENT_IPHTTP_FORWARDEDHTTP_PROXY_CONNECTIONHTTP_VIAHTTP_X_FORWARDED_FOR
".geto($row[1])."".geto($row[2])."".geto($row[3])."".geto($row[4])."".geto($row[5])."".geto($row[6])."".geto($row[7])."".geto($row[8])."".geto($row[9])."".geto($row[10])."".geto($row[11])."".geto($row[12])."".geto($row[13])."".geto($row[14])."".geto($row[15])."".geto($row[16])."".geto($row[17])."".geto($row[18])."".geto($row[19])."".geto($row[20])."
";

Отвечает: Flynn
Здравствуйте, LEXASOFT!
Вам для этого достаточно использовать встроенные в MYSQL функции для работы с датой и временем.
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
В даннгом случае вам надо MONTH - возвращает месяц и DAYOFMONTH() - день в месяце.
Вариант второй - так как формато постоянный - можно сделать тоже саоме только функцией вырезания определенных символов и сравнить их (6 и 7 как месяц с 9 и 10 как день). Но первый вариант все же лучше, так что приведу только пример его

Select DAYOFMONTH(C.date_add), MONTH(C.date_add), C.* From comments C Where DAYOFMONTH(C.date_add)<MONTH(C.date_add)
Ответ отправил: Flynn (статус: 8-ой класс)
Ответ отправлен: 28.11.2007, 16:12
Оценка за ответ: 5
Комментарий оценки:
Спасибо!


Вопрос № 111.373
Здравствуйте! Подскажите новичку :)
У меня есть форма с кучей элементов, ее заполняет пользователь, а затем мне нужно эту информацию послать в базу данных. Есть ли какой-нить быстрый способ это сделать, массивом как-то например, чтобы не переписывать каждое значение формы и не приравнивать к значению поля таблицы. Я специально создала таблицу в базе данных в такой же последовательности как и последовательность элементов формы.
И еще вопрос, подскажите компилятом с помощью которого можно было бы облегчить задачу программирования на php связанного с MySQL
Заранее спасибо!
Отправлен: 28.11.2007, 14:28
Вопрос задала: Mart (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Товарищ Бородин
Здравствуйте, Mart!
Дело не в том, в какой последовательности Вы создавали таблицу и форму, а как были именованы поля. Если поля в таблице и в форме именуются одинаково, то тогда имеет смысл написать "конструктор" запроса к базе данных. Принцип такой: сначала переберем члены массива $_POST (я надеюсь, Вы используете POST-формы????) с помощью цикла FOREACH. Создаем две переменные: имен полей таблицы $fields и значений $values. Начальное значение устанавливаем в пустое.
Код такой примерно(см. приложение).
Может не сработать, потому что я его не тестировал. Но если возникнут ошибки, проверьте две строки сразу после цикла foreach, функцию substr(я могу немного напутать в ее синтаксисе, потому что никогда ей не пользуюсь).

Приложение:

---------
Ничто не сближает людей так, как совместное преступление.

Ответ отправил: Товарищ Бородин (статус: Студент)
Ответ отправлен: 28.11.2007, 15:27


Вопрос № 111.414
Здравствуйте ув. эксперты.
Такая вот проблемка опять:
Нужно нарисовать круговую диаграмму. Я рисую (код в приложении). В принципе ничего сложного, но диаграмму нужно разбить на 2 сектора, причём величина сектора заранее не известна. Значение на которые нужно разбить передаётся в процентах. (т.е. нужно от круга отделать сектор сколько то процентов).
Так вот, контур диаграммы я нарисовал. В переменной $prosent_zashisl как раз передаётся этот процент. (пускай, для примера, он будет равен 80). Вот собственно по контуру отделяется эти 80%. А вот как соединить этот отделённый контур с центром диаграммы (круга то есть) я не знаю((( Т.е. я не знаю как определить координаты самой последнее точки, нарисованной функцией:
imageArc($img,100,100,180,180,0,$prosent_zashisl*360/100,$qcolor);
Т.е. нужно как-то определить координаты последней бирюзовой точки (этим цветом как раз рисуется данный контру).
В книге Дмитрия Котерова «РНР5. Наиболее полное руководство.» Я вообще не нашёл какой либо функции, определяющей положение последней нарисованной точки.
Как это можно сделать?

Приложение:

Отправлен: 28.11.2007, 18:50
Вопрос задал: Стас Тельнов/[анти]КИЛЛЕР (статус: 4-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Мусихин А И
Здравствуйте, Стас Тельнов/[анти]КИЛЛЕР!

Математику надо изучать, а не только программирование :)
Функции такой ней, но можно вычислить ее математически.
x=xcenter+0.5*width*cos(ф), y=ycenter-0.5*height*sin(ф)
Для вашего случая (если я все правильно понял) -
x = floor(100+0.5*180*cos($prosent_zashisl*360/100))
y = floor(100+0.5*180*sin($prosent_zashisl*360/100))

А лучше пользуйтесь imagefilledarc() - дуга с заполнением, тогда рисовать не надо

ЗЫ. Котеров очень хорош для начинающих, для серьезных проектов читайте что-нибудь другое, например http://phpclub.ru/manrus/index.html
Ответ отправил: Мусихин А И (статус: 1-ый класс)
Ответ отправлен: 28.11.2007, 20:44
Оценка за ответ: 3
Комментарий оценки:
Спасибо конечно, но поставить вам высокую оценку, к сожалению, не могу((( Координаты считаются совсем не правильно!

А это почитаю, поставраюсь разобраться. К сожалению в математике я действительно ничего не понимаю((


Вопрос № 111.432
После отправки письма с формы обратной связи с русскими буквами, на почту приходит абракадабра.
Я уже узнал, что проблема в кодировке (с сайтов письма идут в win-1251, а почтовые программы открывают его как KOI8-R).
Но я далёк от программирования.
В приложении небольшой код, который, как я понимаю, отвечает за отправку писем.
Как его изменить или дополнить, чтобы избавится от вышеописанной проблемы?
Буду очень благодарен всем ответившим.

Приложение:

Отправлен: 28.11.2007, 20:39
Вопрос задал: Александр Данилюк (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Мусихин А И
Здравствуйте, Александр Данилюк!

Используйте в заголовке Content-type. Примерный код в приложении. К сожалению не знаю насчет украинских кодировок. Можете попробовать заменить 'windows-1251' в коде на другие кодировки, если не поможет.

Приложение:

Ответ отправил: Мусихин А И (статус: 1-ый класс)
Ответ отправлен: 28.11.2007, 21:02
Оценка за ответ: 5

Отвечает: Райкин Сергей Александрович
Здравствуйте, Александр Данилюк!
Просто замените строчку отправки e-mail на приведенную.

Приложение:

---------
программист должен работать в свое удовольствие

Ответ отправил: Райкин Сергей Александрович (статус: 4-ый класс)
Ответ отправлен: 28.11.2007, 22:04
Оценка за ответ: 5
Комментарий оценки:
Очень благодарен


Вопрос № 111.433
Здравствуйте ! Можно ли на php или на чем нибудь еще , связанном с интернетом запаковать в архив фотографию , расположенную на удаленном сервере. Использовать при этом подключение по ftp. Если можно , то приведите пример пожалста. а заодно как ее распаковать :)
Отправлен: 28.11.2007, 20:44
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Nexus
Здравствуйте, Whiteman!

Приведенный в приложении код упаковывает папку со всем ее содержимым в зип-архив и выдает этот архив юзеру под именем $dirname.".zip" (при отладке, если вдруг будут ошибки - они запишутся в этот якобы зип архив, так что смотри чтоб не вылетали варнинги или нотайсы). Используется класс PhpConcept Library - Zip Module 2.5. У метода create три параметра - первый путь к файлу или папке которые нужно упаковать, второй - путь который нужно убрать, т.е. ты упаковываешь www/folder/file.jpg задаешь в качестве второго параметра www/folder и в архиве у тебя будет только картинка, без папок. Распаковывать еще проще:

$zip = new PclZip("uploads/".$a_name.".zip");
$content = $zip->extract(PCLZIP_OPT_PATH, "uploads/".$a_name);
Работать с фтп тоже можно. Кстати не уверен, но возможно даже с при помощи fopen. Если не получится - классов для работы с фтп хватает.

Кстати, а зачем фотографию упаковывать? Они ж обычно в jpeg, так что упаковывать смысла как бы нет...

Приложение:

Ответ отправил: Nexus (статус: 10-ый класс)
Ответ отправлен: 28.11.2007, 21:13
Оценка за ответ: 5
Комментарий оценки:
Да мне это нужно , потому что я не знаю где хранить фотографии для моего сайта . У меня фотографий где то гигабайт, а народ их поганит неизвестным образом, так что там я не храню. Вот я и ищу другой способ. В голову пришло только кидать архивы с фотографиями на рапидшэйр или вроде этого. Но я не знаю как программно запаковывать и распаковывать файлы в архив. Спасибо !


Вопрос № 111.464
После отправки письма с формы обратной связи, на почту приходит письмо, в котором в графе "От" написано Nobody.
Хотелось бы, чтобы там была написана желаемая надпись. Как это сделать?
И ещё:
что необходимо добавить в код, чтобы почта отправлялась не анонимно, а через логин и пароль определённого почтового ящика на хостинге?
В приложении небольшой код, который, как я понимаю, отвечает за отправку писем.
Как его изменить или дополнить, чтобы избавится от вышеописанной проблемы?
Буду очень благодарен всем ответившим.

Приложение:

Отправлен: 28.11.2007, 23:18
Вопрос задал: Александр Данилюк (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PVS
Здравствуйте, Александр Данилюк!
У Вас почти всё написано, только подправте:

$header="From: $name <$mail> ";
$header.='Content-Type: text/html; charset="windows-1251"';
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 29.11.2007, 09:52
Оценка за ответ: 4
Комментарий оценки:
Спасибо, но после изменения кода результат остался тот же.
А так же, по торому вопросу???


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

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

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

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

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


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


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

В избранное