kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Login Bereich Generator

    geschrieben von faustdonner

    hallo

    ich habe die scripts dafür du musst sie nur noch anpassen. benötigt sind die Felder in der mysql datenbank:

    CREATE TABLE user (
    ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
    username CHAR(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
    kwort CHAR(50) NOT NULL, // ohne md5 verschlüsselung
    admin TINYINT(2) DEFAULT '-1' NOT NULL, //-1=user 1=admin //also musst du dies später ändern weil du ja ein admin bist
    beschreibung CHAR(255),
    kennung CHAR(50),
    zeit DATETIME,
    PRIMARY KEY ('ID'),
    UNIQUE (username)
    );

    und hier ist das script cl_db.php:

    <?php
    class db extends db_mysql
    {
    PROTECTED $db_user ='xxx';
    PROTECTED $db_pass ='xxx';
    PROTECTED $db_server ='xxx';

    PUBLIC function __construct($datenbank = 'xxx')
    {
    parent::__construct($datenbank);
    }

    }
    ?>



    hier ist das script cl_db_mysql.php:



    <?php
    class db_mysql
    {
    PROTECTED $db_user;
    PROTECTED $db_pass;
    PROTECTED $db_server;

    PROTECTED $insert_id;
    PROTECTED $affected_rows;
    PROTECTED $num_rows;

    PROTECTED STATIC $con;
    PROTECTED STATIC $queries;
    PROTECTED STATIC $verbindungen;

    PUBLIC function __construct($datenbank)
    {
    if(!is_ressource(self::$con))
    {
    self::$con = mysql_connect
    ($this->db_server,$this->db_user,$this->db_pass);
    ++self::$verbindungen;
    }
    mysql_select_db($datenbank, self::$con)
    OR die('Fehler beim Verbinden zur Datenbank');
    }
    PUBLIC function prepare($var)
    {
    return mysql_real_escape_string($var);
    }
    Public function execute($sql)
    {
    ++self::$queries;
    $erg = mysql_query($sql, self::$con);
    mysql_error();
    $this->affected_rows = mysql_affected_rows(self::$con);
    $this->num_rows = @mysql_num_rows($erg);
    if($this->num_rows)
    {
    $i=1;
    while($array[$i] = mysql_fetch_assoc($erg)) {++$i:}
    mysql_free_result($erg);
    unset($array[$i]);
    return $array;
    }
    $this->insert_id = mysql_insert_id(self::$con);
    return true;
    }
    PUBLIC function insert_id()
    {
    return $this->insert_id;
    }
    PUBLIC function affected_rows()
    {
    return $this->affected_rows;
    }
    PUBLIC function num_rows()
    {
    return $this->num_rows;
    }
    PUBLIC function queries()
    {
    return self::$queries;
    }
    PUBLIC function verbindungen()
    {
    return self::$verbindungen;
    }
    }//Ende Klasse
    ?>


    und hier ist die letzte klasse cl_zugriff.php:


    <?php
    class zugriff
    {
    PROTECTED $idle=10;//Leerlaufzeit
    PROTECTED $umleitenlogout="<a href=\"ziel.php\" target=\"_top\">Weiter</a>";//Umleitungsziel
    PROTECTED $umleitenlogin="<a href=\"ziel.php\" target=\"_top\">Weiter</a>";//Umleitungsziel

    PRIVATE $modus;

    PUBLIC function __construct($modus=1, $mindestrecht=1)
    {
    //modus 1 Zugriffsrecht testen
    //modus 2 Login anzeigen
    //modus 3 Logout anzeigen
    //$mindestrecht==1 //normale Seite mit Schutz
    //$mindestrecht==2 //Admin Seite

    $this->modus=$modus;

    if($_POST['sentzu']==2)
    {
    $ret = $this->logout();
    $ret[1].="<br>".$this->umleitenlogout;
    }

    if($_POST['sentzu']==1)
    {
    $ret = $this->testlogin();
    if($this->modus==2 AND $ret[0])
    {$ret[1].="<br>".$this->umleitenlogin;}
    }

    if($this->modus==1)
    {
    $ret=$this->testrecht($mindestrecht);
    }

    if($ret[0])
    {
    $this->schreibrecht();
    }

    if(!$ret[0] OR $this->modus==2 OR $this->modus==3)
    {
    echo "<html><head><title>LOGIN/LOGOUT</title></head><body>";
    echo "<div align=center>";
    if($ret[1]){echo "<h2><font color=red>".$ret[1]."</font></h2>";>}
    }

    if(!$ret[0] AND $this->modus!=3)
    {
    echo $this->formlogin();
    }

    if(!$ret[0] AND $this->modus==3)
    {
    echo $this->formlogout();
    }

    if(!$ret[0] OR $this->modus==2 OR $this->modus==3)
    {
    echo "</div></body></html>";
    die();
    }
    }//Ende Konstruktor

    PROTECTED function testlogin()
    {
    $db = new db();
    $result=$db->execute("SELECT kwort, ID, kennung, (UNIX_TIMESTAMP()-UNIX_TIMESTAMP(zeit)) as time, zeit FROM user WHERE username='".$db->prepare($_POST['username')."' ");

    if($db->num_rows() != 1 )
    {
    $meldung="Bitte kontrollieren Sie Ihren Benutzernamen";
    return array(FALSE, $meldung);
    }

    if($_POST['kwort'] != $result[1]['kwort'])
    {
    $meldung="Bitte kontollieren Sie Ihr Kennwort";
    return array(FALSE, $meldung);
    }

    if($result[1]['kennung']== session_id() AND $result[1]['time']/60 < $this->idle)
    {
    $meldung.="Sie sind bereits eingeloggt als ".$this->username();
    $_SESSION['sit']=session_id();
    $_SESSION['IDuser']=$result[1]['ID'];
    return array(FALSE, $meldung);
    }

    if($result[1]['kennung'] !='' AND $result[1]['time']/60<$this->idle)
    {
    $meldung.="Es ist bereits jemand mit Ihrem Benutzernamen eingeloggt";
    return array(FALSE, $meldung);
    }

    $db1= new db();
    $sql="UPDATE user SET ";
    $sql.=" zeit= now(), ";
    $sql.=" kennung='".session_id()."' ";
    $sql.=" WHERE ID='".$result[1]['ID']."' ";
    $db1->execute($sql);
    $_SESSION['IDuser']=$result[1]['ID'];
    $_SESSION['sit']=session_id();
    $meldung="Sie wurden eingeloggt als ".$_POST['username'];
    return array(TRUE, $meldung);
    }

    PROTECTED function formlogin()
    {
    $aus.="<h1>Login</h1>";
    $aus.="<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
    $aus.="<input type=\"hidden\" name=\"sentzu\" value=\"1\">";
    $aus.="<p>Benutzername</p>";
    $aus.="<input type\"text\" name=\"username\" value=\"".$_POST['username']."\">";
    $aus.="<p>Kennwort</p>";
    $aus.="<input type=\"password\" name=\"kwort\">";
    $aus.="<br><br><input type=\"submit\" value=\"Login\">";
    $aus.="</form>";
    return $aus;
    }

    PROTECTED function testrecht($mindestrecht)
    {
    if(!$_SESSION['IDuser'])
    {
    $meldung="<br>Bitte loggen Sie sich ein.";
    return array(FALSE, $meldung)
    }

    if(!$_SESSION['sit'])
    {
    $meldung="<br>Bitte loggen Sie sich ein.";
    return array(FALSE, $meldung)
    }

    $sql="SELECT admin, zeit, kennung, (UNIX_TIMESTAMP()-UNIX_TIMESTAMP(zeit)) as time FROM user WHERE ID=".$_SESSION['IDuser']." AND kennung='".$_SESSION['sit']."'";
    $db = new db();
    $result=$db->execute($sql);
    if($db->num_rows() != 1)
    {
    $meldung="<br>Sie sind nicht angemeldet, bitte loggen Sie sich ein.";
    return array(FALSE, $meldung);
    }

    if($result[1]['time']/60>$this->idle)
    {
    $meldung="<br>Sie waren zu lange inaktiv und wurden aus Sicherheitsgründen ausgeloggt.";
    return array(FALSE, $meldung);
    }

    if($result[1]['Admin']==-1 AND $mindestrecht==2)
    {
    $meldung="<br>Sie haben keine Rechte diese Seite zu betreten.";
    return array(FALSE, $meldung);
    }

    return array(TRUE, "");

    }

    PROTECTED function schreibrecht()
    {
    if($_SESSION['IDuser'] AND $_SESSION['sit'])
    {
    $sql="UPDATE user SET ";
    $sql.=" zeit= now() ";
    $sql.=" WHERE ID='".['IDuser']." AND kennung = '".$_SESSION['sit']."'";
    $db = new db();
    $result=$db->execute($sql);
    }
    }

    PROTECTED function formlogout()
    {
    $aus.="<h2>Möchten Sie sich wirklich abmelden?<br>";
    $aus.="</h2>";
    $aus.="<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">";
    $aus.="<input type=\"hidden\" name=\"sentzu\" value=\"2\">";
    $aus.="<br><br><input type=\"submit\" value=\"Login\">";
    $aus.="</form>";
    return $aus;
    }//Ende logoutform

    PROTECTED function logout()
    {
    $sql="UPDATE user SET ";
    $sql.=" zeit= 0, ";
    $sql.=" kennung='' ";
    $sql.=" WHERE ID='".['IDuser']."' ";
    $db = new db();
    $result=$db->execute($sql);

    if($db->affected_rows() == 1)
    {
    $_SESSION['sit']="";
    $_SESSION['IDuser']="";
    $meldung="<br>Sie wurden ausgeloggt.";
    }
    else
    {
    $meldung="<br>Sie waren nicht angemeldet.";
    }
    return array(TRUE, $meldung);
    }

    PUBLIC function username()
    {
    $sql="SELECT username FROM user ";
    $sql.=" WHERE ID='".$_SESSION['IDuser']."' ";
    $db = new db();
    $result=$db->execute($sql);
    if($db->num_rows() == 1)
    {
    return $result[1]['username'];
    }
    else {return False;}
    }

    }//Ende class
    ?>


    jetzt speicherst du alles in ein verzeichnis und in das verzeichnis kommen schließlich die scripts für alles:

    !!!achtung diese scripts muss auf jeden Fall ganz am Anfang des dokuments weswegen frames zu empfehlen sind damit es einigermaßen farbe hat!!!


    login.php:

    <?php
    session_start();
    require_once('cl_db_mysql.php');
    require_once('cl_db.php');
    require_once('cl_zugriff.php');
    $zugriff1 = new zugriff(2);
    ?>


    logout.php

    <?php
    session_start();
    require_once('cl_db_mysql.php');
    require_once('cl_db.php');
    require_once('cl_zugriff.php');
    $zugriff1 = new zugriff(3);
    ?>


    und jede seite die du schützen möchtest die für normale user und admins zugänglich sind:

    <?php
    session_start();
    require_once('cl_db_mysql.php');
    require_once('cl_db.php');
    require_once('cl_zugriff.php');
    $zugriff1 = new zugriff(1,1);
    ?>


    und die sites nur für admins:

    <?php
    session_start();
    require_once('cl_db_mysql.php');
    require_once('cl_db.php');
    require_once('cl_zugriff.php');
    $zugriff1 = new zugriff(1,2);
    ?>



    Solltest du nicht beachten das script vor der ersten textausgabe zu setzen wird dir ein hübscher error präsentiert.

    falls du einen bereich haben möchtest in dem du deine user bearbeiten kannst schick mir einfach eine nachricht.

    Ich hoffe es hilft ;)

Login zum Webhosting ohne Werbung!