Login System mit Datenbankeinträgen

M-GT

Erfahrenes Mitglied
Hallo Leute
ICh hab mir zwar schon das Tutorial durchgelesen aber da muss man ebi einer .php Datei immer die user hinzufügen...

Ich brauch das ganze aber so das das über ein einfach Loginfeld (Nick, Pw) läuft..
Und die eingegebenen Daten soll er mit den Einträgen aus der DB überprüfen und falls es den Nick mit dem dazugehörigen PW gibt komm ich in den geschützten Bereich der mit Sessions läuft...

Ich hab aber keinen plan wie ich das machen soll^^

Pls helft mir und postet mir ein Script
 
Bitte schoen, da ist alles drin.
users.php
PHP:
<?php
$changesection="main";
if (isset($_POST['insert']))
	{
		$insert=$_POST['insert'];
	}
if (isset($insert))
	{
		if (isset($_POST['username']))
			{
				$username=$_POST['username'];
			}
		if (isset($_POST['password']))
			{
				$password=$_POST['password'];
			}
		if (isset($_POST['email']))
			{
				$email=$_POST['email'];
			}
		if (isset($_POST['userlevel']))
			{
				$userlevel=$_POST['userlevel'];
			}
		if ((!empty($username)) && (!empty($password)) && (!empty($email)))
			{
				$users=mysql_query("select * from users where username='$username'",$db);
				$user=mysql_fetch_assoc($users);
				if (empty($user))
					{
						if (empty($userlevel))
							{
								$userlevel=1;
							}
						$cryptedpassword=sha1($password);
						mysql_query("insert into users (username,password,email,userlevel) values ('$username','$cryptedpassword','$email','$userlevel')",$db);
						$changes[$changesection].='User <b>'.$username.'</b> has been inserted into database<br>';
						if (!isset($_SESSION['id']))
							{
								$users=mysql_query("select * from users where username='$username'",$db);
								$user=mysql_fetch_assoc($users);
								$_SESSION['id']=$user['id'];
								header("Location:index.php".$sessionparm);
								exit;
							}
					}
				else
					{
						$changes[$changesection].='User could not be inserted into database<br>';
						$changes[$changesection].='Username <b>'.$username.'</b> already exists<br>';
						$changes[$changesection].='<hr>';
					}
			}
		else
			{
				$changes[$changesection].='User could not be inserted into database.<br>';
				if (empty($username))
					{
						$changes[$changesection].='Username missing<br>';
					}
				if (empty($password))
					{
						$changes[$changesection].='Password missing<br>';
					}
				if (empty($email))
					{
						$changes[$changesection].='eMail missing<br>';
					}
				$changes[$changesection].='<hr>';
			}
	}
if (isset($_SESSION['id']))
	{
		if (isset($_POST['update']))
			{
				$update=$_POST['update'];
			}
		if (isset($_GET['delete']))
			{
				$delete=$_GET['delete'];
			}
		if (isset($_GET['edit']))
			{
				$edit=$_GET['edit'];
			}
		if (isset($update))
			{
				if (isset($_POST['userid']))
					{
						$userid=$_POST['userid'];
					}
				if (isset($_POST['username']))
					{
						$username=$_POST['username'];
					}
				if (isset($_POST['oldpassword']))
					{
						$oldpassword=$_POST['oldpassword'];
					}
				if (isset($_POST['newpassword']))
					{
						$newpassword=$_POST['newpassword'];
					}
				if (isset($_POST['newpassword2']))
					{
						$newpassword2=$_POST['newpassword2'];
					}
				if (isset($_POST['email']))
					{
						$email=$_POST['email'];
					}
				if (isset($_POST['userlevel']))
					{
						$userlevel=$_POST['userlevel'];
					}
				$users=mysql_query("select * from users where id='$userid'",$db);
				$user=mysql_fetch_assoc($users);
				if ((!empty($oldpassword)) && (!empty($newpassword)) && (!empty($newpassword2)))
					{
						$cryptedoldpassword=sha1($oldpassword);
						$cryptednewpassword=sha1($newpassword);
						if ($cryptedoldpassword==$user['password'])
							{
								if ($newpassword==$newpassword2)
									{
										mysql_query("update users set password='$cryptednewpassword' where id='$userid'",$db);
										$changes[$changesection].='Password for user <b>'.$user['username'].'</b> has been updated<br>';
									}
								else
									{
										$changes[$changesection].='Password could not be updated, Passwords do not match<br>';
									}
							}
						else
							{
								$changes[$changesection].='Password could not be updated, current Password incorrect<br>';
							}
					}
				$users=mysql_query("select * from users where id='$userid'",$db);
				$user=mysql_fetch_assoc($users);
				if ((!empty($username)) && ($username!=$user['username']))
					{
						$users=mysql_query("select * from users where username='$username'",$db);
						$user=mysql_fetch_assoc($users);
						if (empty($user))
							{
								mysql_query("update users set username='$username' where id='$userid'",$db);
								$changes[$changesection].='Username has been changed to <b>'.$username.'</b><br>';
							}
						else
							{
								$changes[$changesection].='Username could not be changed, username <b>'.$username.'</b> already exists<br>';
							}
					}
				$users=mysql_query("select * from users where id='$userid'",$db);
				$user=mysql_fetch_assoc($users);
				if ((!empty($email)) && ($email!=$user['email']))
					{
						mysql_query("update users set email='$email' where id='$userid'",$db);
						$changes[$changesection].='eMail has been changed to <b>'.$email.'</b><br>';
					}
				$users=mysql_query("select * from users where id='$userid'",$db);
				$user=mysql_fetch_assoc($users);
				if ((!empty($userlevel)) && ($userlevel!=$user['userlevel']))
					{
						mysql_query("update users set userlevel='$userlevel' where id='$userid'",$db);
						$changes[$changesection].='Userlevel has been changed to <b>'.$userlevel.'</b><br>';
					}
			}
		if (isset($delete))
			{
				$id=$_SESSION['id'];
				$users=mysql_query("select * from users where id='$id'",$db);
				$user=mysql_fetch_assoc($users);
				if (($user['userlevel']==255) || ($delete==$id))
					{
						$users=mysql_query("select * from users where id='$delete'",$db);
						$user=mysql_fetch_assoc($users);
						mysql_query("delete from news where userid='$delete'",$db);
						mysql_query("delete from users where id='$delete'",$db);
						$changes[$changesection].='User <b>'.$user['username'].'</b> has been deleted from database<br>';
						if ($delete==$id)
							{
								header("Location:index.php?subsite=logout.php".$sessionparm_header);
								exit;
							}
					}
				else
					{
						$changes[$changesection].='Access denied!<br>';
					}
			}
		if (isset($edit))
			{
				$id=$_SESSION['id'];
				$users=mysql_query("select * from users where id='$id'",$db);
				$user=mysql_fetch_assoc($users);
				$accesslevel=$user['userlevel'];
				if (($accesslevel==255) || ($edit==$id))
					{
						$users=mysql_query("select * from users where id='$edit'",$db);
						$user=mysql_fetch_assoc($users);
						$changes[$changesection].='<form method="post" action="index.php?subsite=users.php'.$sessionparm_link.'">';
						$changes[$changesection].='<table class="vistable">';
						$changes[$changesection].='<tr><td>Username:</td><td><input type="text" name="username" value="'.$user['username'].'"></td></tr>';
						$changes[$changesection].='<tr><td>Old Password:</td><td><input type="password" name="oldpassword"></td></tr>';
						$changes[$changesection].='<tr><td>New Password:</td><td><input type="password" name="newpassword"></td></tr>';
						$changes[$changesection].='<tr><td>Confirm new Password:</td><td><input type="password" name="newpassword2"></td></tr>';
						$changes[$changesection].='<tr><td>eMail:</td><td><input type="text" name="email" value="'.$user['email'].'"></td></tr>';
						if ($accesslevel==255)
							{
								$changes[$changesection].='<tr><td>Userlevel:</td><td><input type="text" name="userlevel" value="'.$user['userlevel'].'"></td></tr>';
							}
						$changes[$changesection].='</table>';
						$changes[$changesection].='<input type="hidden" name="userid" value="'.$user['id'].'">';
						$changes[$changesection].='<input type="submit" name="update" value="Update User">';
						$changes[$changesection].='<input type="submit" name="cancel" value="Cancel">';
						$changes[$changesection].='</form>';
					}
				else
					{
						$changes[$changesection].='Access denied!<br>';
					}
			}
		else
			{
				$id=$_SESSION['id'];
				$users=mysql_query("select * from users where id='$id'",$db);
				$user=mysql_fetch_assoc($users);
				$accesslevel=$user['userlevel'];
				if ($accesslevel==255)
					{
						$changes[$changesection].='<form method="post" action="index.php?subsite=users.php'.$sessionparm_link.'">';
						$changes[$changesection].='<table class="vistable">';
						$changes[$changesection].='<tr><td>Username:</td><td><input type="text" name="username"></td></tr>';
						$changes[$changesection].='<tr><td>Password:</td><td><input type="password" name="password"></td></tr>';
						$changes[$changesection].='<tr><td>eMail:</td><td><input type="text" name="email"></td></tr>';
						$changes[$changesection].='<tr><td>Userlevel:</td><td><input type="text" name="userlevel"></td></tr>';
						$changes[$changesection].='</table>';
						$changes[$changesection].='<input type="submit" name="insert" value="Add User">';
						$changes[$changesection].='</form>';
					}
				$changes[$changesection].='<table class="vistable" border="1">';
				$changes[$changesection].='<tr><th>Username</th><th>eMail</th>';
				if ($accesslevel==255)
					{
						$changes[$changesection].='<th>Userlevel</th>';
					}
				$changes[$changesection].='<th colspan="2">Action</th></tr>';
				if ($accesslevel==255)
					{
						$users=mysql_query("select * from users order by username",$db);
						while ($user=mysql_fetch_assoc($users))
							{
								$changes[$changesection].='<tr><td>'.$user['username'].'</td><td>'.$user['email'].'</td><td>'.$user['userlevel'].'</td>';
								$changes[$changesection].='<td><a href="index.php?subsite=users.php&amp;edit='.$user['id'].$sessionparm_link.'">Edit</a></td>';
								$changes[$changesection].='<td><a href="index.php?subsite=users.php&amp;delete='.$user['id'].$sessionparm_link.'">Delete</a></td>';
								$changes[$changesection].='</tr>';
							}
					}
				else
					{
						$changes[$changesection].='<tr><td>'.$user['username'].'</td><td>'.$user['email'].'</td>';
						$changes[$changesection].='<td><a href="index.php?subsite=users.php&amp;edit='.$user['id'].$sessionparm_link.'">Edit</a></td>';
						$changes[$changesection].='<td><a href="index.php?subsite=users.php&amp;delete='.$user['id'].$sessionparm_link.'">Delete</a></td>';
						$changes[$changesection].='</tr>';
					}
				$changes[$changesection].='</table>';
			}
	}
else
	{
		$changes[$changesection].='<form method="post" action="index.php?subsite=users.php'.$sessionparm_link.'">';
		$changes[$changesection].='<table class="vistable">';
		$changes[$changesection].='<tr><td>Username:</td><td><input type="text" name="username"></td></tr>';
		$changes[$changesection].='<tr><td>Password:</td><td><input type="password" name="password"></td></tr>';
		$changes[$changesection].='<tr><td>eMail:</td><td><input type="text" name="email"></td></tr>';
		$changes[$changesection].='</table>';
		$changes[$changesection].='<input type="submit" name="insert" value="Register User">';
		$changes[$changesection].='</form>';
	}
?>
 
Hallo!

Crashburn hat gesagt.:
Ich glaube (weiß es aber nicht) das geht nur in der php.ini.
Oder über session_cache_expire().

Alternativ könntest Du auch ein Timestamp in der Session speichern.
Bei jeder Bewegung auf der Seite wird der aktuelle Timestamp geholt und mit dem in der Session gespeicherten verglichen.
Ist die Differenz kleiner als die von dir bestimmte Zeit, wird der aktuelle Timestamp erneut in der Session gespeichert.
Ist die Differenz grösser, wird die Session gelöscht.

Gruss Dr Dau
 
Aus dem Kopf kann ich es dir auch nicht sagen..... und mein Server liegt schon seit Wochen auf dem Esstisch..... ich komme halt nicht dazu mich darum zu kümmern. :(

Aber zum Thema Login findest Du hier genug..... zu den Session auch, zusätzlich solltest Du dir noch die Session Funktionen ansehen.
Den Timestamp holst Du dir halt mit time().
 
Zurück