Hallo,
habe so eine Art Notizen-, Terminverwaltung webbasiert mit HTML5+PHP 7.2, Datenhaltung in MySQL-DB fürs Handy. Die Einzelaktionen wie
- einen neuen Eintrag erstellen
- bestehenden Eintrag ändern
- bestehenden Eintrag löschen
werden per AJAX-Request übertragen.
Ein Login ist involviert, danach wird auf https umgeleitet.
Ich lasse die Seite eigentlich immer auf, so dass clientseitig die Session bestehen bleibt
Das klappt soweit auch. Allerdings passiert mir hin und wieder, dass, wenn ich bspw. nach 2 Tagen Nichtbenutzung den Browser öffne (die Seite wird dann angezeigt) und einen neuen Eintrag generiere, dieser in der DB nicht angelegt wurde, obwohl ein ajax.readyState == 4 && aj.status == 200 zurück kam und damit verbundene Aktionen wie das Overlay ausblenden ausgeführt wurden:
die Ajax.php sieht so aus:
darin die auth.php:
Ziel ist, dass, wenn ich nach einer längeren Zeit im Browser eine Aktion vornehme, in AJAX.php geprüft wird, ob die Anmeldung noch besteht und im Falle der Nicht-Anmeldung auf das Login-Formular weitergeleitet wird. Genau das habe ich aus dem AJAX-Script heraus noch nie erlebt, ergo irgendwas ist da nicht richtig.
Ich hoffe, Ihr könnt mir auf die Sprünge helfen.
PS: Nicht wundern über mysql_query($sql);, zwischenzeitlich musste ich umstellen auf 7.2
Gruß
habe so eine Art Notizen-, Terminverwaltung webbasiert mit HTML5+PHP 7.2, Datenhaltung in MySQL-DB fürs Handy. Die Einzelaktionen wie
- einen neuen Eintrag erstellen
- bestehenden Eintrag ändern
- bestehenden Eintrag löschen
werden per AJAX-Request übertragen.
Ein Login ist involviert, danach wird auf https umgeleitet.
Ich lasse die Seite eigentlich immer auf, so dass clientseitig die Session bestehen bleibt
Das klappt soweit auch. Allerdings passiert mir hin und wieder, dass, wenn ich bspw. nach 2 Tagen Nichtbenutzung den Browser öffne (die Seite wird dann angezeigt) und einen neuen Eintrag generiere, dieser in der DB nicht angelegt wurde, obwohl ein ajax.readyState == 4 && aj.status == 200 zurück kam und damit verbundene Aktionen wie das Overlay ausblenden ausgeführt wurden:
Code:
ajax.readyState == 4 && aj.status == 200 zurück kam und damit verbundene Aktionen ausgeführt wurden. var aj = new XMLHttpRequest(); aj.onreadystatechange = function () { if (aj.readyState == 4 && aj.status == 200) { ... document.getElementById("overlay").style.display = "none"; } }; aj.open("GET", "ajax.php?...", true); aj.send();
die Ajax.php sieht so aus:
PHP-Code:
<?php
include('auth.php');
...
mysql_query($sql);
echo 'true';
?>
PHP-Code:
<?php
session_start();
if (!isset($_SESSION['angemeldet'])) {header('Location: https://...'); exit;}
?>
Ziel ist, dass, wenn ich nach einer längeren Zeit im Browser eine Aktion vornehme, in AJAX.php geprüft wird, ob die Anmeldung noch besteht und im Falle der Nicht-Anmeldung auf das Login-Formular weitergeleitet wird. Genau das habe ich aus dem AJAX-Script heraus noch nie erlebt, ergo irgendwas ist da nicht richtig.
Ich hoffe, Ihr könnt mir auf die Sprünge helfen.
PS: Nicht wundern über mysql_query($sql);, zwischenzeitlich musste ich umstellen auf 7.2
Gruß
Kommentar