Sven Rautenberg: if(@

Beitrag lesen

Moin!

Vernünftige Programmierer arbeiten ohne @.
aha, und wie stellst du z.B. sicher, dass man die mail() Funktion ohne Fehler abläuft, d.h. dass in der php.ini ein entsprechender SMTP Dienst eingetragen ist und dieser einwandfrei läuft.

Das Zurverfügungstellen einer funktionsfähigen Infrastruktur ist Aufgabe des Server-Administrators. Dazu gehört auch der Mailversand per Skript.

Wollte man die PHP-seitige Konfiguration prüfen, würde ich auf ini_get() zurückgreifen - die einschlägigen Konfigurationsoptionen sind ja nicht so zahlreich, dass das in Arbeit ausarten würde.

Aber gerade das mail()-Kommando ist das mit Abstand ekligste in ganz PHP - was primär aber daran liegt, dass EMail einfach nur als unzuverlässig zu betrachten ist, zumindest wenn man den "Erfolg" am Rückgabewert "true" oder "false" ermittelt.

Eine deutlich schönere Methode, Mails zu versenden, wäre beispielsweise mit PEAR Mail.

Klar kann ich einen eigenen Error Handler basteln (oder Error Reporting ganz austellen), ist aber auch im Fall von Mail nicht unbedingt wünschenwert.

Ich meine solch ein Fall:
if(@mail(...))
  echo "Mail wurde gesendet";
else
  echo "Leider konnte deine Mail nicht gesendet werden. Erreichen kannst du uns unter abc@efg.com";

Wäre schön zu wissen, wie vernünftige Programmierer dieses ohne @ lösen.

Dein Beispiel geht davon aus, dass ungewiß ist, ob der benutzte Server den Mailversand konfiguriert bekommen hat. Das halte ich für wenig wahrscheinlich. Mailversand ist in der Regel konfiguriert. Und sollte er nicht funktionieren, äußert sich das dummerweise nur in seltenen Fällen durch den Rückgabewert "false" der Mailfunktion.

Aber dein "Ersatzszenario" im Mißerfolgsfall ist ja auch alles andere als äquivalent. Es gibt einfach Mails, die man bei Nichtversand nicht einfach dem Benutzer zur freien Formulierung zurückgeben kann, sondern die programmgeneriert verschickt werden muss.

- Sven Rautenberg

--
"Love your nation - respect the others."
0 60

if(@

rap
  • php
  1. 0
    Felix Riesterer
    1. 0
      Sven Rautenberg
      1. 0
        Tom
        1. 0
          molily
          1. 0
            Tom
            1. 0
              molily
              1. 0
                Tom
                1. 0
                  at
        2. 0
          dedlfix
          1. 0
            Tom
            1. 0
              dedlfix
        3. 0
          Sven Rautenberg
          1. 0

            Wie arbeiten vernünftige Programmierer?

            Tom
            1. 5

              bitte mal wieder runterkommen

              romy
              1. 0

                Danke für Deine Fürsorge

                Tom
                • menschelei
            2. 0
              Sympathisant
          2. 1
            molily
      2. 0
        bleicher
        1. 0
          Auge
          1. 0
            bleicher
            1. 0
              Tom
            2. 0
              Auge
              1. 0
                molily
                1. 0
                  Tom
                2. 0
                  Auge
                3. 0
                  dedlfix
          2. 0
            Tom
            1. 0
              Auge
              1. 0
                Tom
                1. 0
                  Auge
                  1. 0
                    Tom
                    1. 0
                      Auge
                      1. 0
                        Tom
                        1. 0
                          Auge
                          1. 0
                            Tom
                            1. 0
                              Auge
                              1. 0
                                Tom
                            2. 0
                              dedlfix
                              1. 0
                                Tom
        2. 0

          Die Spannung wächst

          Tom
        3. 0
          Sven Rautenberg
      3. 0
        Klaus
        1. 0
          Tom
          1. 0

            vernünftige[tm] Fehlerbehandlung in PHP

            Tom
            1. 0
              molily
              1. 0
                Tom
                1. 0
                  Auge
                2. 0
                  Christian Seiler
                  1. 0
                    Tom
                    1. 0
                      molily
                      1. 0
                        Tom
                        1. 0
                          molily
                          1. 0
                            Tom
                    2. 0
                      Christian Seiler
                      1. 0
                        Tom
                        1. 0
                          Christian Seiler
                3. 0
                  molily
                  1. 0
                    Tom
        2. 0
          Sven Rautenberg