Antwort an „Aragorn“ verfassen

Hallo zusammen,

hier der abschließende Stand der Dinge. Die Testversion des Login-Dialogs funktioniert, d.h. die Daten kommen in der serverLogin.php an und werden korrekt an den Dialog zurückgemeldet. Zum Testen habe ich zusätzlich die Möglichkeit eingebaut, dass der Server die Ausgangsdaten in ein LogFile schreibt. Ferner habe ich den Aufruf im Login-Dialog aufgrund der neuen Faktenlage korrigiert. Der heißt jetzt "startLogin" und am Ende erfolgt "notifyLogin". Am Schluß habe ich noch den Rückgabewert in der serverLogin.php von "Text" auf "Record" umgestellt, was auch mühsam war, da ich mir die Datenstrukturen erst erarbeiten mußte. Noch einmal herzlichen Dank an Rolf, alleine hätte ich das nicht hinbekommen. Nachfolgend die neuen Quelltexte.

dlgLogin.js:

// Login auf dem Server starten
function startLogin(aMailAdr, aPassWd) {
  const loginBody = new FormData();
  loginBody.set("eMail", aMailAdr);
  loginBody.set("passWd", aPassWd);
  // Daten an den Server übermitteln und auf das Ergebnis warten
   fetch("serverLogin.php", { method: "POST", body: loginBody })
   .then(function(response) {
      if (response.ok)
         return response.text();
      else
         throw new Error(`Login-Fehler! Status: ${response.status}  ${response.statusText}`)
   })
   .then(function(sndResp) {
      notifyLogin(sndResp);
   });
}

// Login-Daten vom Server notieren
function notifyLogin(aLoginData) {
  // vorerst nur testen
  let ansText = "";
  try {
    let logData = JSON.parse(aLoginData);
    ansText = "UserID = " + logData['userId'] +
              "\nLoggedIn = " + logData['loggedIn'] +
              "\nLogTypeID = " + logData['logTypeId'] +
              "\nLogText = " + logData['logText'];
  }
  catch(err) {
    ansText = "Fehler beim Dekodieren: " + err.message;
  }
  alert(ansText);
  // später nur im Erfolgsfall    
  freeLoginDlg();
}

serverLogin.php:

<?php
// Empfangene Daten auslesen
$eMailAdr = $_POST['eMail'];
$passWord = $_POST['passWd'];

// Antwort (vorerst)
$textAnswer = "eMail-Adresse: " . $eMailAdr . ", Passwort: " . $passWord;

// Textzeile zur Log-Datei hinzufügen (Test)
$logFile  = "D:/phpLog.txt";
$currTime = new DateTime();
$logText  = "\n" . $currTime->format("d.m.Y H:i:s"). ": " . $textAnswer; 
file_put_contents($logFile, $logText, FILE_APPEND);

// Rückgabe-Daten (vorerst)
$logData = array('userId' => 0, 'loggedIn' => false, 'logTypeId' => 0, 'logText' => $textAnswer);

echo json_encode($logData);
?>

Auf async und await habe ich vorerst verzichtet. Inzwischen bin ich weiter und habe den Login-Dialog mit der Datenbankanbindung fertiggestellt. Es bleibt noch eine Kleinigkeit, für die ich aber einen neuen Thread öffnen werde.

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen