Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Coder How To's

Algorithmen Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

Ajax-Login

Dies ist ein simpler Mechanismus um Benutzernamen und Passwort an eine JavaScript Funktion zu übertragen. In der JavaScript Funktion findet ein AJAX Request auf login.php statt.

In der login.php kann man nun die Variablen $_GET['user'] und $_GET['pw'] verwenden um die Authentifizierung zu überprüfen. Dann kann man z.B. eine SESSION starten.

Das Trickreiche an diesem Code ist der onsubmit Eventhandler. Indem wir return false liefern bricht die reguläre HTML Aktion ab und die Seite wird nicht neugeladen.
Innerhalb der Funktion können wir ganz leicht mit this auf die Formular-Objekte zugreifen. Wie wir von DOM gewohnt holen wir den Werte mit value.

Sollte der Benutzer kein JavaScript aktiviert haben, wird durch diesen Weg die im Attribut action hinterlegte URL aufgerufen. Hier kann man eine alternative Behandlung durchführen.

ajax-login.html
  1. <title>AJAX Login mit onsubmit Request</title>
  2.  
  3. <script type="text/javascript">
  4. <!--
  5. var req;
  6.  
  7. try {
  8.         req = window.XMLHttpRequest?new XMLHttpRequest():
  9.                 new ActiveXObject("Microsoft.XMLHTTP");
  10. } catch (e) {
  11.         //Kein AJAX Support
  12. }
  13.  
  14. /**
  15. * AJAX Login Request an login.php
  16. * @param user -> Benutzername
  17.  * @param password -> Passwort
  18.  */
  19. function sendRequest(user, password) {
  20.         req.onreadystatechange = function() {
  21.  
  22.                 if ((req.readyState == 4) && (req.status == 200)) {
  23.                         alert(req.responseText);
  24.                 }
  25.         }
  26.  
  27.         req.open("GET", 'login.php?user='+user+'&password='+password);
  28.         req.send(null);
  29.  
  30.         return false; //liefere false um das Neuladen der Seite zu verhindern
  31. }
  32. //-->
  33. </script>
  34. </head>
  35.  
  36. <form method="get" onsubmit="return sendRequest(this.user.value, this.pw.value)" action="login.php">
  37.  
  38.         Benutzer: <input type="text" name="user" /><br />
  39.         Passwort: <input type="text" name="pw" /><br />
  40.  
  41.         <input type="submit" />
  42. </form>
  43.  
  44. </body></html>
Zuletzt geändert am 09.08.2007 18:40 Uhr
  Impressum