Zugriffsbeschränkung beim Login

Die Session-id kann das gar nicht prüfen. Das kann NUR deine Login-Funktion,in dem sie in der Datenbank schaut, ob ein User angemeldet ist
 
Hi,

könnte ihr mir vielleicht ein Beispielcode geben. Ich weiss wirklich nicht wie ich das realisieren könnte?

Wäre echt super nett von euch.

Gruß
Nano
 
PHP:
$time = time();
$get_ip_row = mysql_query("SELECT ip, time FROM benutzer");
while($get_ip = mysql_fetch_assoc($get_ip_row)) {
if($get_ip[ip]==$_SERVER[REMOTE_ADDR])
{
$x = 1;
$time_plus_three = $time + 180; // 3. Minuten zu der aktuellen Uhrzeit hinzufügen.
// Hier kommt dann ein Insert der neuen Zeit hin
}
if($time>$get_ip[time]) {
// Datensätze löschen, die über die Zeit hinaus gehen
}}
if($x!="1") {
// Es existiert kein aktueller Benutzer, deswegen muss der aktuelle eingetragen werden.
} else {
// Weiterleitung zum Loginscreen, wo dann gesagt wird das ein anderer gerade eingeloggt ist.
}

Ich hoffe dies hilft dir weiter.
 
Hallo Iches,

ich habe dein Beispielcode mal eingebaut. Könntest du dir das mal bitte anschauen, ob ich das richtig gemacht habe

c_login.php
PHP:
<?php 
session_start();
include '../../anwendungskern/benutzerverwaltung.php'; 

/* DB Connection */
$connection=mysql_connect("localhost", "root") or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db("absnet", $connection) or die("Konnte die Datenbank nicht finden!");

if (isset($_POST['login'])) 
{ 
	$time=time();
	$get_ip_row=mysql_query("SELECT login_time, ip FROM benutzer_test");
	 while ($get_ip=mysql_fetch_assoc($get_ip_row))
	 {
	 		if($get_ip[ip] == $_SERVER[REMOTE_ADDR])
	 		{
	 			$x=1;
	 			$time_plus_drei=$time+180;
	 			mysql_query("UPDATE benutzer_test SET login_time='$time_plus_drei' WHERE id='$id'");
	 		}
	 		if ($time > $get_ip[time])
	 		{
	 			 $mysql_query=("UPDATE benutzer_test 
   								SET session=NULL, login_time=NULL, ip=NULL 
    							WHERE session='".session_id()."'"); 
     
	 		}
	 }	
	 if($x!="1")
	 {
	 		$id=check_user($_POST['username'], $_POST['password']); 
    		if ($id!=false) 
   	 		{
        		login_test($id); 
    		}
    		else 
    		{
         		include '../seiten/login_false.php'; 
    		}
	 }
	 else
	 {
	 	echo "Zugriffsverletzung!!";
	 }

   		 
} 


if (logged_in())
{
	logged_admin();
	if ($_SESSION['recht']=="admin") 
	{
   	    include '../seiten/logged_in_admin.php';
	}  
	elseif ($_SESSION['recht']=="benutzer")
	{
    	include '../seiten/logged_in_benutzer.php'; 
	}
}
else
{
	include '../seiten/login_false.php';
}


?>

benutzerverwaltung.php
PHP:
<pre>
<?php

include ('config/db_connection.php');

/**
 * 
 */
function logged_admin()
{
$sql="SELECT recht
    FROM benutzer
    WHERE session='".session_id()."' 
    LIMIT 1"; 
$sql=mysql_query($sql); 
$result=mysql_fetch_assoc($sql); 
$_SESSION['recht']=$result['recht']; 
}

/**
 * 
 */
function check_user($username, $password) 
{ 
    $sql="SELECT id 
    FROM benutzer 
    WHERE username='".$username."' AND password=MD5('".$password."')
    LIMIT 1"; 
    $result= mysql_query($sql) or die(mysql_error()); 
    if ( mysql_num_rows($result)==1) 
    { 
        $benutzer=mysql_fetch_assoc($result); 
        return $benutzer['id']; 
    } 
    else 
    {
        return false; 
    }
} 

/**
 * 
 */
function login($id) 
{ 
    $sql="UPDATE benutzer
    SET session='".session_id()."' 
    WHERE id=".$id; 
     mysql_query($sql); 
} 

/**
 * TEST
 */
 

function login_test($id) 
{ 	$time=time();
    $sql="UPDATE benutzer_test
    SET session='".session_id()."', login_time='$time', ip='".$_SERVER[REMOTE_ADDR]."' 
    WHERE id=".$id; 
     mysql_query($sql); 
} 

/**
 * 
 */
function logged_in() 
{ 
    $sql="SELECT id
    FROM benutzer
    WHERE session='".session_id()."' 
    LIMIT 1"; 
    $result= mysql_query($sql);  
      return ( mysql_num_rows($result)==1); 
} 

/**
 * 
 */
function logout() 
{ 
    $sql="UPDATE benutzer 
    SET session=NULL 
    WHERE session='".session_id()."'"; 
     mysql_query($sql); 
} 

/**
 * 
 */
function create_user($username, $password, $mail, $abteilung, $recht)
{
	
$sql="INSERT INTO benutzer (username, password, mail, abteilung, recht)
		  VALUES ('$username', MD5('$password'), '$mail', '$abteilung', '$recht')";
	mysql_query($sql);

}


connect(); 

?>
</pre>


Vielen Dank im Voraus.

Gruß
Nano
 
Zurück