Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите с файлом

Сообщения:  [1-10]   [11-16] 

 
 автор: Valeri   (03.12.2005 в 21:06)   письмо автору
 
   для: Bronepoz[)   (03.12.2005 в 13:46)
 

$massmail[stop] берется из графы таблицы заданий на рассылку. то есть если к примеру на сайте зарегино 4000 пользователей, а мне надо отправить только 200, то $massmail[stop] будет равна 200. так что если ей конкретно указать 100, то и рассылка будет идти только 100 пользователям.
конечно если как то извернутся то можно попробовать использовать этот вариант.

насчет set_time_limit(0); пробовал, она почиму то игнорируется.

вообще основной нагруз идет по памяти, у меня такая мысля мелькнула, в php.ini выставлено использовать память для выполнения скрипта 8М, а если поставить 16 или 32М, то это как то может спасти ?

   
 
 автор: Bronepoz[)   (03.12.2005 в 13:46)   письмо автору
 
   для: Valeri   (01.12.2005 в 03:30)
 

А не проще убрать лимит времени функцией set_time_limit(0);

   
 
 автор: cheops   (03.12.2005 в 13:29)   письмо автору
 
   для: Valeri   (03.12.2005 в 13:19)
 

А я так понял у вас что-то похожее уже делается. Т.е. за цикл формирует запрос
<?php
$users
=@mysql_query("select signup_date,signup_ip_host,password,first_name,last_name,email,email_setting,".mysql_prefix."users.username from ".mysql_prefix."users where email_setting>=0 and account_type!='canceled' and vacation<'$curdate' order by signup_date limit $thisstart,$massmail[stop]");
?>

Конструкция limit начинает выборку с позиции $thisstart и выполняет $massmail[stop] позиций. Т.е. $massmail[stop] должно быть равно 100.

   
 
 автор: Valeri   (03.12.2005 в 13:19)   письмо автору
 
   для: cheops   (03.12.2005 в 13:04)
 

вообще то по идеи цикл рассылки идет тут

<?
if ($user['email_setting']>0){
sendmassmail($user[email],trim($subject),trim($message), "Return-Path: ".massmail_email."\nFrom: \"".system_value('site_name')."\" <".system_value("massmail_email").">\nReply-To: ".system_value("massmail_email")."\nX-Mailer: Cash Crusader\n".$high);  
list(
$junk,$emaildomain)=split("@",$user[email]);
$emaildomainct[$emaildomain]++;
}} 
@
mysql_query("update ".mysql_prefix."mass_mailer set current=current+1 where massmailid=$massmail[massmailid]"); 
}
?>

   
 
 автор: cheops   (03.12.2005 в 13:04)   письмо автору
 
   для: Valeri   (03.12.2005 в 01:09)
 

К сожалению, все отступы нарушены и найти цикл невозможно, какой из этих циклов несёт отвественность за рассылку?
<?php
while ($row=@mysql_fetch_row($keywords))
while(
$row=@mysql_fetch_array($userlist)){ 
while(
$row=@mysql_fetch_array($getclicks)){
while(
$row=@mysql_fetch_array($getads)){ 
while(
$fields=@mysql_fetch_row($getfields)){
while(
$row=@mysql_fetch_array($getrow)){ 
while(
$row=@mysql_fetch_array($getrow)){
while (
$user=@mysql_fetch_array($users))
?>

   
 
 автор: Valeri   (03.12.2005 в 01:09)   письмо автору
 
   для: cheops   (03.12.2005 в 00:34)
 

я понял как вы предлогаете зделать, но в этом случае придется перекраивать почти весь скрипт, а это все таки напряжно.
хорошо поставим вопрос немного подругому.
есть цикл выборки из базы и по рассылке писем, функция в самом низу скрипта, как можно прикрутить к этому циклу что бы он к примеру выполнялся только 100 раз а потом завершал работу. но при этом после какого то время когда крон подаст команду на зауск скрипта он снова начал крутить данный цикл и так же после отсылки 100 писем завершался ?
надеюсь я ясно выразил свою мысль ?

   
 
 автор: cheops   (03.12.2005 в 00:34)   письмо автору
 
   для: Valeri   (02.12.2005 в 16:53)
 

Хм... тут лучше оперировать конструкцие LIMIT в SQL-запросе, позволяющей ограничивать число извлекаемых записей. Но более конкретно сказать сложно, так как неизвестна структура таблиц и код достаточно жёстко оптимизирован, так что его сложно уже читать.

   
 
 автор: Valeri   (02.12.2005 в 16:53)   письмо автору
 
   для: cheops   (02.12.2005 в 14:11)
 

с этим понятно, но как это реализовать в скрипте, ведь там идет обыкновенный цикл, вытащил емайл-отправил, опять вытащил-отправил, а при вашем варианте значит надо как то вытаскивать сразу несколько емайлов и подставлять их.

   
 
 автор: cheops   (02.12.2005 в 14:11)   письмо автору
 
   для: Valeri   (02.12.2005 в 01:29)
 

Подробнее можно посмотреть в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=7487. Всё сводится к тому, что требуется добавить заголовок
<?php
$headers
.="Bcc: sidor@mysite.ru\r\n";
$headers.="Bcc: sidor1@mysite.ru\r\n";
$headers.="Bcc: sidor2@mysite.ru\r\n";
?>

столько раз, сколько "слепых" копий вы хотите отправить.

   
 
 автор: Valeri   (02.12.2005 в 01:29)   письмо автору
 
   для: cheops   (02.12.2005 в 00:26)
 

может подскажите как это применить в скрипте ?
а то что то я плохо представляю как можно проделать этот финт.

   

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования