Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Javascript funktioniert nicht nach Einbindung von PHP (https://www.delphipraxis.net/205909-javascript-funktioniert-nicht-nach-einbindung-von-php.html)

anon92 29. Okt 2020 12:46

Javascript funktioniert nicht nach Einbindung von PHP
 
Hallo zusammen,

ich lerne gerade den Umgang mit PHP und co. und habe dafür eine kleine Login-Seite gebastelt, bzw. versuche noch das zu tun.

Ich benutze Laravel/Valet um PHP zu benutzen und habe es heute endlich geschafft die gewünschte Funktion einzubauen. Seitdem funktioniert allerdings mein Javascript nicht mehr, mit welchem es bis dahin keine Probleme gab...

Der Plan war, dass ich mit PHP prüfe ob die Felder leer sind und dann dementsprechend anzeigen lasse dass es notwendig ist diese auszufüllen.
Mit Javascript prüfe ich dann, ob die eingegebenen Daten korrekt sind. Wenn ja gibt es einen Alert dass das Login erfolgreich war, wenn nicht eine Fehlermeldung dass mindestens eine Eingabe nicht richtig ist.
Als Daten habe ich ganz einfach den Usernamen auf user und das Passwort auf password gesetzt. Eine Datenbank muss da nicht eingebaut werden, das Ganze Projekt dient nur der Übung um erstmal reinzukommen.

Hier die HTML-Datei:
Code:
<!DOCTYPE html>
<head>
  <meta charset="UTF-8">
  <title>Login</title>
  <link rel="stylesheet" href="login.css">
  <script defer src="login.js"></script>
</head>

<body>
  <?php
  $usernameErr = $passwordErr = "";
  $username = $password = "";
 
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
   
    if (empty($_POST["username"])) {
      $usernameErr = "Username is required";
    } else {
      $username = test_input($_POST["username"]);
    }

    if (empty($_POST["password"])) {
      $passwordErr = "Password is required";
    } else {
      $password = test_input($_POST["password"]);
    }
  }
  function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
  }
  ?>

  <main id="main-holder">

    <h1 id="login-header">Login</h1>
   
   <form id="login-form" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

      <input type="text" name="username" id="username-field" class="login-form-field" placeholder="Username">
       <span class="error">* <?php echo $usernameErr;?></span>
        <br><br>
      <input type="password" name="password" id="password-field" class="login-form-field" placeholder="Password">
       <span class="error">* <?php echo $passwordErr;?></span>
        <br><br>

      <input type="submit" name="submit" value="Submit">
    </form>

    <div id="login-error-msg-holder">
      <p id="login-error-msg">Invalid username <span id="error-msg-second-line">and/or password</span></p>
    </div>

  </main>

</body>
</html>
Und hier die Javascript-Datei:

Code:
const loginForm = document.getElementById("login-form");
const loginButton = document.getElementById("login-form-submit");
const loginErrorMsg = document.getElementById("login-error-msg");

loginButton.addEventListener("click", (e) => {
    e.preventDefault();
    const username = loginForm.username.value;
    const password = loginForm.password.value;

    if (username === "user" && password === "password"){
        alert("You have successfully logged in.");
    } else {
        loginErrorMsg.style.opacity = 1;
    }
})

Delphi.Narium 29. Okt 2020 13:57

AW: Javascript funktioniert nicht nach Einbindung von PHP
 
In Deinem HTML kann ich kein Element mit id="login-form-submit" finden. Dies wird jedoch vom JavaScript erwartet.

Fehlt da eventuell bei
Code:
<input type="submit" name="submit" value="Submit">
was?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz