Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> rozsylanie maili
arti1
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 18.11.2003

Ostrzeżenie: (0%)
-----


A teraz cos takiego:

w MySQL'u trzymam adresy email (kolo 1000). Chce zrobic wysylanie - wybieram najpierw do kogo (np. dla osob w wieku 10 -20lat). Wpisuje tresc (html).

Dobra, teraz chce wyslac (w skrocie):
[php:1:4c51decccd]<?php


#do kogo
$query = "SELECT DISTINCT email FROM tabela";
$mysql_result = mysql_query($query, $mysql_link);
while($row = mysql_fetch_row($mysql_result))
{
$do = $row[0];

$from = "ARTI<adres@wp.pl>";

$mailheaders="From: $fromn";
$mailheaders.="Reply-To: $fromn";
$mailheaders.="X-Mailer: PHPn";
$mailheaders.="MIME-version: 1.0n";
$mailheaders.="Content-type: text/html; charset=iso-8859-2";

$wyslij=mail($do, $temat, $tresc, $mailheaders);

}
?>[/php:1:4c51decccd]


Z tym, ze przy wysylce do duzej ilosci osob (ok.500-1000) wykonywanie skryptu bedzie trwało długo.
Mysle nad takim rozwiazaniem - wysyla 50 maili i przeładowuje strone, pokazuje sie napis: wysłano do pierwszej 50-tki osob, prosze czekac wysylanie trwa nadal. Co kolejne 50 wyslanych maili, niech sie przeładowuje strona i pojawia kolejny napis. Jak to zrobić?

Samo przeładowywanie to wiem że można użyć js (location.replace).

co ważne:
wszystko sie odgrywa w pliku do ktorego kieruja dwa submity i sa warunki:
[php:1:4c51decccd]<?php


if( isset($_POST['podglad']) )
{
//pokazuje podglad
}
else if( isset($_POST['krok2']) )
{
//tu jest caly proces wysylania
}
?>[/php:1:4c51decccd]
jest to o tyle wazne ze przy przeładowywaniu strony może chyba być problem ze spełnieniem tego drugiego warunku.. czy nie?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Wsumie to sądze, że całość będzie oparta o pobieranie rekordów z parametrami
Kod
LIMIT $start,$po_ile
i przekazywanie zmiennych, które zmienią te parametry. Ale nie jestem w tym zbyt obcykany wiec prosze o wskazówki, czy dobrze kombinuje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
arti1
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 18.11.2003

Ostrzeżenie: (0%)
-----


nie podałem tego w poscie ale nie zapomnialem ignore_user_abort(true);

mam dokladnie tak jak podales
[php:1:7a5c320751]<?php
ignore_user_abort(true);
set_time_limit(0);
?>[/php:1:7a5c320751]

i wciaz mi sie wyswietla
Kod
Cannot set time limit in safe mode


w manualu jest napisane:
Kod
Ostrzeżenie

set_time_limit() has no effect when php is running in tryb bezpieczny. There is no workaround other than turning off safe mode or changing the time limit in the php.ini.


co mam zrobić? - nie mam dostępu do ustawień php ani nie mam na serwerku pliku php.ini
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 11:07