Login Script via Ajax #2

  • Login Script via Ajax #2

    Getrennt vom Thema: easy-coding.de/login-script-via-ajax-t1360-2.html
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Hey Donut,
    ich poste jetzt mal ofiziel mein Problem mit dem Login.
    Ich bekomme immer die Fehlermeldung

    Fehler in Zeile 18 bei der ajax.js:

    document.getElementById(
    document.getElementById('content').innerHTML = feedback;
    Hinzu kommt noch das ich patu kein Login hinbekomme. Ich habe mal getElementBYid durch
    location.href = .... ersetzt um überhaupt festzustellen ob die Funktion ausgeführt wird.
    Sie wird es, nur leider, trotz Datenbank abfrage immer in die Test.php geleitet (bei meiner Probe mit document.location.href = 'Test.php')
    Hat jemand eine Idee ????

    so sieht es bei mir aus:
    Ajax.js

    Quellcode

    1. function ajax(login)
    2. {
    3. try {
    4. req = window.XMLHttpRequest?new XMLHttpRequest():
    5. new ActiveXObject("Microsoft.XMLHTTP");
    6. } catch (e) {
    7. //Kein AJAX Support
    8. }
    9. req.onreadystatechange = function() {
    10. if ((req.readyState == 4) && (req.status == 200)) {
    11. var feedback = req.responseText;
    12. if(login == true && feedback.substr(0,11) == "<-ON->")
    13. document.location.href = "quelle/myprofile.php";
    14. else if(login == false)
    15. document.getElementById('mainContent').innerHTML = feedback;
    16. else
    17. document.getElementById('content').innerHTML = feedback;
    18. }
    19. }
    20. req.open('POST', 'secure.php');
    21. req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    22. if(login == true)
    23. req.send('submit=1&user='+document.ajaxlogin.user.value+'&password='+document.ajaxlogin.password.value);
    24. else
    25. req.send(null);
    26. }
    Alles anzeigen


    secure.php

    Quellcode

    1. <?php
    2. include 'sql/opendb.php';
    3. $conn;
    4. $file = "SELECT nick_name,password,user_id FROM t_customer WHERE nick_name ='{$_POST['user']}'";
    5. $file_query = mysql_query($file);
    6. while($daten = mysql_fetch_assoc($file_query))
    7. {
    8. if($daten['user_id'] != 0)
    9. {
    10. $id = $daten['user_id'];
    11. $nick = $daten['nick_name'];
    12. $pass = $daten['password'];
    13. }
    14. session_start();
    15. if($_POST['submit'] == 1) {
    16. $_SESSION['user'] = $_POST['user'];
    17. $_SESSION['password'] = md5($_POST['password']);
    18. $_SESSION['id'] = $id;
    19. }
    20. $user = $_SESSION['user'];
    21. $login = false;
    22. $user = $nick;
    23. $password = $pass;
    24. if($user == $_SESSION['user'] && $password == $_SESSION['password']) {
    25. $login = true;
    26. }
    27. }
    28. if($login == false) {
    29. echo '<div style="position:absolute;left:20%;top:100px;width:300px;border:1px solid #000000">';
    30. if($_POST['submit'] == 1)
    31. echo 'Fehler beim Login. Benutzername und/oder Passwort nicht korrekt.';
    32. else
    33. echo 'Bitte anmelden';
    34. require('login.php');
    35. echo '</div>';
    36. die();
    37. }
    38. include 'sql/closedb.php';
    39. require('content.php');
    40. ?>
    Alles anzeigen


    getestet wird das ganze über Xampp was bis jetzt auch super funzt !
  • Hi,
    das Beispiel ist nicht komplett um es nachvollziehen zu können.
    Mögliche Ursachen: DIV Container mit den IDs mainContent und content können nicht gefunden werden.

    Außerdem ist anhand des Ausschnitts nicht sichergestellt, dass die Daten richtig übermittelt werden, dazu fehlt das Formular "ajaxlogin" - mal im Firebug geschaut?

    Eine elegante Möglichkeit mit AJAX und Formularen zu arbeiten findest du übrigens noch hier: [wiki]Formulare mit AJAX.. und ohne[/wiki]