Loginscript mit Sessions,cookies und Mysql

Hier mal ein kleineres Loginscript ich weiß nicht gerade das beste ^^

erstmal die tabelle

 

CREATE TABLE `users` (

`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,

`name` VARCHAR( 30 ) NOT NULL ,

`password` VARCHAR( 250 ) NOT NULL ,,

`email` VARCHAR( 180 ) NOT NULL ,

PRIMARY KEY ( `id` )

) TYPE = MYISAM ;

 


config.php

 
 
<?php
 
$db['host'] ="";//mysql host meist localhost
 
$db['user'] =""; // mysqluser
 
$db['passwd'] =""; //mysqlpasswort
 
$db['name'] =""; // name der datenbank
 
?>
 


register.php

 
 
<?php 
 
ob_start();
 
session_start (); 
 
require ('config.php');
 
 
 
$sql_connect = mysql_connect($db['host'], $db['user'], $db['passwd'])
 
		   OR die('Fehler bei der Verbindung zur Datenbank aufgetreten');
 
		   
 
$db=mysql_select_db($db['name']);
 
		   OR die('Konnte Datenbank nicht auswählen');
 
		   
 
 if ((isset($_COOKIE["username"]))&&(isset($_COOKIE["pw"])) && ($_SESSION["eingeloggt"] != 1))
 
  { //abfrage ob cookies existieren und ob schon eingeloggt wenn cookies existieren und nicht eingeloggt ist dann werden hier die abfragen gemacht
 
	 $username=$_COOKIE["username"]; //inhalt aus dem cookie in $username reinsetzen 
 
	 $sql=mysql_query("select * from users where name='$username'"); //daten  auslesen vom $username
 
	 while($row = mysql_fetch_array($sql))
 
				{
 
				
 
				//inhalte aus der db in varis speichern 
 
				$id = $row['id'];
 
				$user = $row['user'];
 
				$email = $row['email'];
 
				$pw2 = $row['password'];
 
				
 
				}
 
	 $pw =$_COOKIE["pw"]; //inhalt des cookies in der vari pw speichern 
 
 
 
	 if ($pw == $pw2) //abfrage ob db pw mit cookie pw stimmt
 
	 { //wenn ja sessions setzen 
 
		$_SESSION["user_id"] = $id;
 
		$_SESSION["user"] = $user;
 
		$_SESSION["email"] = $email;
 
		$_SESSION["eingeloggt"] = 1;
 
		 echo '<meta http-equiv="refresh" content="0; URL=index.php">'; //umleitung zuer index seite
 
		}//abfrage ob pw im cookie stimmt
 
	 else
 
	 { //wenn nicht kommt das formular
 
		
 
	  echo'<form name="posting" action="register.php" method="post"> ';
 
	  echo' Name*<br>';
 
	  echo'<input type="text" name="name" id="namefeld" value=""><br>';
 
	  echo'Passwort*<br>';
 
	  echo'<input type="text" name="passwort" id="namefeld" value=""><br>';
 
	  echo'Passwort wiederholung*<br>';
 
	  echo'<input type="text" name="passwort2" id="namefeld" value=""><br>';
 
	  echo'Email*<br>';
 
	  echo'<input type="text" name="email" id="namefeld" value=""><br>';
 
	  echo'<input type="submit" value="Regestrieren" class="Button3" style="width: 120px;" id="button">';
 
	  echo'<input type="hidden" name="action" value="Regestrieren"><br><br>	';
 
	  echo'</form>';
 
		
 
	 }
 
  }//abfrage ob session und cookies existieren 
 
  else
 
  { ///wenn nicht kommt das formular
 
		
 
	  echo'<form name="posting" action="register.php" method="post"> ';
 
	  echo' Name*<br>';
 
	  echo'<input type="text" name="name" id="namefeld" value=""><br>';
 
	  echo'Passwort*<br>';
 
	  echo'<input type="text" name="passwort" id="namefeld" value=""><br>';
 
	  echo'Passwort wiederholung*<br>';
 
	  echo'<input type="text" name="passwort2" id="namefeld" value=""><br>';
 
	  echo'Email*<br>';
 
	  echo'<input type="text" name="email" id="namefeld" value=""><br>';
 
	  echo'<input type="submit" value="Regestrieren" class="Button3" style="width: 120px;" id="button">';
 
	  echo'<input type="hidden" name="action" value="Regestrieren"><br><br>	';
 
	  echo'</form>';
 
  }
 
  
 
  
 
 if ($action == "Regestrieren")
 
 {
 
  if (!$name || !$passwort || !$passwort2 || !$email ) //abfrage ob alle Felder ausgefüllt wurden
 
  { //wenn nicht Fehlermeldung
 
   echo 'Sie haben nicht alle Benötigten Felder ausgefüllt';
 
  }
 
  else
 
  {
 
  if($passwort==$passwort2) //abfrage ob pw 1 mit 2 stimmt
 
  {//wenn ja
 
	if (!eregi ("^([a-z0-9_]|-|.)+@(([a-z0-9_]|-)+.)+[a-z]{2,4}$", $email))//abfrage ob email richtiges format hat 
 
	{//wenn email kein richtiges format hat
 
	 echo 'Ihre Emailadresse ist nicht gültig';
 
	} 
 
	else 
 
	{ //wenn alles richtig ausgefüllt in db eintragen 
 
	 $sql = "INSERT INTO users (name, password, email) VALUES ('$name', sha1('$passwort'), '$email')";
 
	 $sql2 = mysql_query($sql);
 
	 echo 'Danke für ihre Regiestration';
 
		 $close =mysql_close($sql_connect);
 
	 echo '<meta http-equiv="refresh" content="3; URL=index.php">'; //weiterleitung zur index seite
 
	}
 
  }
 
  else
 
  {
 
   echo 'Die beiden Passwörter stimmen nicht überein';
 
  }
 
 }						
 
}						  
 
flush();
 
ob_end_flush() ;
 
?>	
 


login.php

 
 
<?php 
 
ob_start();
 
session_start (); 
 
require ('config.php');
 
 
 
 
 
$sql_connect = mysql_connect($db['host'], $db['user'], $db['passwd'])
 
		   OR die('Fehler bei der Verbindung zur Datenbank aufgetreten');
 
		   
 
$db=mysql_select_db($db['name']);
 
		   OR die('Konnte Datenbank nicht auswählen');
 
		   
 
 if ((isset($_COOKIE["username"]))&&(isset($_COOKIE["pw"])) && ($_SESSION["eingeloggt"] != 1))
 
  { //abfrage ob cookies existieren und ob schon eingeloggt wenn cookies existieren und nicht eingeloggt ist dann werden hier die abfragen gemacht
 
	 $username=$_COOKIE["username"]; //inhalt aus dem cookie in $username reinsetzen 
 
	 $sql=mysql_query("select * from users where name='$username'"); //daten  auslesen vom $username
 
	 while($row = mysql_fetch_array($sql))
 
				{
 
				
 
				//inhalte aus der db in varis speichern 
 
				$id = $row['id'];
 
				$user = $row['user'];
 
				$email = $row['email'];
 
				$pw2 = $row['password'];
 
				
 
				}
 
	 $pw =$_COOKIE["pw"]; //inhalt des cookies in der vari pw speichern 
 
 
 
	 if ($pw == $pw2) //abfrage ob db pw mit cookie pw stimmt
 
	 { //wenn ja sessions setzen 
 
		$_SESSION["user_id"] = $id;
 
		$_SESSION["user"] = $user;
 
		$_SESSION["email"] = $email;
 
		$_SESSION["eingeloggt"] = 1;
 
		 echo '<meta http-equiv="refresh" content="0; URL=index.php">';//weiterleitung zur index seite
 
		}//abfrage ob pw im cookie stimmt
 
	 else
 
	 { //wenn nicht kommt das formular
 
	   
 
	  echo'<form name="posting" action="login.php" method="post">';
 
	  echo'Name<br>';
 
	  echo'<input type="text" name="name" id="namefeld" value=""><br>';
 
	  echo'Passwort<br>';
 
	  echo'<input type="text" name="passwort" id="namefeld" value=""><br><br>';
 
	  echo'<input type="submit" value="Login" class="Button3" style="width: 80px;" id="button">';
 
	  echo'<input type="hidden" name="action" value="Login"><br><br>';	
 
	  echo'</form>';
 
	  
 
	 }
 
  }//abfrage ob session und cookies existieren 
 
  else
 
  { //wenn nicht kommt das formular
 
	   
 
	  echo'<form name="posting" action="login.php" method="post">';
 
	  echo'Name<br>';
 
	  echo'<input type="text" name="name" id="namefeld" value=""><br>';
 
	  echo'Passwort<br>';
 
	  echo'<input type="text" name="passwort" id="namefeld" value=""><br><br>';
 
	  echo'<input type="submit" value="Login" class="Button3" style="width: 80px;" id="button">';
 
	  echo'<input type="hidden" name="action" value="Login"><br><br>';	
 
	  echo'</form>';
 
  }
 
  
 
  if ($action == "Login") //abfrage ob login gedrückt wurde
 
{ //wenn ja
 
if ((!empty($name)) && (!empty($passwort))) //abfrage ob felder ausgefüllt wurden
 
			{
 
				$users=mysql_query("select * from ma_users where name='$name'"); //datensätze auslesen
 
				while($row3 = mysql_fetch_array($users))
 
				{//in varis speichern
 
				$id = $row3['id'];
 
				$user = $row3['name'];
 
				$email = $row3['email'];
 
				$style = $row3['style'];
 
				$pw2 = $row3['password'];
 
				}
 
				$pw=sha1($passwort); //mit sha1 umwandeln 
 
				if ($pw ==$pw2) //abfragen ob pw1 mit 2 stimmt
 
				{ //wenn ja
 
				  //cookies und sessions setzen
 
				 setcookie("username",$user,time()+2592000);
 
				 setcookie("pw",$pw,time()+2592000);
 
				 $_SESSION["user_id"] = $id;
 
				 $_SESSION["user"] = $user;
 
				 $_SESSION["email"] = $email;
 
				 echo '<meta http-equiv="refresh" content="0; URL=index.php">';
 
				 
 
				}
 
				else
 
				{//wenn pw1 nicht = mit 2
 
				  echo 'Ihr eingegeben Passwort ist falsch';
 
				}
 
			}
 
			else
 
			{//wenn alle felder nicht ausgefüllt sind
 
			 	echo ' Sie haben nicht alle Felder ausgefüllt';
 
			}
 
}
 
  
 
flush();
 
ob_end_flush() ;
 
?>	
 


logout.php
 
 
<?php 
 
ob_start();
 
session_start (); 
 
require ('config.php');
 
 
 
$sql_connect = mysql_connect($db['host'], $db['user'], $db['passwd'])
 
		   OR die('Fehler bei der Verbindung zur Datenbank aufgetreten');
 
		   
 
$db=mysql_select_db($db['name']);
 
		   OR die('Konnte Datenbank nicht auswählen');
 
		   
 
 if ((isset($_COOKIE["username"]))&&(isset($_COOKIE["pw"])) && ($_SESSION["eingeloggt"] != 1))
 
  { //abfrage ob cookies existieren und ob schon eingeloggt wenn cookies existieren und nicht eingeloggt ist dann werden hier die abfragen gemacht
 
	 $username=$_COOKIE["username"]; //inhalt aus dem cookie in $username reinsetzen 
 
	 $sql=mysql_query("select * from users where name='$username'"); //daten  auslesen vom $username
 
	 while($row = mysql_fetch_array($sql))
 
				{
 
				
 
				//inhalte aus der db in varis speichern 
 
				$id = $row['id'];
 
				$user = $row['user'];
 
				$email = $row['email'];
 
				$pw2 = $row['password'];
 
				
 
				}
 
	 $pw =$_COOKIE["pw"]; //inhalt des cookies in der vari pw speichern 
 
 
 
	 if ($pw == $pw2) //abfrage ob db pw mit cookie pw stimmt
 
	 { //wenn ja sessions setzen 
 
		$_SESSION["user_id"] = $id;
 
		$_SESSION["user"] = $user;
 
		$_SESSION["email"] = $email;
 
		$_SESSION["eingeloggt"] = 1;
 
		
 
		//ausloggen
 
		setcookie("username","",time()-2592000);
 
		setcookie("pw","",time()-2592000);
 
		session_destroy();
 
		 echo '<meta http-equiv="refresh" content="0; URL=index.php">';//weiterleitung zur index seite
 
		}//abfrage ob pw im cookie stimmt
 
	 else
 
	 {//wenn nicht weiterleitung zur index seite
 
	   
 
		 echo '<meta http-equiv="refresh" content="0; URL=index.php">';//weiterleitung zur index seite
 
	  
 
	 }
 
  }//abfrage ob session und cookies existieren 
 
  else
 
  { //wenn nicht weiterleitung zur index seite
 
	   
 
		 echo '<meta http-equiv="refresh" content="0; URL=index.php">';//weiterleitung zur index seite
 
  }
 
  
 
 
 
  
 
flush();
 
ob_end_flush() ;
 
?>	
 



so um nun abzufragen ob jemand ein bzw ausgeloggt ist kann auf der Seite einfach folgendes ganz oben setzen

 
 
<?php 
 
ob_start();
 
session_start (); 
 
require ('config.php');
 
 
 
$sql_connect = mysql_connect($db['host'], $db['user'], $db['passwd'])
 
		   OR die('Fehler bei der Verbindung zur Datenbank aufgetreten');
 
		   
 
$db=mysql_select_db($db['name']);
 
		   OR die('Konnte Datenbank nicht auswählen');
 
		   
 
 if ((isset($_COOKIE["username"]))&&(isset($_COOKIE["pw"])) && ($_SESSION["eingeloggt"] != 1))
 
  { //abfrage ob cookies existieren und ob schon eingeloggt wenn cookies existieren und nicht eingeloggt ist dann werden hier die abfragen gemacht
 
	 $username=$_COOKIE["username"]; //inhalt aus dem cookie in $username reinsetzen 
 
	 $sql=mysql_query("select * from users where name='$username'"); //daten  auslesen vom $username
 
	 while($row = mysql_fetch_array($sql))
 
				{
 
				
 
				//inhalte aus der db in varis speichern 
 
				$id = $row['id'];
 
				$user = $row['user'];
 
				$email = $row['email'];
 
				$pw2 = $row['password'];
 
				
 
				}
 
	 $pw =$_COOKIE["pw"]; //inhalt des cookies in der vari pw speichern 
 
 
 
	 if ($pw == $pw2) //abfrage ob db pw mit cookie pw stimmt
 
	 { //wenn ja sessions setzen 
 
 
 
		$_SESSION["user_id"] = $id;
 
		$_SESSION["user"] = $user;
 
		$_SESSION["email"] = $email;
 
		$_SESSION["eingeloggt"] = 1;
 
 
 
		}//abfrage ob pw im cookie stimmt
 
	 else
 
	 {
 
	 
 
	 
 
	 //wenn nicht normaler seiten inhalt oder umleitung
 
	   
 
	  
 
	 }
 
  }//abfrage ob session und cookies existieren 
 
  else
 
  { 
 
	 
 
	 
 
	 //wenn nicht normaler seiten inhalt oder umleitung
 
	   
 
	  
 
  }
 
  
 
 
 
  
 
flush();
 
ob_end_flush() ;
 
?>	
 


Ich weiß nicht gerade Optimal aber es geht