Hallo an alle, ich bin nicht sicher, ob der Post hier im richtigen Subforum ist, falls nicht, bitte entschuldigt.
Und zwar möchte ich gerne tracken, wie lange ein Benutzer auf einer Seite aktiv ist. Dabei habe ich die timeme.js gefunden und installiert. Ich habe das Script bei jedem Seitenaufruf eingebunden und möchte neben der Dauer der Aktivität auch die PageID sowie die UserID speichern. Mein Skript sieht dann so etwa aus:
Code:
<script src="files/js/timeme.js"></script>
<script>
$(document).ready(function() {
<?= "var uid = '{{user::id}}';"; ?>
<?= "var uid = (uid == '') ? 0 : '{{user::id}}';" ?>
if(uid != '') {
// Initialize library and start tracking time
TimeMe.initialize({
currentPageName: window.location.href, // current page
idleTimeoutInSeconds: 30, // seconds
});
var starts = Date.now();
// Send AJAX request
$(window).on("unload", function(e) {
$.ajax({
type: 'POST',
url: 'files/php/time.php',
data: {
pageid: {{page::id}},
userid: uid,
start: starts,
end: new Date().getTime(),
duration: TimeMe.getTimeOnCurrentPageInSeconds(window.location.href)
},
async: false
});
});
}
});
</script>
Die anschließende PHP-Datei befindet sich in der Dateiverwaltung und ist auf öffentlich gestellt, da sonst eine Fehlermeldung seitens Contao kommt (so etwas sollte doch sicherlich nicht öffentlich sein oder?). Meine Frage ist nun, ob meine Vorgehensweise sicher für Angriffe ist oder ob und wie ich anders vorgehen sollte, da ich es erst einmal lauffähig machen wollte? Leider habe ich bei so etwas kaum Erfahrung, weshalb mir jeglicher Rat als hilfreich erscheint.
Edit: Ist es möglich, das Datenbankobjekt innerhalb der PHP-Datei zu nutzen? Ich habe es nur mit einer erneuten Verbindung zur Datenbank via PDO geschafft, andernfalls sagt er mir, dass er die Klasse nicht finden kann, wenn ich es mit
Code:
use Contao\Database;
$dataBase = \Database::getInstance();
probiere.
Lesezeichen