Autor |
Wiadomość
|
tapis |
Wysłany: Sro Gru 13, 2006 2:22 am Temat postu: Zbyt dlugie wykonywanie sie skryptu PHP |
|
|
Nieśmiały
Dołączył: 13 Gru 2006 Posty: 8
|
Witam serdecznie.
Mam problem z moim skryptem w php rozylajacym maile.
Zadaje zaptanie do bazy mysql i mam odpowiednia tablice adresow mail.
Pozniej w petli while rozsylam maile fukcja mail(). Jesli tych maili jest
malo to dziala OK, ale jak jest ich np. ponad 300 to skrypt nie wyrabia
i skrypcik php dostaje timeout od serwera www.
Bardzo prosze o pomoc jak moge napisac poprawny skrypt
rozszylajacy maile.
Dziekuje za odpowiedz.
Pozdrawiam
Wojtek Kaliszak
tapis@interia.pl |
|
Powrót do góry |
|
 |
Cooker |
Wysłany: Sro Gru 13, 2006 8:58 am Temat postu: |
|
|
Ziomek
Dołączył: 27 Lis 2006 Posty: 122
|
Być mozę serwer, na którym go odpalasz ma ustawiony za krótki czas przetwarzania skryptu (częste na wiekszości hostingów)... |
|
Powrót do góry |
|
 |
tapis |
Wysłany: Sro Gru 13, 2006 10:26 am Temat postu: |
|
|
Nieśmiały
Dołączył: 13 Gru 2006 Posty: 8
|
Tak z pewnoscia jest, ale niestety nie jest to do przeskoczenia. Jedynym ratunkiem dla mnie jest wiec zmodyfikowanie skryptu.
Pozdrawiam
Wojtek Kaliszak
tapis@interia.pl |
|
Powrót do góry |
|
 |
tapis |
Wysłany: Sro Gru 13, 2006 11:22 am Temat postu: |
|
|
Nieśmiały
Dołączył: 13 Gru 2006 Posty: 8
|
Poniżej podaję mój kod źródłowy:
<?
if(!$sql_sub=mysql_connect("ip", "user", "haslo"))
print"Błąd łączenia z serwerem bazodanowym"!";
if(!mysql_select_db ("nazwabazy"))
print"Błąd przy wybieraniu bazy danych!";
$tabelka="tabelka1";
$zapytanie="SELECT * FROM $tabelka WHERE (wartosc='abc' OR wartosc='def' OR wartosc='ghi') ORDER BY adresemail";
$wykonaj=mysql_query ($zapytanie);
$wiersze=mysql_num_rows($wykonaj);
$argument2="...temat...";
$argument3="...treść...";
print"<U>Listowanie adresów email:</U><BR>";
while ($wiersz = mysql_fetch_array ($wykonaj))
{
$argument1=$wiersz[2];
if(mail($argument1,$argument2,$argument3,"From: User<user@serwer.pl>","-f user@serwer.pl"))
print"".$argument1."<BR>";
else
print"Błąd funkcji mail(), najprawdopodobnie zwrot maila z serwera pocztowego!".$argument1."<BR>";
}
print"<BR>Wysłano wiadomości:".$wiersze."";
?>
Adresów email jest 350, wiadmości są typy txt każda wielkości 2-5KB.
Skrypt się wykonuje kilka minut po czym dostaję błąd serwera nr 500.
Część maili dochodzi do odbiorców.
Pozdrawiam
Wojtek Kaliszak
tapis@interia.pl |
|
Powrót do góry |
|
 |
tapis |
Wysłany: Czw Gru 14, 2006 1:08 am Temat postu: |
|
|
Nieśmiały
Dołączył: 13 Gru 2006 Posty: 8
|
|
Powrót do góry |
|
 |
matheus |
Wysłany: Czw Gru 14, 2006 4:20 pm Temat postu: |
|
|
Moderator
Dołączył: 22 Lis 2006 Posty: 487 Skąd: 3 Miasto
|
jaki masz serwer ?? Obsluguje php ??  _________________ A biada milczącym o Tobie, że mając mowę, stali się niemymi.
| Sopot | | Lębork |
|
Powrót do góry |
|
 |
tapis |
Wysłany: Czw Gru 14, 2006 8:12 pm Temat postu: |
|
|
Nieśmiały
Dołączył: 13 Gru 2006 Posty: 8
|
Problem juz rozwiazalem.
Ja sprawdzalem u siebie to skryptem:
<?php
set_time_limit(900);
ignore_user_abort(true);
for ($i = 1; $i <= 20; $i++) {
sleep(60);
mail('user@jakisserwer.pl', 'ciagle zyje', $i*60);
};
?>
Aby funkcja set_time_limit(); zadzialala, parametr safe_mode musi byc ustawiony na OFF.
Mozna to spradzwic funkcja phpinfo();
Pozdrawiam
Wojtek |
|
Powrót do góry |
|
 |
matheus |
Wysłany: Czw Gru 14, 2006 11:33 pm Temat postu: |
|
|
Moderator
Dołączył: 22 Lis 2006 Posty: 487 Skąd: 3 Miasto
|
dzieki moze sie przydac dla innych
temat zamykam _________________ A biada milczącym o Tobie, że mając mowę, stali się niemymi.
| Sopot | | Lębork |
|
Powrót do góry |
|
 |
ghosti |
Wysłany: Pią Gru 15, 2006 1:11 am Temat postu: |
|
|
 Operator
Dołączył: 26 Lis 2006 Posty: 538
|
matheus napisał: |
dzieki moze sie przydac dla innych
temat zamykam |
jednak chyba dzisiaj o jedno piwko za duzo i nie trafiles w zamknij , a tak btw. nie wiem czy az 3 posty obok siebie to koniecznosc.. _________________ bankier fotka forum nastolatek ciechocinek toruń noclegi |
|
Powrót do góry |
|
 |
|