none
Client-Server Kommunikation über AJAX innerhalb einer PHP-Session

    Frage

  • 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 neue, geänderte bzw. gelöschte Einträge in der DB nicht aktualisiert wurden, obwohl ein 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 
    include('auth.php'); 
    ...
    mysql_query($sql); 
    echo 'true'; 
    ?>

    darin die auth.php:

    <?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, im AJAX-Script 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 nicht richtig.

    Ich hoffe, Ihr könnt mir auf die Sprünge helfen.

    Tom


    Mittwoch, 13. März 2019 10:00

Alle Antworten