Hiho...Ich habe mir ein Webinterface erstellt und nun brauch ich ein login also so das wenn man auf das interface will man sich einloggen muss um den server bsw. zu starten/reseten....
am besten so das es für 5 user max geht is das möglich? bzw. kann das jmd erstellen?
WebInterface Login
- Basti!
- Geschlossen
- Erledigt
-
-
Wenn der Zugang ausschließlich nur für fünf User sein soll, empfiehlt sich die Einbindung einer einfachen .htaccess wenn Du z.B. das Verzeichnis zum Webinterface schützen möchtest. Hilfreiche Informationen findest Du hier! Manchmal bieten die Webhoster Tools an, mit denen Du auf Knopfdruck einen Passwortschutz für ein Verzeichnis anlegen kannst (z.B. ALL-INKL oder die mitgelieferte SW (Plesk), wenn Du einen Virtual Server hast).
-
Das leuft alles nicht über root oderso das leuft alles auf meinem pc erst noch für versuche....aber trozdem würd ich gerne ein login haben
-
SQL
Alles anzeigenSQL-Statement zur Erzeugung der Tabelle: CREATE TABLE users ( ID int(11) PRIMARY KEY auto_increment, Name varchar(30) NOT NULL default '', Passwort varchar(32) NOT NULL default '', Session varchar(65), EMail varchar(100) NOT NULL default '', UNIQUE KEY Name (Name), UNIQUE KEY EMail (EMail) )
SQLINSERT INTO `users` ( `ID` , `Name` , `Passwort` , `Session` , `EMail` ) VALUES (NULL , 'tester', md5('tester'), NULL , 'tester@tsql.de'), (NULL , 'Max', md5('meinpasswort'), NULL , 'max@tsql.de');
login.php
PHP
Alles anzeigen<?php class login{ private $id = NULL; private $name = NULL; private $passwort = NULL; private $email = NULL; private $session = NULL; private $dbconnection = NULL; public function __construct($sessionid){ $this->dbconnection = new DB_MySQL(); $this->session = $sessionid; if (isset($_POST['login'])===true && isset($_POST['username'])===true && isset($_POST['userpass'])===true){ $this->name = $_POST['username']; $this->passwort = $_POST['userpass']; $this->login(); return true; } if (isset($_GET['logout'])===true && $_GET['logout']==='1'){ $this->logout(); } } private function login(){ $query = 'SELECT * FROM users WHERE Name = \''. mysql_real_escape_string($this->name) .'\' AND Passwort = \''. mysql_real_escape_string(MD5($this->passwort)) .'\' LIMIT 1;'; $this->dbconnection->query(&$query); if($this->dbconnection->count()!==1){ return false; } else { $row = $this->dbconnection->fetchRow(); $this->email = $row['EMail']; $this->id = $row['ID']; $this->logout(); $query = 'UPDATE users SET Session = \''. mysql_real_escape_string($this->session) .'\' WHERE ID = '. $this->id .' LIMIT 1;'; $this->dbconnection->query(&$query); return true; } } public function logged_in(){ $query = 'SELECT * FROM users WHERE Session = \''. mysql_real_escape_string($this->session) .'\' LIMIT 1;'; $this->dbconnection->query(&$query); return ($this->dbconnection->count()!==1) ? false : true; } public function showLogin(){ echo <<<EOT <form method="post" action=""> <fieldset style="width:300px;text-align:right;position:absolute; left:20%; top:20%;"> <legend>Benutzeranmeldung</legend> <br /> <label for="textinput1">Benutzername</label> <input type="text" name="username"> <br /> <label>Passwort</label> <input type="password" name="userpass" id="textinput2"> <br /><br /> <button name="login" type="submit">Anmelden</button> </fieldset> </form> EOT; } public function showLogout($text='Logout'){ echo '<a href="?logout=1&sid=',$this->session,'">',$text,'</a>'; } private function logout(){ $query = 'UPDATE users SET Session = NULL WHERE Session = \''. mysql_real_escape_string($this->session) .'\' LIMIT 1;'; $this->dbconnection->query(&$query); } } ?>
logintemplate.php
PHP
Alles anzeigen<?php include_once 'class/session.php'; include_once 'class/database.php'; include_once 'class/login.php'; $mylogin = new login(session::getSID()); if($mylogin->logged_in()!==true){ $mylogin->showLogin(); exit(); } ?>
index.php
PHP
Alles anzeigen<?php include_once 'logintemplate.php'; ?> <h2>Index Seite</h2> Die geheime Index-Seite.<br /> <br /> <h3>Navigation</h3> <ul> <li><a href="index.php<?php session::showLink(true);?>">Startseite</a></li> <li><a href="verwaltung.php<?php session::showLink(true);?>">Verwaltung</a></li> <li><?php $mylogin->showLogout();?></li> </ul> Inhalt der Seiten verwaltung.php: <?php include_once 'logintemplate.php'; ?> <h2>Verwaltung</h2> Die geheime Verwaltung.<br /> <br /> <h3>Navigation</h3> <ul> <li><a href="index.php<?php session::showLink(true);?>">Startseite</a></li> <li><a href="verwaltung.php<?php session::showLink(true);?>">Verwaltung</a></li> <li><?php $mylogin->showLogout();?></li> </ul>
datenbank.php
PHP
Alles anzeigen<?php class DB_MySQL { private $connection = NULL; private $result = NULL; private $counter=NULL; private $dbconfig = array( 'server' => 'localhost', 'user' => 'root', 'password' => '', 'database' => 'myPHP', ); public function __construct(){ $this->connection = mysql_connect($this->dbconfig['server'], $this->dbconfig['user'], $this->dbconfig['password'], TRUE); mysql_select_db($this->dbconfig['database'], $this->connection); } public function disconnect() { if (is_resource($this->connection===true)) mysql_close($this->connection); } public function query($query) { $this->result=mysql_query($query,$this->connection); $this->counter=NULL; } public function fetchRow() { return mysql_fetch_assoc($this->result); } public function count() { if($this->counter===NULL && is_resource($this->result)===true) { $this->counter=mysql_num_rows($this->result); } return $this->counter; } } ?>
-
ROFL..Danke das du das postest aber gibs dazu auch ne erklärung?
-
Ja,
Die Datenbank-Klasse
Die Datenbankklasse wurde bereits in einem anderen ausführlich beschrieben. Ergänzend dazu, wurden hier alle Anmeldeinformationen für die Datenbank in der Variablen dbconfig abgelegt . Der Name der verwendeten Datenbank ist in diesem Fall myPHP. Dieser ist natürlich beliebig änderbar, ebenso wie der Servername und die Anmeldedaten für die Datenbank.
Dieses Skript stellt eine Sammlung von Methoden für den Zugriff auf eine MySQL- Datenbank zur Verfügung stellt.
Inhalt der Datei datenbank.php:Die Login Klasse
Die Login-Klasse prüft unter Zuhilfenahme der Datenbank-Klasse die Authentifizierung der Benutzer.Jede Instanz erwartet im Konstruktor die aktuelle Session-Id und prüft, ob Login- oder Logout- Informationen beim Seitenaufruf übergeben wurden. Ist dies der Fall, führt der Konstruktor eigenständig das Login bzw. Logout durch. Die Methoden login und logout sind aus diesem Grund privat und damit nur innerhalb der Klasse erreichbar. Über die Methode logged_in prüft die Klasse, ob der Benutzer authentifiziert ist.
Dazu wird in der Datenbank nach einem Benutzer gesucht, welcher die gleiche Session-Id wie der aktuelle Benutzer hat.
Die Methode showLogin gibt einen Anmeldedialog aus, mit dem ein Benutzer sich authentifizieren kann. Das Gegenstück dazu stellt showLogout dar. Durch den Aufruf dieser Methode wird ein Link ausgegeben, welcher zur Abmeldung dient.Inhalt der Datei login.php
Diese Datei bindet alle benötigten Klassen ein und führt die Authentifizierung durch. Entdeckt das Skript einen nicht angemeldeten Benutzer, wird der Login-Dialog angezeigt und die weitere Ausführung mithilfe des exit Befehls beendet.
Inhalt der Datei logintemplate.php:
Durch das Einbinden der Datei logintemplate.php wird eine Seite zu einer geschützten Seite. Ein Include dieses Skriptes am Anfang der Seite führt die Authentifizierung automatisch durch. Wenn der Benutzer bereits angemeldet ist, werden alle Inhalte der aktuellen Seite angezeigt. Ist der Benutzer noch nicht angemeldet, wird der Login-Dialog angezeigt und die weitere Ausführung des Skriptes abgebrochen.
-
Ich weis nicht recht ob das bei mir geht ich lasse das zurzeit über xammp laufen^^
-
job das dürfte gehen, warte mach das system schnell, und lade es dir dann hoch
-
weis zwar nich was genau du damit meinst aber fett danke^^
-
breadfish.de
Hat das Thema geschlossen.