You are not logged in.

  • Login

1

Monday, March 15th 2010, 2:20pm

Login Script via Ajax #2

Getrennt vom Thema: http://www.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

JavaScript Code

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


secure.php

PHP Quellcode

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


getestet wird das ganze über Xampp was bis jetzt auch super funzt !

2

Monday, March 15th 2010, 8:42pm

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: Formulare mit AJAX.. und ohne

Social bookmarks