Andreas H.: Wie Bestellnummer in Online-Shop in Log-Datei schreiben

Beitrag lesen

Das meinte ich durchaus - aber wenn Du Dich außerstande siehst, den Dateizugriff selbst zu programmieren (was sich in php.net fix finden lässt - siehe fopen, fprintf & Co), wie kommst Du dann auf das dünne Brett, in einer komplexen Software wie JTL4 die Stelle finden zu wollen, wo Du Dich einhängen musst, ohne JTL dabei zu shreddern? Bei diesem Job kann zumindest ich Dir nicht helfen.

Das hast du schon recht :-).

Der Code, den Du brauchst, sieht prinzipiell so aus (ich setze zwei Variablen als Quelle - da wirst Du sehen müssen, was Du aus JTL herausholen kannst). Ich habe die Funktion so gebaut, dass sie dem zu loggenden Text einen Timestamp voranstellt.

function writeToLog($text)
{
   $log = fopen("log.file", "a");
   if ($log !== FALSE) {
      fwrite($log, date("d.m.Y H:i:s") . " - $text\n");
      fclose($log);
   }
}

Ich erkläre es mal in eigenen Worten bevor ich es teste:

  • Erst muss ich mir irgendwie die Bestellnummer auslesen und in $text schreiben. z.B. so:
$text = <aktuelle Bestellnummer aus JTL4-Shop auslesen>;
  • Dann rufe ich Deine Funktion mit der aktuellen Bestellnummer auf z.B. so:

writeToLog($text);
  • Deine Funktion schreibt die aktuelle Bestellnummer inklusive Zeitstempel in die Datei log.file, die vermutlich im root Verzeichnis der JTL4 Shop Installation liegt.

Stimmt das so?

fopen("log.file", "a") öffnet die Log-Datei im aktuellen Verzeichnis. Keine Ahnung welches das ist, vermutlich das Hauptverzeichnis des Web, in dem JTL läuft. Das wirst Du an einen anderen Pfad anpassen müssen.

Warum muss ich den Pfad anpassen? Das Hauptverzeichnis passt doch?

Eventuell musst noch dem Webserver-Prozess Schreibrecht auf dieses Verzeichnis einräumen (frag mich nicht, was Du da tun musst, ich kenne deinen Server nicht, ich weiß auch nicht welchen Webserver du hast und ob der als root läuft oder unter irgendeinem technischen User).

Das sind gerade bömische Dörfer :-(.

Wie vergibt man Schreibrecht auf einem Webserver?

  • Per htaccess-Datei?
  • Im Backend des Webservers?
  • Per Änderung der Verzeichnisrechte per ftp?
  • Irgendwie anders?

Es handelt sich um einen Apache Web-Server.

Was ist denn der Unterschied zwischen root und User bzw. warum ist das wichtig zu wissen?