Auge: Wie Bestellnummer in Online-Shop in Log-Datei schreiben

Beitrag lesen

Hallo

Grundsätzlich stellt sich mir aber immernoch die Frage nach dem Warum. Wenn ich in irgendeinem Webshop eine Bestellung getätigt habe, war es bisher immer so, dass ich eine Bestellbestätigung per E-Mail und zumeist auch per Bestätigungsseite bekommen habe. Auf jedem dieser Wege wurde ich auch über die Bestellnummer informiert. Mir fällt partout kein Grund ein, warum jemand bei mir ein Log über die Bestellung anlegen oder eine E-Mail erzeugen wollen sollte.

Was soll mit der Information in der Log-Datei erreicht werden? Warum wird, wenn ich denn ein E-Mail-Programm installiert habe, eine E-Mail mit der Bestellnummer erzeugt und wohin soll ich die überhaupt senden?

Primär handelt es sich um eine rein theoretische Frage um besser nachvollziehen zu können, was mit Javascript, html und PHP möglich bzw. nicht möglich ist. Hier hast du mir eine sehr gute Erklärung geliefert. Meine Fragen sind bestens beantwortet, vielen Dank.

Schön. 😀


Sekundär sehe ich schon einen praktischen Nuzten:Nehmen wir an man erhält im Zeitraum X 100 Bestellungen im Shop. Nehmen wir des weiteren an, dass der Shop alle 100 Bestellungen korrekt aufzeichnet. Das heißt aber noch lange nicht, das als 100 Kunden die bestellt haben auch IMMER korrekt auf die Bestellbestätigungsseite weitergeleitet werden. Wenn es bei der Weiterleitung auf die Bestellbestätigungsseite einen temporären Fehler gibt werden vielleicht nur 80 der 100 Kunen auf die Bestellbestätiungsseite weitergeleitet.

Wenn das so ist, gibt es einen riesigen Fehler im serverseitgen System. Wenn es ein oder zweimal bei 10000 Bestellungen vorkommt, dass die Weiterleitung auf die Bestellbestätigungsseite nicht funktioniert, würde ich von gelegentlichen Hickups des Servers ausgehen, zumal die Bestellung im System existiert und es zusätzlich noch die Bestätigung per E-Mail gibt. Bei 20% nichterfolgter Weiterleitungen ist irgendwo ein übergroßer Wurm drin.

An der Stelle gälte es aber, den Fehler zu beseitigen und nicht, irgendwelche unzuverlässigen Umgehungen des Problems zusammenzustöpseln.

Durch oben angesprochene Logdatei, die per Javascript auf der Danke-Seite generiert werden würde (was ja laut Dir leider nicht möglich ist), wüßte ich ob die Danke-Seite bei allen 100 Bestellungen erreicht wurde oder bei weniger z.B. nur bei 80.

Jetzt stellt sich die Aufgabe wieder anders dar. Du willst auf dem Server ein Log darüber führen, ob die Bestätigungsseite angezeigt wurde? Verstehe ich das richtig?

Gibt es vielleicht eine einfachere, bessere Lösung um herauszufinden, ob die Danke-Seite immer erreicht wird?

Wenn das die Bestellung verarbeitende Skript zum schluss auf die Bestätigungsseite weiterleitet, kann in der Datenbank beim Datensatz für die Bestellung ein Flag gesetzt werden, das bestätigt, dass die Weiterleitung aufgerufen wurde. Dazu braucht es Zugriff auf den Code (vermutlich PHP?), um diese Anweisung einzubauen und Zugriff auf die Datenbankstruktur, um ein passendes Feld in der passenden Tabelle zu erzeugen. Damit kann unmittelbar vor der Weiterleitung geloggt werden, dass diese Weiterleitung unmittelbar danach ausgelöst wurde. Ob die Siete zum Browser gesendet wurde und im Browser angezeigt wurde, weißt du so allerdings nicht.

Wenn Zugriff auf die Bestätigungseite besteht und dort serverseitig Programmcode ausgeführt werden kann, kann dort der Code untergebracht werden, mit dem der gerade erfolgende Aufruf geloggt werden kann. Ob die Seite im browser angezeigt wird, weißt du immer noch nicht. Wenn die Seite nicht angezeigt werden sollte, ist es aber beim bestätigt erfolgten Aufruf wesentlich wahscheinlicher, dass der browser geschlossen oder die Netzwerkverbindung unterbrochen wurde, als dass ein serverseitiges Problem aufgetreten wäre.

Schlussendlich kann nach dem laden der Seite im Browser mit JavaScript ein Skript ausgeführt werden, dass z.B. mit Ajax [1] einen Request an ein auf dem Server liegendes (PHP?)-Skript sendet, mit dem wiederum der nun bestätigt erfolgte Aufruf der Bestätigungsseite im Browser in der Datenbank vermerkt wird. Der eine oder andere Benutzer ohne JS wird so allerdigns nicht geloggt werden könne. Das halte ich aber nicht für ein relevantes Problem.

Es gibt also mehrere Wege, an die Aufgabe heranzugehen, bzw. Teilaufgaben zu erledigen. Zudem ist der Wert der Info bei jedem Weg verschieden und unterschiedlich zuverlässig. Das ist dann Sache der Interpretation der Daten. Eventuell will man ja erst einmal nur wissen, ob es überhaupt zuverlässig zur serverseitigen Weiterleitung kommt.

Für den Nutzer des Shops sollte es aber immer noch die Bestätigungs-E-Mail als alternativen Weg der Information geben. Von daher würde ich den ganzen Komplex eher als theoretisches Problem betrachten. Dass die Beseitigung der Ursache für fehlgeschlagene Aufrufe die zu erledigende Aufgabe ist, hatte ich ja oben schon angemerkt.

Tschö, Auge

--
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett

  1. Es gibt da auch eine modernere Methode, über die Browserunsterstützung kann ich allerdings nichts sagen. Die IEs fehlen wohl noch? Kann wer anders mehr sagen? ↩︎