Kommunikation mit Browser

Hallo,

ich habe vor Jahren mal ein Newsletter-Tool programmiert, bei dem je
nach Anzahl der Empfänger beim Verschicken der Mails plötzlich der
Browser die Verbindung beendete und dann sowas wie "Seite kann nicht
angezeigt werden" kam. Viele Tools verschicken daher die Mails z.B. in
100er Paketen und machen dann einen Reload, aber auch bei dieser Methode
kann es passieren, daß plötzlich ein Reload nicht klappt (DNS Fehler
etc.) und der User wird nicht mehr informiert.

Wie sieht heute die sicherste Methode mit PHP aus, um den Anwender
ständig über einen langwierigen Vorgang zu informieren (Ajax?).

Gruß,
Oliver
Oliver Benning [ Mo, 20 August 2007 18:39 ] [ ID #1800352 ]

Re: Kommunikation mit Browser

Oliver Benning schrieb:

> ich habe vor Jahren mal ein Newsletter-Tool programmiert, bei dem je
> nach Anzahl der Empfänger beim Verschicken der Mails plötzlich der
> Browser die Verbindung beendete und dann sowas wie "Seite kann nicht
> angezeigt werden" kam.

Du willst i.d.R. zum Versenden der Mails und zum Anzeigen des Status
nicht ein und denselben Prozess verwenden. Besser ist es, wenn ein
Prozess im Hintergrund die Mails verschickt und die Empfänger der Reihe
nach in der Datenbank abhakt. Ein anderer ("normaler") Prozess gibt Dir
aus wie viele schon abgehakt sind.

> Viele Tools verschicken daher die Mails z.B. in
> 100er Paketen und machen dann einen Reload

Das ist eine ganz schlimme Krücke.

> Wie sieht heute die sicherste Methode mit PHP aus, um den Anwender
> ständig über einen langwierigen Vorgang zu informieren (Ajax?).

Ja, z.B., aber auch ein normaler Reload taugt für die Anzeige. Nur zum
Versenden der Mails halt nicht :-)

> aber auch bei dieser Methode
> kann es passieren, daß plötzlich ein Reload nicht klappt (DNS Fehler
> etc.) und der User wird nicht mehr informiert.

Das ist doch eigentlich weniger schlimm. Wichtig ist es, festzuhalten,
welche Mails bereits verschickt wurden und welche nicht.

Grüße, Matthias

--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
do.not.REMOVETHAT [ Di, 21 August 2007 10:08 ] [ ID #1801500 ]

Re: Kommunikation mit Browser

Matthias P. Wuerfl wrote:
> Oliver Benning schrieb:
>
>> ich habe vor Jahren mal ein Newsletter-Tool programmiert, bei dem je
>> nach Anzahl der Empfänger beim Verschicken der Mails plötzlich der
>> Browser die Verbindung beendete und dann sowas wie "Seite kann nicht
>> angezeigt werden" kam.
>
> Du willst i.d.R. zum Versenden der Mails und zum Anzeigen des Status
> nicht ein und denselben Prozess verwenden. Besser ist es, wenn ein
> Prozess im Hintergrund die Mails verschickt und die Empfänger der
> Reihe nach in der Datenbank abhakt. Ein anderer ("normaler") Prozess
> gibt Dir aus wie viele schon abgehakt sind.

Wie erzeuge ich denn einen seperaten Prozess für das Versenden der
Mails? Taugt dafür "ignore_user_abort()"?
Oliver Benning [ Di, 21 August 2007 12:10 ] [ ID #1801506 ]

Re: Kommunikation mit Browser

Oliver Benning schrieb:

> Wie erzeuge ich denn einen seperaten Prozess für das Versenden der
> Mails? Taugt dafür "ignore_user_abort()"?

Am geschicktesten per Cronjob. set_time_limit() in Verbindung mit
ignore_user_abort() hat theoretisch genauso taug, allerdings hängt Dir
da zumindest bei der Modul-Variante von PHP immer noch ein völlig
unnützer Webserver dazwischen. Wie das bei CGI ist weiß ich nicht.

Grüße, Matthias

--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
do.not.REMOVETHAT [ Di, 21 August 2007 15:29 ] [ ID #1801521 ]
PHP » de.comp.lang.php.misc » Kommunikation mit Browser

Vorheriges Thema: Hilfe bei regulärem Ausdruck
Nächstes Thema: PHP-Umsetzung: "die Müllabfuhr kommt am..."