Thomas: Login Script

Beitrag lesen

Hallo zusammen,

Ich habe mal versucht mit Ajax ein Login Script zu erstellen. Das ist mir mir meiner Meinung nach auch einigermassen gut gelungen. Da es so etwa mein erstes grosses Script in Ajax ist frage ich hier mal nach. Ist mein Script so sinnvoll, sicher etc..
Ein paar werden sich vieleicht Fragen warum Ajax... Ich wollte einen Login der auch schön ausschaut und mit Ajax lassen sich Ladegrafiken etc meiner Meinung nach am besten verwirklichen.

  
<?php  
session_start();  
  
if(isset($_POST['name']))  
{  
if(isset($_POST['ajax']))  
{  
	$pw = md5($_POST['pw']);  
	$name = $_POST['name'];  
	  
	$con = mysql_connect("localhost","Benutzername","Passwort");  
	mysql_select_db("Datenbank",$con);  
	$sql="SELECT userid FROM user WHERE username='".$name."' AND passwort='".$pw."' LIMIT 1";  
	$result= mysql_query($sql);  
	if(mysql_num_rows($result) == 1)  
	{  
		$user=mysql_fetch_assoc($result);  
		$userid = $user['userid'];  
		$sql="UPDATE user SET session='".session_id()."' WHERE userid=".$userid;  
     	mysql_query($sql);  
		echo "1";  
	}  
	else  
	{  
		echo "2";  
	}  
}  
  
elseif(!isset($_POST['ajax']))  
{  
	$pw = md5($_POST['password']);  
	$name = $_POST['username'];  
	  
	$con = mysql_connect("localhost","Benutzername","Passwort");  
	mysql_select_db("Datenbank",$con);  
	$sql="SELECT userid FROM user WHERE username='".$name."' AND passwort='".$pw."' LIMIT 1";  
	$result= mysql_query($sql);  
	if(mysql_num_rows($result) == 1)  
	{  
		$user=mysql_fetch_assoc($result);  
		$userid = $user['userid'];  
		$sql="UPDATE user SET session='".session_id()."' WHERE userid=".$userid;  
     	mysql_query($sql);  
		Header("Location: home.php");  
	}  
	else  
	{  
		Header("Location: index.php?login=false");  
	}  
}  
exit;  
}  
?>  

  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<meta name="robots" content="noindex,nofollow" />  
<link rel="stylesheet" href="login.css" type="text/css" media="screen" />  
<title>Login</title>  

  
<script language="javascript" type="text/javascript">  
<!--  
function unsu() {  
login();  
return false;  
}  
  
  
function handle(result) {  
if(result == 1) {  
document.getElementById('messages').innerHTML = "<div id='ajax_accept'> Login erfolgreich...</div>"  
setTimeout("window.location = 'home.php';", 1500);  
}  
else {  
document.getElementById('messages').innerHTML = "<div id='ajax_error'> Überprüfen Sie ihre Angaben...</div>"  
}  
}  
  
function login() {  
var data = "name=" + document.getElementById('username12').value + "&pw=" + document.getElementById('passwort').value + "&ajax=ja";  
var httpObject = null;  
document.getElementById('messages').innerHTML = "<div id='ajax_load'>Überprüfe Daten...</div>";  
  
if (window.XMLHttpRequest)  
{  
httpObject = new XMLHttpRequest();  
}  
else if (window.ActiveXObject)  
{  
	try  
	{  
    	httpObject = new ActiveXObject("Msxml2.XMLHTTP");  
    }  
	catch (e)  
	{  
    	try  
		{  
        	httpObject = new ActiveXObject("Microsoft.XMLHTTP");  
        }  
		catch (e)  
		{  
			httpObject = null;  
		}  
     }  
}  
if (httpObject != null)  
{	  
	httpObject.onreadystatechange = auswerten;  
	httpObject.open('POST', "index.php", true);  
	httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
	httpObject.setRequestHeader("Content-length", data.length);  
	httpObject.setRequestHeader("Connection", "close");  
	httpObject.send(data);  
}  
  
function auswerten() {  
		if(httpObject.readyState == 4)  
		{  
			if(httpObject.status == 200)  
			{  
			result = httpObject.responseText;  
			setTimeout("handle(result)", 1500);  
			return false;  
			}  
		}  
}  
  
  
}  
//-->  
</script>  

  
</head>  
  
<body>  
<div id="abstand"></div>  
	<div id="login">  
		<img src="img/login_logo.png" alt="Login" style="width:489px;height:164px" />  
		<form method="post" action="index.php" class="png">  
			<label for="username" id="username">  
				<span>Benutzername: </span>  
				<input type="text" name="username" id="username12" onfocus="change('user');" onblur="unchange('user');" />  
			</label>  
			<label for="password" id="password">  
				<span>Kennwort: </span>  
				<input type="password" name="password" id="passwort" onfocus="change('pw');" onblur="unchange('pw');" />  
			</label>  
			<div id="messages">  

~~~~~~php
  
			<?php  
			if(isset($_GET['login']))  
			{  
				if($_GET['login'] == "false")  
				{  
				echo "<div id='ajax_error'> Überprüfen Sie ihre Angaben...</div>";  
				}  
			}  
			?>
~~~~~~html
  
			</div>  
			<input type="submit" value="Login" class="button" onclick="return unsu();" />  
		</form>  
	</div>  
</body>  
</html>  

Vielen Dank im Voraus

Thomas