From 2894d29ec8b81e6ada632708a048c8a0a6113408 Mon Sep 17 00:00:00 2001
From: isaack <isaack0815@gmail.com>
Date: Tue, 5 Dec 2017 22:47:27 +0100
Subject: [PATCH] DB-Backup,Design und Bugfix, Funktionen
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Es wurden wieder Design Anpassungen vorgenommen. (Adminbereich
betreffend).
Kleinere Fehler wurden behoben

Backupfunktion der Datenbank wurde hinzugefügt. Die Datenbank kann nun
einfach per Cron in ein Backup gespielt werden. Dieses kann man im
Adminbereich einsehen und wiederherstellen.

versch() und entsch() Funktionen dazu gekommen. Mit diesen ist es
möglich einfach und bequem inhalte zu verschlüssel und entschlüsseln.
---
 CHANGELOG                                     |   8 ++
 README.MD                                     |  18 +++-
 adminforce/backup/.htaccess                   |   7 ++
 adminforce/backup/index.html                  |   0
 .../content/interfacedaten/boxen_admin.php    |  24 +++--
 .../content/interfacedaten/boxen_user.php     |  22 ++--
 .../content/interfacedaten/db_backup.php      |  67 ++++++++++++
 .../content/interfacedaten/menue_admin.php    |  40 ++++---
 .../content/interfacedaten/menue_user.php     |  44 +++++---
 .../content/interfacedaten/pageconfig.php     | 102 ++++++++++--------
 adminforce/content/interfacedaten/versch.php  |   5 +
 adminforce/content/startseite.php             |  39 ++-----
 adminforce/content/usersystem/liste.php       |   3 +-
 .../usersystem/user_include/allgemeines.php   |  27 ++---
 adminforce/index.php                          |  35 +++---
 .../lib/funktionen/db_backup/loeschen.php     |   8 ++
 .../funktionen/db_backup/wiederherstellen.php |  24 +++++
 .../funktionen/setting/grundeinstellung.php   |   4 +-
 adminforce/lib/run.inc.php                    |   5 +
 crons/db_backup.php                           |  31 ++++++
 install/index.php                             |   3 +
 install/mysql.txt                             |  11 +-
 lib/datenbank.inc.php                         |   2 +
 lib/functions.lib.php                         |  22 ++++
 lib/funktionen/konto/anmelden.php             |   6 +-
 25 files changed, 383 insertions(+), 174 deletions(-)
 create mode 100644 adminforce/backup/.htaccess
 create mode 100644 adminforce/backup/index.html
 create mode 100644 adminforce/content/interfacedaten/db_backup.php
 create mode 100644 adminforce/content/interfacedaten/versch.php
 create mode 100644 adminforce/lib/funktionen/db_backup/loeschen.php
 create mode 100644 adminforce/lib/funktionen/db_backup/wiederherstellen.php
 create mode 100644 crons/db_backup.php

diff --git a/CHANGELOG b/CHANGELOG
index b69e81c..505fa30 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,13 @@
 # Was alles passiert
 
+## [0.0.4] - 05.12.2017
+## hinzugefügt
+- IP Localisierung (Userübersicht)
+- Ländersperre durch IP Prüfung bei Anmeldung
+- Designanpassung Box Verwaltung User/Admin (adminforce)
+- Backupfunktion (auch per Cronjob) von Datenbank mit automatischer Verschlüsselung
+- Backup einfach im Admin wieder einspielen und einsehen
+
 ## [0.0.3] - 03.12.2017
 ## hinzugefügt
 - Bilanzfunktion erweitert und Bilanz ausgebaut
diff --git a/README.MD b/README.MD
index 4bd3139..7347a73 100644
--- a/README.MD
+++ b/README.MD
@@ -1,11 +1,19 @@
 # Installation
 1. Alle Datein auf den Webspace laden
-2. Installation folgen
-3. Install Ordner löschen
-4. Einstellungen im Admin vornehmen
+2. Datei lib/datenbank.inc.php löschen
+3. deine-domain.de/install aufrufen
+4. Installation folgen
+5. Install Ordner löschen
+6. Einstellungen im Admin vornehmen
 
 # Neuerungen:
+- Installationsscript (du kannst alles Step by Step machen)
 - wegfall und zusammenschluss der Funktionen kontobuchung und buchungsliste
-- Bootstrap eingeführt
+- Bootstrap eingeführt
+- ausführliche Bilanz im Adminbereich
 - Adminbereich um Seiteninformationen erweitert
-- Erweiterte Bilanz mit Gruppen und einzelnen Spoitionen
\ No newline at end of file
+- Erweiterte Bilanz mit Gruppen und einzelnen Spoitionen
+- IP Localisierung im Adminbereich
+- Ländersperre durch IP prüfung bei Anmeldung
+- Chat auf Startseite (deaktivierbar)
+- Automatisches Anlegen von DB-Backups (mit Verschlüsselung)
\ No newline at end of file
diff --git a/adminforce/backup/.htaccess b/adminforce/backup/.htaccess
new file mode 100644
index 0000000..4df56b0
--- /dev/null
+++ b/adminforce/backup/.htaccess
@@ -0,0 +1,7 @@
+<FilesMatch "(\.htaccess)">
+  Order deny,allow
+  Deny from all
+</FilesMatch>
+
+deny from all
+Options -Indexes
\ No newline at end of file
diff --git a/adminforce/backup/index.html b/adminforce/backup/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/adminforce/content/interfacedaten/boxen_admin.php b/adminforce/content/interfacedaten/boxen_admin.php
index 866df1d..d4ee28a 100644
--- a/adminforce/content/interfacedaten/boxen_admin.php
+++ b/adminforce/content/interfacedaten/boxen_admin.php
@@ -4,18 +4,18 @@ head("Boxverwaltung Userbereich");
 	head("Neue Box Anlegen");
 echo'
 		<form method="post" action="">
-			<table>
+			<table class="table">
 				<tr>
 					<td>Name der Box</td>
-					<td><input type="text" name="name"</td>
+					<td><input class="form-control" type="text" name="name"</td>
 				</tr>
 				<tr>
 					<td>Ordnungszahl</td>
-					<td><input type="text" size="3" name="ordnung"></td>
+					<td><input type="text" class="form-control" size="3" name="ordnung"></td>
 				</tr>
 				<tr>
 					<td></td>
-					<td><input type="submit" name="admin_box_save" value="Speichern"></td>
+					<td><input type="submit" class="btn btn-default" name="admin_box_save" value="Speichern"></td>
 				</tr>
 			</table>
 		</form>';
@@ -23,11 +23,10 @@ echo'
 	
 	head("Boxen bearbeiten");
 	echo '
-			<table width="100%">
+			<table class="table">
 				<tr>
 					<td>Name der box</td>
-					<td>Ordnungszahl</td>
-					<td>Sichtbarkeit</td>
+					<td>OZ</td>
 					<td></td>
 				</tr>';
 	$bo = db_query("SELECT * FROM ".$db_prefix."_box_admin");
@@ -36,12 +35,15 @@ echo'
 			<form method="post" action="">
 			<input type="hidden" name="id" value="'.$boxen['id'].'">
 				<tr>
-					<td><input type="text" name="name_neu" value="'.$boxen['name'].'"></td>
-					<td><input type="text" name="ordnung" size="3" value="'.$boxen['ordnung'].'"></td>
-					<td><input type="submit" name="admin_box_aendern" value="&Auml;ndern">&nbsp;<input type="submit" name="admin_box_loschen" value="L&ouml;schen"></td>
+					<td><input type="text" class="form-control" name="name_neu" value="'.$boxen['name'].'"></td>
+					<td><input type="text" class="form-control" name="ordnung" size="3" value="'.$boxen['ordnung'].'"></td>
+					<td><button type="submit" class="btn btn-success glyphicon glyphicon-ok-circle" name="admin_box_aendern" value="&Auml;ndern"></button>&nbsp;<button type="submit" class="btn btn-danger glyphicon glyphicon-remove-circle" name="admin_box_loschen" value="L&ouml;schen"></button></td>
 				</tr>
 			</form>';
 	}
 	echo '<table>';
 	foot();
-foot();
\ No newline at end of file
+foot();
+error_reporting(E_ALL);
+$info = geoip_record_by_name($_SERVER['REMOTE_ADDR']);
+print_r ($info);
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/boxen_user.php b/adminforce/content/interfacedaten/boxen_user.php
index 4b971d3..c1587f5 100644
--- a/adminforce/content/interfacedaten/boxen_user.php
+++ b/adminforce/content/interfacedaten/boxen_user.php
@@ -4,15 +4,15 @@ head("Boxverwaltung Userbereich");
 	head("Neue Box Anlegen");
 echo'
 		<form method="post" action="">
-			<table>
+			<table class="table">
 				<tr>
 					<td>Name der Box</td>
-					<td><input type="text" name="name"</td>
+					<td><input type="text" class="form-control" name="name"</td>
 				</tr>
 				<tr>
 					<td>Sichtbar f&uuml;r</td>
 					<td>
-						<select name="sichtbar">
+						<select name="sichtbar"class="form-control" >
 							<option value="1">G&auml;ste/User</option>
 							<option value="2">G&auml;ste</option>
 							<option value="3">User</option>
@@ -21,11 +21,11 @@ echo'
 				</tr>
 				<tr>
 					<td>Ordnungszahl</td>
-					<td><input type="text" size="3" name="ordnung"></td>
+					<td><input type="text" class="form-control" size="3" name="ordnung"></td>
 				</tr>
 				<tr>
 					<td></td>
-					<td><input type="submit" name="box_save" value="Speichern"></td>
+					<td><input type="submit" class="btn btn-default" name="box_save" value="Speichern"></td>
 				</tr>
 			</table>
 		</form>';
@@ -33,10 +33,10 @@ echo'
 	
 	head("Boxen bearbeiten");
 	echo '
-			<table width="100%">
+			<table class="table">
 				<tr>
 					<td>Name der box</td>
-					<td>Ordnungszahl</td>
+					<td>OZ</td>
 					<td>Sichtbarkeit</td>
 					<td></td>
 				</tr>';
@@ -46,16 +46,16 @@ echo'
 			<form method="post" action="">
 			<input type="hidden" name="id" value="'.$boxen['id'].'">
 				<tr>
-					<td><input type="text" name="name_neu" value="'.$boxen['name'].'"></td>
-					<td><input type="text" name="ordnung" size="3" value="'.$boxen['ordnung'].'"></td>
+					<td><input type="text" class="form-control" name="name_neu" value="'.$boxen['name'].'"></td>
+					<td><input type="text" class="form-control" name="ordnung" size="3" value="'.$boxen['ordnung'].'"></td>
 					<td>
-						<select name="sichtbar">
+						<select name="sichtbar" class="form-control">
 							<option value="1"'; if($boxen['sichtbar'] == 1) {echo'SELECTED';} echo '>G&auml;ste/User</option>
 							<option value="2"'; if($boxen['sichtbar'] == 2) {echo'SELECTED';} echo '>G&auml;ste</option>
 							<option value="3"'; if($boxen['sichtbar'] == 3) {echo'SELECTED';} echo '>User</option>
 						</select>
 					</td>
-					<td><input type="submit" name="aendern" value="&Auml;ndern">&nbsp;<input type="submit" name="box_loschen" value="L&ouml;schen"></td>
+					<td><button type="submit" class="btn btn-success glyphicon glyphicon-ok-circle" name="aendern"></button>&nbsp;<button type="submit" class="btn btn-danger glyphicon glyphicon-remove-circle" name="box_loschen" value="L&ouml;schen"></button></td>
 				</tr>
 			</form>';
 	}
diff --git a/adminforce/content/interfacedaten/db_backup.php b/adminforce/content/interfacedaten/db_backup.php
new file mode 100644
index 0000000..ca08537
--- /dev/null
+++ b/adminforce/content/interfacedaten/db_backup.php
@@ -0,0 +1,67 @@
+<?php
+
+if(!is_writable('backup')){
+	echo '
+		<div class="alert alert-danger">
+			Das Verzeichniss Backup, kann nicht beschrieben werden. Bitte &auml;ndere die Zugriffsrechte auf 0777.<br>Ohne Zugriffsrechte, k&ouml;nnen keine Backups erstellt werden.
+		</div>
+	';
+}
+$alledateien = scandir('backup');
+$ausgabe = '';
+$i = 1;
+foreach ($alledateien as $datei) {
+	if ($datei != "." && $datei != ".."  && $datei != "index.html" && $datei != ".htaccess"){
+		$datum = str_replace("dump_".$db_base."_","",$datei);
+		$datum = str_replace(".sql","",$datum);
+		$datum = str_replace("_"," ",$datum);
+		$inhalt = file_get_contents('backup/'.$datei);
+		$ausgabe .= '
+			<div class="panel panel-default">
+				<div class="panel-heading" role="tab" id="überschriftEins">
+					<h4 class="panel-title">
+						<a role="button" data-toggle="collapse" data-parent="#accordion" href="#'.$i.'" aria-expanded="false" aria-controls"'.$i.'">
+							'. $datum.'
+						</a>
+					</h4>
+				</div>
+				<div id="'.$i.'" class="panel-collapse collapse" role="tabpanel" aria-labelledby="überschriftEins">
+					<div class="panel-body">
+						<div class="text-center">
+							<form method="post" action="">
+								<input type="hidden" name="datei" value="'. $datei .'">
+								<button type="button" class="btn btn-info" data-toggle="modal" data-target="#'.$i.'_'.$i.'">Inhalt Anzeigen</button>
+								<button type="submit" name="backup_loeschen" class="btn btn-danger">Backup l&ouml;schen</button>
+								<button type="submit" name="backup_wiederherstellen" class="btn btn-success">Backup wiederherstellen</button>
+							</form>
+						</div>
+						
+						<div class="modal fade" id="'.$i.'_'.$i.'" tabindex="-1" role="dialog" aria-labelledby="meinModalLabel">
+							<div class="modal-dialog modal-lg" role="document">
+								<div class="modal-content">
+									<div class="modal-header">
+										<button type="button" class="close" data-dismiss="modal" aria-label="Schließen"><span aria-hidden="true">&times;</span></button>
+										<h4 class="modal-title" id="meinModalLabel">Inhalt des Backups</h4>
+									</div>
+									<div class="modal-body">
+										<code>'. nl2br(entsch($inhalt)) .'</code>
+									</div>
+									<div class="modal-footer">
+										<button type="button" class="btn btn-default" data-dismiss="modal">Schließen</button>
+									</div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		';
+		$i++;
+	}
+};
+
+?>
+
+<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
+	<?php echo $ausgabe;?>
+</div>
\ No newline at end of file
diff --git a/adminforce/content/interfacedaten/menue_admin.php b/adminforce/content/interfacedaten/menue_admin.php
index 05500dc..0dedcf6 100644
--- a/adminforce/content/interfacedaten/menue_admin.php
+++ b/adminforce/content/interfacedaten/menue_admin.php
@@ -3,11 +3,11 @@
 	if(mysqli_num_rows($oh) > 0){
 		head("Links ohne Zuordnung");
 		echo '
-			<table width="100%">
+			<table class="table">
 				<tr>
 					<td>Name</td>
 					<td>Link</td>
-					<td>Ordnungszahl</td>
+					<td>OZ</td>
 					<td>Box</td>
 					<td></td>
 				</tr>';
@@ -16,18 +16,24 @@
 			<form method="post" action="">
 			<input type="hidden" name="id" value="'.$ohne['id'].'">
 				<tr>
-					<td><input type="text" name="name" value="'.$ohne['name'].'"></td>
-					<td><input type="text" name="link" value="'.$ohne['link'].'"></td>
-					<td><input type="text" name="ordnung" size="3" value="'.$ohne['ordnung'].'"></td>
+					<td><input type="text" class="form-control" name="name" value="'.$ohne['name'].'"></td>
 					<td>
-						<select name="box">';
+						<div class="input-group">
+							<div class="input-group-addon">content/</div>
+							<input type="text" name="link" class="form-control" id="beispielFeldSumme" placeholder="Link zur Datei">
+							<div class="input-group-addon">.php</div>
+						</div>
+					</td>
+					<td><input type="text" class="form-control" name="ordnung" size="3" value="'.$ohne['ordnung'].'"></td>
+					<td>
+						<select class="form-control" name="box">';
 						$bo = db_query("SELECT * FROM ".$db_prefix."_box_admin");
 						while($boxen = mysqli_fetch_array($bo)){
 							echo '<option value="'.$boxen['id'].'">'.$boxen['name'].'</option>';
 						}
 						echo '</select>
 					</td>
-					<td><input type="submit" name="admin_link_zuordnen_neu" value="Bearbeiten">&nbsp;&nbsp;<input type="submit" name="admin_link_zuordnen_loschen" value="L&ouml;schen"></td>
+					<td><input type="submit" class="btn btn-success" name="admin_link_zuordnen_neu" value="Bearbeiten">&nbsp;&nbsp;<input type="submit" class="btn btn-danger" name="admin_link_zuordnen_loschen" value="L&ouml;schen"></td>
 				</tr>
 			</form>';
 		}
@@ -38,19 +44,25 @@
 	head("Neuen Link eintragen");
 		echo '
 				<form method="post" action="">
-					<table width="80%">
+					<table class="table">
 						<tr>
 							<td>Pfad zur Datei</td>
-							<td>content/<input type="text" name="link">.php</td>
+							<td>
+								<div class="input-group">
+									<div class="input-group-addon">content/</div>
+									<input type="text" name="link" class="form-control" id="beispielFeldSumme" placeholder="Link zur Datei">
+									<div class="input-group-addon">.php</div>
+								</div>
+							</td>
 						</tr>
 						<tr>
 							<td>Name des Links (F&uuml;r User sichtbar)</td>
-							<td><input type="text" name="name"></td>
+							<td><input type="text" class="form-control" name="name"></td>
 						</tr>
 						<tr>
 							<td>Box in der der Link stehen soll</td>
 							<td>
-								<select name="box">';
+								<select class="form-control" name="box">';
 									$bo = db_query("SELECT * FROM ".$db_prefix."_box_admin");
 									while($boxen = mysqli_fetch_array($bo)){
 										echo '<option value="'.$boxen['id'].'">'.$boxen['name'].'</option>';
@@ -60,11 +72,11 @@
 						</tr>
 						<tr>
 							<td>Ordnungszahl f&uuml;r Box</td>
-							<td><input type="text" name="ordnung"></td>
+							<td><input type="text" class="form-control" name="ordnung"></td>
 						</tr>
 						<tr>
 							<td></td>
-							<td><input type="submit" name="admin_menue_neu_save"></td>
+							<td><input type="submit" class="btn btn-default" name="admin_menue_neu_save"></td>
 						</tr>
 					</table>
 				</form>';
@@ -99,7 +111,7 @@
 										}
 								echo '</select>
 								</td>
-								<td><button type="submit" name="admin_link_bearbeiten" class="btn btn-success glyphicon glyphicon-ok-circle"></button>&nbsp;&nbsp;<button type="submit" name="admin_link_loschen" class="btn btn-danger glyphicon glyphicon-plus-sign"></button></td>
+								<td><button type="submit" name="admin_link_bearbeiten" class="btn btn-success glyphicon glyphicon-ok-circle"></button>&nbsp;&nbsp;<button type="submit" name="admin_link_loschen" class="btn btn-danger glyphicon glyphicon-remove-circle"></button></td>
 							</tr>
 						</form>';
 				}
diff --git a/adminforce/content/interfacedaten/menue_user.php b/adminforce/content/interfacedaten/menue_user.php
index f980411..b3328e8 100644
--- a/adminforce/content/interfacedaten/menue_user.php
+++ b/adminforce/content/interfacedaten/menue_user.php
@@ -4,11 +4,11 @@ head("Men&uuml;verwaltung Userbereich");
 	if(mysqli_num_rows($oh) > 0){
 		head("Links ohne Zuordnung");
 		echo '
-			<table width="100%">
+			<table class="table">
 				<tr>
 					<td>Name</td>
 					<td>Link</td>
-					<td>Ordnungszahl</td>
+					<td>OZ</td>
 					<td>Box</td>
 					<td></td>
 				</tr>';
@@ -17,18 +17,24 @@ head("Men&uuml;verwaltung Userbereich");
 			<form method="post" action="">
 			<input type="hidden" name="id" value="'.$ohne['id'].'">
 				<tr>
-					<td><input type="text" name="name" value="'.$ohne['name'].'"></td>
-					<td><input type="text" name="link" value="'.$ohne['link'].'"></td>
-					<td><input type="text" name="ordnung" size="3" value="'.$ohne['ordnung'].'"></td>
+					<td><input type="text" class="form-control" name="name" value="'.$ohne['name'].'"></td>
 					<td>
-						<select name="box">';
+						<div class="input-group">
+							<div class="input-group-addon">content/</div>
+							<input type="text" name="link" class="form-control" id="beispielFeldSumme" placeholder="Link zur Datei">
+							<div class="input-group-addon">.php</div>
+						</div>
+					</td>
+					<td><input type="text" class="form-control" name="ordnung" size="3" value="'.$ohne['ordnung'].'"></td>
+					<td>
+						<select class="form-control" name="box">';
 						$bo = db_query("SELECT * FROM ".$db_prefix."_box_user");
 						while($boxen = mysqli_fetch_array($bo)){
 							echo '<option value="'.$boxen['id'].'">'.$boxen['name'].'</option>';
 						}
 						echo '</select>
 					</td>
-					<td><input type="submit" name="link_zuordnen_neu" value="Bearbeiten">&nbsp;&nbsp;<input type="submit" name="link_zuordnen_loschen" value="L&ouml;schen"></td>
+					<td><input type="submit" class="btn btn-success" name="link_zuordnen_neu" value="Bearbeiten">&nbsp;&nbsp;<input type="submit" class="btn btn-danger" name="link_zuordnen_loschen" value="L&ouml;schen"></td>
 				</tr>
 			</form>';
 		}
@@ -39,19 +45,25 @@ head("Men&uuml;verwaltung Userbereich");
 	head("Neuen Link eintragen");
 		echo '
 				<form method="post" action="">
-					<table width="80%">
+					<table class="table">
 						<tr>
 							<td>Pfad zur Datei</td>
-							<td>content/<input type="text" name="link">.php</td>
+							<td>
+								<div class="input-group">
+									<div class="input-group-addon">content/</div>
+									<input type="text" name="link" class="form-control" id="beispielFeldSumme" placeholder="Link zur Datei">
+									<div class="input-group-addon">.php</div>
+								</div>
+							</td>
 						</tr>
 						<tr>
 							<td>Name des Links (F&uuml;r User sichtbar)</td>
-							<td><input type="text" name="name"></td>
+							<td><input type="text" class="form-control" name="name"></td>
 						</tr>
 						<tr>
 							<td>Box in der der Link stehen soll</td>
 							<td>
-								<select name="box">';
+								<select class="form-control" name="box">';
 									$bo = db_query("SELECT * FROM ".$db_prefix."_box_user");
 									while($boxen = mysqli_fetch_array($bo)){
 										echo '<option value="'.$boxen['id'].'">'.$boxen['name'].'</option>';
@@ -61,11 +73,11 @@ head("Men&uuml;verwaltung Userbereich");
 						</tr>
 						<tr>
 							<td>Ordnungszahl f&uuml;r Box</td>
-							<td><input type="text" name="ordnung"></td>
+							<td><input type="text" class="form-control" name="ordnung"></td>
 						</tr>
 						<tr>
 							<td></td>
-							<td><input type="submit" name="menue_neu_save"></td>
+							<td><input type="submit" class="btn btn-default" name="menue_neu_save"></td>
 						</tr>
 					</table>
 				</form>';
@@ -75,11 +87,11 @@ head("Men&uuml;verwaltung Userbereich");
 		$bo = db_query("SELECT * FROM ".$db_prefix."_box_user");
 		while($boxen = mysqli_fetch_array($bo)){
 			echo '<u><b>'.$boxen['name'].'</u></b>
-					<table width="100%">
+					<table class="table table-striped">
 						<tr>
 							<td>Name</td>
 							<td>Link</td>
-							<td>Ordnungszahl</td>
+							<td>OZ</td>
 							<td>Box</td>
 							<td></td>
 						</tr>';
@@ -100,7 +112,7 @@ head("Men&uuml;verwaltung Userbereich");
 										}
 								echo '</select>
 								</td>
-								<td><input type="submit" name="link_bearbeiten" value="Bearbeiten">&nbsp;&nbsp;<input type="submit" name="link_loschen" value="L&ouml;schen"></td>
+								<td><button type="submit" name="link_bearbeiten" class="btn btn-success glyphicon glyphicon-ok-circle"></button>&nbsp;&nbsp;<button type="submit" name="link_loschen" class="btn btn-danger glyphicon glyphicon-plus-sign"></button></td>
 							</tr>
 						</form>';
 				}
diff --git a/adminforce/content/interfacedaten/pageconfig.php b/adminforce/content/interfacedaten/pageconfig.php
index ecffc55..8fafc26 100644
--- a/adminforce/content/interfacedaten/pageconfig.php
+++ b/adminforce/content/interfacedaten/pageconfig.php
@@ -7,64 +7,64 @@ head("Webseiteneinstellungen"); ?>
 <form action="" method="post">
 <table class="table table-striped">
 	<tr>
-		<td align="left"><b>Wartungsmodus</b><br><i>Wartungstext muss bearbeitet werden!</i></td>
-		<td align="left"><inputclass="form-control" type="checkbox" name="wartung" <?php if ($interface['wartung'] == 1) echo 'checked';?>></td>
+		<td><b>Wartungsmodus</b><br><i>Wartungstext muss bearbeitet werden!</i></td>
+		<td><inputclass="form-control" type="checkbox" name="wartung" <?php if ($interface['wartung'] == 1) echo 'checked';?>></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Domain</b><br><i>URL deiner Seite</i></td>
-		<td align="left"><input class="form-control" type="Text" name="domain" value="<?php echo $interface['domain'];?>"></td>
+		<td><b>Domain</b><br><i>URL deiner Seite</i></td>
+		<td><input class="form-control" type="Text" name="domain" value="<?php echo $interface['domain'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Seitenname</b><br><i>Name wie deine Seite hei&szlig;t</i></td>
-		<td align="left"><input class="form-control" type="Text" name="seitenname" value="<?php echo $interface['seitenname'];?>"></td>
+		<td><b>Seitenname</b><br><i>Name wie deine Seite hei&szlig;t</i></td>
+		<td><input class="form-control" type="Text" name="seitenname" value="<?php echo $interface['seitenname'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Name der W&auml;hrung</b><br><i>Name deiner W&auml;hrung</i></td>
-		<td align="left"><input class="form-control" type="Text" name="waehrung" value="<?php echo $interface['waehrung'];?>"></td>
+		<td><b>Name der W&auml;hrung</b><br><i>Name deiner W&auml;hrung</i></td>
+		<td><input class="form-control" type="Text" name="waehrung" value="<?php echo $interface['waehrung'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Betreiber E-Mail Adresse</b><br><i>Deine E-Mail Adresse von der alle Mails kommen sollen.</i></td>
-		<td align="left"><input class="form-control" type="Text" name="betreibermail" value="<?php echo $interface['betreibermail'];?>"></td>
+		<td><b>Betreiber E-Mail Adresse</b><br><i>Deine E-Mail Adresse von der alle Mails kommen sollen.</i></td>
+		<td><input class="form-control" type="Text" name="betreibermail" value="<?php echo $interface['betreibermail'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Cron-PW</b><br><i>Passwort f&uuml;r die Crons</i></td>
-		<td align="left"><input class="form-control" type="Text" name="cron_pw" value="<?php echo $interface['cron_pw'];?>"></td>
+		<td><b>Cron-PW</b><br><i>Passwort f&uuml;r die Crons</i></td>
+		<td><input class="form-control" type="Text" name="cron_pw" value="<?php echo $interface['cron_pw'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Einzahlgrenze</b><br><i>Max. Guthaben pro User! (Ganzzahl)</i></td>
-		<td align="left"><input class="form-control" type="Text" name="einzahlgrenze" value="<?php echo $interface['einzahlgrenze'];?>"></td>
+		<td><b>Einzahlgrenze</b><br><i>Max. Guthaben pro User! (Ganzzahl)</i></td>
+		<td><input class="form-control" type="Text" name="einzahlgrenze" value="<?php echo $interface['einzahlgrenze'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Refebene 1</b><br><i>Angaben in Prozent!</i></td>
-		<td align="left"><input class="form-control" type="Text" name="re1" value="<?php echo $interface['re1'];?>"></td>
+		<td><b>Refebene 1</b><br><i>Angaben in Prozent!</i></td>
+		<td><input class="form-control" type="Text" name="re1" value="<?php echo $interface['re1'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Refebene 2</b><br><i>Angaben in Prozent!</i></td>
-		<td align="left"><input class="form-control" type="Text" name="re2" value="<?php echo $interface['re2'];?>"></td>
+		<td><b>Refebene 2</b><br><i>Angaben in Prozent!</i></td>
+		<td><input class="form-control" type="Text" name="re2" value="<?php echo $interface['re2'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Refebene 3</b><br><i>Angaben in Prozent!</i></td>
-		<td align="left"><input class="form-control" type="Text" name="re3" value="<?php echo $interface['re3'];?>"></td>
+		<td><b>Refebene 3</b><br><i>Angaben in Prozent!</i></td>
+		<td><input class="form-control" type="Text" name="re3" value="<?php echo $interface['re3'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>min. Verdienst (Bettelaufruf)</b></td>
-		<td align="left"><input class="form-control" type="Text" name="min_betteln" value="<?php echo $interface['min_betteln'];?>"></td>
+		<td><b>min. Verdienst (Bettelaufruf)</b></td>
+		<td><input class="form-control" type="Text" name="min_betteln" value="<?php echo $interface['min_betteln'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>max. Verdienst (Bettelaufruf)</b></td>
-		<td align="left"><input class="form-control" type="Text" name="max_betteln" value="<?php echo $interface['max_betteln'];?>"></td>
+		<td><b>max. Verdienst (Bettelaufruf)</b></td>
+		<td><input class="form-control" type="Text" name="max_betteln" value="<?php echo $interface['max_betteln'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Reloadzeit (Bettelaufruf)</b><br><i>Angaben in Sekunden (3600 = 1 Stunde) (0 = Bettellink deaktiviert)</i></td>
-		<td align="left"><input class="form-control" type="Text" name="reload_betteln" value="<?php echo $interface['reload_betteln'];?>"></td>
+		<td><b>Reloadzeit (Bettelaufruf)</b><br><i>Angaben in Sekunden (3600 = 1 Stunde) (0 = Bettellink deaktiviert)</i></td>
+		<td><input class="form-control" type="Text" name="reload_betteln" value="<?php echo $interface['reload_betteln'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Nicht erlaubte eMail-Domains</b><br><i>(Durch ; getrennt)</i></td>
-		<td align="left"><input class="form-control" type="Text" name="denied_domains" value="<?php echo $interface['denied_domains'];?>"></td>
+		<td><b>Nicht erlaubte eMail-Domains</b><br><i>(Durch ; getrennt)</i></td>
+		<td><input class="form-control" type="Text" name="denied_domains" value="<?php echo $interface['denied_domains'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Startseite Userbereich</b><br><i>Ausw&auml;hlen was angezeigt werden soll auf der Startseite</i></td>
-		<td align="left">
+		<td><b>Startseite Userbereich</b><br><i>Ausw&auml;hlen was angezeigt werden soll auf der Startseite</i></td>
+		<td>
 			<table width="50%">
 				<tr>
 					<td>Chat</td>
@@ -78,16 +78,16 @@ head("Webseiteneinstellungen"); ?>
 		</td>
 	</tr>
 	<tr>
-		<td align="left"><b>Verdienst (Startseitenaufruf)</b></td>
-		<td align="left"><input class="form-control" type="Text" name="verdienst_start" value="<?php echo $interface['verdienst_start'];?>"></td>
+		<td><b>Verdienst (Startseitenaufruf)</b></td>
+		<td><input class="form-control" type="Text" name="verdienst_start" value="<?php echo $interface['verdienst_start'];?>"></td>
 	</tr>
 	<tr>
-		<td align="left"><b>Reloadzeit (Startseitenaufruf)</b></td>
-		<td align="left"><input class="form-control" type="Text" name="reload_start" value="<?php echo $interface['reload_start'];?>"> In Sekunden</td>
+		<td><b>Reloadzeit (Startseitenaufruf)</b></td>
+		<td><input class="form-control" type="Text" name="reload_start" value="<?php echo $interface['reload_start'];?>"> In Sekunden</td>
 	</tr>
 	<tr>
-		<td align="left"><b>Vergütung als Popup</b><br><i>Startseitenvergütung!</i></td>
-		<td align="left">
+		<td><b>Vergütung als Popup</b><br><i>Startseitenvergütung!</i></td>
+		<td>
 			<select name="popup_start">
 				<option value="0" <?php if ($interface['popup_start'] == 0) echo 'SELECTED';?>>Deaktiviert</option>
 				<option value="1" <?php if ($interface['popup_start'] == 1) echo 'SELECTED';?>>Aktiviert</option>
@@ -95,8 +95,8 @@ head("Webseiteneinstellungen"); ?>
 		</td>
 	</tr>
 	<tr>
-		<td align="left"><b>Geburtstagsaddon aktivieren</b></td>
-		<td align="left"><select name="geb_addon">
+		<td><b>Geburtstagsaddon aktivieren</b></td>
+		<td><select name="geb_addon">
 			<option value="0" <?php if ($interface['geb_addon'] == 0) echo 'SELECTED';?>>Deaktiviert</option>
 			<option value="1" <?php if ($interface['geb_addon'] == 1) echo 'SELECTED';?>>Aktiviert</option>
 		</select>
@@ -107,21 +107,25 @@ head("Webseiteneinstellungen"); ?>
 		</td>
 	</tr>
 	<tr>
-		<td align="left"><b>News Kommentar</b><br><i>Damit k&ouml;nnen die User die News kommentieren</a></td>
-		<td align="left"><select name="news_komment">
+		<td><b>News Kommentar</b><br><i>Damit k&ouml;nnen die User die News kommentieren</a></td>
+		<td><select name="news_komment">
 			<option value="0" <?php if ($interface['news_komment'] == 0) echo 'SELECTED';?>>Deaktiviert</option>
 			<option value="1" <?php if ($interface['news_komment'] == 1) echo 'SELECTED';?>>Aktiviert</option>
 		</select>	
 		</td>
 	</tr>
 	<tr>
-		<td align="left"><b>Buchungen l&ouml;schen</b><br><i>Buchungen die &auml;lter als wieviel Tage sind sollen gel&ouml;sch werden?</td>
-		<td align="left"><select name="buchungen_loeschen">
+		<td><b>Buchungen l&ouml;schen</b><br><i>Sollen Buchungen automatisch gel&ouml;scht werden?</td>
+		<td><select name="buchungen_loeschen">
 			<option value="0" <?php if ($interface['buchungen_loeschen'] == 0) echo 'SELECTED';?>>Deaktiviert</option>
 			<option value="1" <?php if ($interface['buchungen_loeschen'] == 1) echo 'SELECTED';?>>Aktiviert</option>
 		</select>
 		<?php
-		if ($interface['buchungen_loeschen'] == 1){ echo '<input class="form-control" style="width:100px;" type="text" name="buchungen_loeschen_tage" value="'.$interface['buchungen_loeschen_tage'].'"> Tage';}
+		if ($interface['buchungen_loeschen'] == 1){
+			echo '<input class="form-control" style="width:100px;" type="text" name="buchungen_loeschen_tage" value="'.$interface['buchungen_loeschen_tage'].'"> Tage';
+		}else{
+			echo '<input class="form-control" style="width:100px;" type="hidden" name="buchungen_loeschen_tage" value="'.$interface['buchungen_loeschen_tage'].'">';
+		}
 		?>
 	</tr>
 	<tr>
@@ -133,6 +137,10 @@ head("Webseiteneinstellungen"); ?>
 				<option value="1" <?php if ($interface['auszahlung_sperre'] == 0) echo 'SELECTED';?>>Aktiviert</option>
 		</td>
 	</tr>
+	<tr>
+		<td><b>Erlaube IP-L&auml;nder</b><br><i>L&auml;nder werden per IP abgefragt und bei nicht entsprechen geblockt<br>Internationale Abk&uuml;rzungen eintragen (DE,AT,CH) und mit , trennen<br>Freilassen, wenn deaktiviert sein soll</i></td>
+		<td><input type="text" class="form-control" name="ip_erlaubt" value="<?php echo $interface['ip_erlaubt'];?>"></td>
+	</tr>
 	<tr>
 		<td align="center" colspan="2"><input class="btn btn-default" type="Submit" name="updaten" value="Updaten !"></td>
 	</tr>
@@ -142,12 +150,12 @@ head("Webseiteneinstellungen"); ?>
 <form method="post" action="">
 	<table class="table">
 		<tr>
-			<th align="left"><b>Loginname (Adminforce)</b></th>
-			<td align="left"><input class="form-control" type="Text" name="admin_name" value="<?php echo base64_decode($interface['admin_name']);?>"></td>
+			<th><b>Loginname (Adminforce)</b></th>
+			<td><input class="form-control" type="Text" name="admin_name" value="<?php echo base64_decode($interface['admin_name']);?>"></td>
 		</tr>
 		<tr>
-			<th align="left"><b>Passwort (Adminforce)</b></th>
-			<td align="left"><input class="form-control" type="Text" name="admin_pass"></td>
+			<th><b>Passwort (Adminforce)</b></th>
+			<td><input class="form-control" type="Text" name="admin_pass"></td>
 		</tr>
 		<tr>
 			<td align="center" colspan="2"><input class="btn btn-default" type="Submit" name="admin" value="Zugangsdaten &Auml;ndern"></td>
diff --git a/adminforce/content/interfacedaten/versch.php b/adminforce/content/interfacedaten/versch.php
new file mode 100644
index 0000000..0eeedd0
--- /dev/null
+++ b/adminforce/content/interfacedaten/versch.php
@@ -0,0 +1,5 @@
+<?php
+	$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
+	$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
+	echo mcrypt_encrypt(MCRYPT_RIJNDAEL_256, "passwort", "Ich bin geheim!", MCRYPT_MODE_ECB, $iv);
+?>
\ No newline at end of file
diff --git a/adminforce/content/startseite.php b/adminforce/content/startseite.php
index c21b462..36050b8 100644
--- a/adminforce/content/startseite.php
+++ b/adminforce/content/startseite.php
@@ -1,42 +1,19 @@
-<?php if($_SESSION['admin'] != 1){
-
-    echo '<center>
-    <b>Adminlogin</b>
-
-    <form action="" method="POST">
-    <table border="0">
-    <tr>
-        <td><b>Loginname:</b></td>
-        <td><input name="loginname" type="text"></td>
-    </tr>
-    <tr>
-        <td><b>Passwort:</b></td>
-        <td><input name="passwort" type="password"></td>
-    </tr>
-    <tr>
-        <td colspan=2 align="center"><input name="check" value="Login" type="submit"></td>
-    </tr>
-    </table>
-    </form>
-
-    </center>';
-
-}else{
-    echo '<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr>
-    <td width="100%" valign="top">';
+<?php
+if($_SESSION['admin'] == 1){
+	
     head("Userstatistik");
 
     $kontostats = mysqli_fetch_array(db_query("SELECT COUNT(uid) AS kd_uid , SUM(kontostand) AS kd_kontostand FROM ".$db_prefix."_kontodaten"));
-    echo '<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#c0c0c0">
-    <tr bgcolor="#f0f0f0">
+    echo '<table class="table">
+    <tr>
         <td width="55%">Angemeldete User</td>
         <td align="right">'.@number_format($kontostats['kd_uid'],0,",",".").'&nbsp;&nbsp;</td>
     </tr>
-    <tr bgcolor="#f5f5f5">
+    <tr>
         <td>Gesamtguthaben</td>
         <td align="right">'.@number_format($kontostats['kd_kontostand'],2,",",".").'&nbsp;&nbsp;</td>
     </tr>
-    <tr bgcolor="#f0f0f0">
+    <tr>
         <td width="55%">Guth. pro User</td>
         <td align="right">'.@number_format($kontostats['kd_kontostand'] / $kontostats['kd_uid'],2,",",".").'&nbsp;&nbsp;</td>
     </tr>
@@ -48,7 +25,7 @@ foot();
     head("Inaktiven-Suche");
     echo'<form action="" method="post">
     		Zeigt alle User an, die nach einer gegebenen Zeit nicht mehr online waren.<br><br>
-    		<table width="100%" valign="top" align="center" border="0" cellpadding="1" cellspacing="1" bgcolor="">
+    		<table class="table">
     			<tr bgcolor="#f5f5f5">
     				<td align="left"><b>Tag (<i>z.B. 04</i>)<br>Monat (<i>z.B. 06</i>)<br>Jahr (<i>z.B. 2000</i>):</b></td>
     				<td align="left">
diff --git a/adminforce/content/usersystem/liste.php b/adminforce/content/usersystem/liste.php
index b98caf8..c10cd7d 100644
--- a/adminforce/content/usersystem/liste.php
+++ b/adminforce/content/usersystem/liste.php
@@ -16,7 +16,7 @@ head("Userliste");
     <th>Angemeldet</th>
 </tr>
 <?php
-$userliste = db_query("SELECT k.uid,k.status,k.kontostand,u.nickname,u.vorname,u.nachname,u.angemeldet_seit,e.emailadresse
+$userliste = db_query("SELECT k.login_ip,k.uid,k.status,k.kontostand,u.nickname,u.vorname,u.nachname,u.angemeldet_seit,e.emailadresse
                              FROM " . $db_prefix . "_kontodaten AS k
                              LEFT JOIN " . $db_prefix . "_userdaten AS u ON u.uid=k.uid
                              LEFT JOIN " . $db_prefix . "_emaildaten AS e ON e.uid=k.uid
@@ -25,7 +25,6 @@ $i = 0;
 while ($ausgabe = mysqli_fetch_array($userliste)) {
     $i++;
     $row = ($i % 2 == 0) ? 0 : 1;
-
     echo'
 <tr  class="tabellenbody_' . $row . '">
     <td align="center"><a href="?content=/usersystem/userbearbeiten&amp;uid=' . $ausgabe['uid'] . '" target="_self">' . $gfx_status[$ausgabe['status']] . '</a></td>
diff --git a/adminforce/content/usersystem/user_include/allgemeines.php b/adminforce/content/usersystem/user_include/allgemeines.php
index 44cf642..6b8f470 100644
--- a/adminforce/content/usersystem/user_include/allgemeines.php
+++ b/adminforce/content/usersystem/user_include/allgemeines.php
@@ -2,31 +2,34 @@
 <input type="hidden" name="uid" value="<?php echo $alledaten['uid'];?>">
 <input type="hidden" name="alt_werber" value="<?php echo $alledaten['werber'];?>">
 <table class="table table-striped">
-	<tr bgcolor="#fafafa">
+	<tr>
 		<td align="right"><b>User-ID</b>:&nbsp;</td>
 		<td align="left">&nbsp;<?php echo $alledaten['uid'];?></td>
 	</tr>
-	<tr bgcolor="#ededed">
+	<tr>
 		<td align="right"><b>Nickname</b>:&nbsp;</td>
 		<td align="left">&nbsp;<input type="text" name="nickname" value="<?php echo $alledaten['nickname'];?>"></td>
 	</tr>
-	<tr bgcolor="#fafafa">
+	<tr>
 		<td align="right"><b>Werber-ID</b>:&nbsp;</td>
 		<td align="left">&nbsp;<input type="text" name="werber" value="<?php echo $alledaten['werber'];?>"></td>
 	</tr>
-	<tr bgcolor="#ededed">
+	<tr>
 		<td align="right"><b>Vorname</b>:&nbsp;</td>
 		<td align="left">&nbsp;<input type="text" name="vorname" value="<?php echo $alledaten['vorname'];?>"></td>
 	</tr>
-	<tr bgcolor="#fafafa">
+	<tr>
 		<td align="right"><b>Nachname</b>:&nbsp;</td>
 		<td align="left">&nbsp;<input type="text" name="nachname" value="<?php echo $alledaten['nachname'];?>"></td>
 	</tr>
-	<tr bgcolor="#ededed">
+	<tr>
 		<td align="right"><b>eMailadresse</b>:&nbsp;</td>
 		<td align="left">&nbsp;<input type="text" name="emailadresse" value="<?php echo $alledaten['emailadresse'];?>"></td>
 	</tr>
-	<tr bgcolor="#fafafa">
+	<tr>
+		<td align="right"><b>IP/Herkunft</b>:&nbsp;</td>
+		<td align="left">&nbsp;<?php echo $alledaten['login_ip'].' / '. geoIP($ausgabe['login_ip']);?></td>
+	<tr>
 		<td align="right"><b>eMail-Empfang</b>:&nbsp;</td>
 		<td align="left">&nbsp;<select name="freigabe_fuer" size="1">
 		<option value="0" <?php if ($alledaten['freigabe_fuer'] == 0) echo'SELECTED';?>>Kein Empfang</option>
@@ -35,7 +38,7 @@
 		<option value="3" <?php if ($alledaten['freigabe_fuer'] == 3) echo'SELECTED';?>>Newsletter / Paidmails</option>
 		</select></td>
 	</tr>
-	<tr bgcolor="#ededed">
+	<tr>
 		<td align="right">&nbsp;<b>Bettelsperre</b>:</td>
 		<td align="left">&nbsp;
 			<select name="bettel_sperre" size="1">
@@ -44,7 +47,7 @@
 			</select>
 		</td>
 	</tr>
-	<tr bgcolor="#fafafa">
+	<tr>
 		<td align="right">&nbsp;<b>Banner Sperre</b>:</td>
 		<td align="left">&nbsp;
 			<select name="forced_sperre" size="1">
@@ -53,7 +56,7 @@
 			</select>
 		</td>
 	</tr>
-	<tr bgcolor="#ededed">
+	<tr>
 		<td align="right">&nbsp;<b>Chat Sperre</b>:</td>
 		<td align="left">&nbsp;
 			<select name="chat_sperre" size="1">
@@ -62,7 +65,7 @@
 			</select>
 		</td>
 	</tr>
-	<tr bgcolor="#fafafa">
+	<tr>
 		<td><b>Auszahlungssperre</b></td>
 		<td>
 			<select name="auszahlung_sperre">
@@ -71,7 +74,7 @@
 			</select>
 		</td>
 	</tr>
-	<tr bgcolor="#ededed">
+	<tr>
 		<td align="center" colspan="2"><br /><input type="submit" name="profile" value="&raquo; Updaten"><br />&nbsp;</td>
 	</tr>
 </table>
diff --git a/adminforce/index.php b/adminforce/index.php
index 4d1dbe7..35f2b2f 100644
--- a/adminforce/index.php
+++ b/adminforce/index.php
@@ -13,7 +13,7 @@ if (!ini_get('display_errors')) {
 }
 
 
-    if (!isset($_GET['content']) || empty ($_GET['content'])) $_GET['content'] = '/intern/startseite';
+    if (!isset($_GET['content']) || empty ($_GET['content'])) $_GET['content'] = '/startseite';
     if (!file_exists('content' . $_GET['content'] . '.php')) $_GET['content'] = '/error/keine_seite';
 
 	require ('../lib/datenbank.inc.php');
@@ -84,30 +84,17 @@ if (!ini_get('display_errors')) {
 				<a class="navbar-brand" href="<?php echo $domain.'/adminforce';?>">..:: Adminforce ::..</a>
 			</div>
 			<div id="navbar" class="navbar-collapse collapse">
+			<?php if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1){?>
 				<ul class="nav navbar-nav navbar-right">
-					<?php if(!isset($_SESSION['admin']) && $_SESSION['admin'] != 1){?>
-					<li class="dropdown">
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Login <span class="caret"></span></a>
-						<ul class="dropdown-menu">
-							<li>
-								<form  method="post">
-									<input type="Text" name="loginname" value="<?php echo $_POST['loginname'];?>" placeholder="Username">
-									<input type="Password" name="passwort" value="" placeholder="Passwort">
-									<button type="submit" name="check" value="Login">Login</button>
-								</form>
-							</li>
-							<?php }else{ ?>
-							<li><a href="?content=/startseite">Startseite</a></li>
-							<li><a href="?content=/bilanzsystem">Bilanz</a></li>
-                            <li><a href="?content=/usersystem/liste">Userliste</a></li>
-							<li><a href="?content=/logout/">Logout</a></li>
-						</ul>
-					</li>
-					<?php } ?>
+					<li><a href="?content=/startseite">Startseite</a></li>
+					<li><a href="?content=/bilanzsystem">Bilanz</a></li>
+                    <li><a href="?content=/usersystem/liste">Userliste</a></li>
+					<li><a href="?content=/logout/">Logout</a></li>
 				</ul>
 				<form class="navbar-form navbar-right">
 					<input type="text" class="form-control" placeholder="Suchen...">
 				</form>
+			<?php } ?>
 			</div>
 		</div>
     </nav>
@@ -160,6 +147,14 @@ if (!ini_get('display_errors')) {
 							echo '<div class="alert alert-danger text-center">Du musst den Ordner install noch l&ouml;schen</div>';
 						}
 						require_once('content'.$_GET['content'].'.php');
+					}else{
+						echo '
+							<form  method="post">
+									<input type="Text" name="loginname" value="'.$_POST['loginname'].'" placeholder="Username">
+									<input type="Password" name="passwort" value="" placeholder="Passwort">
+									<button type="submit" name="check" value="Login">Login</button>
+								</form>
+						';
 					}?>
 				</div>
 			</div>
diff --git a/adminforce/lib/funktionen/db_backup/loeschen.php b/adminforce/lib/funktionen/db_backup/loeschen.php
new file mode 100644
index 0000000..7034d1c
--- /dev/null
+++ b/adminforce/lib/funktionen/db_backup/loeschen.php
@@ -0,0 +1,8 @@
+<?php
+
+	$delete = unlink('backup/'.$_POST['datei']);
+	if($delete == true){
+		$meldung = array("error" => 0, "meldung" => 'Backup wurde erfolgreich gel&ouml;scht.');
+	}else{
+		$meldung = array("error" => 0, "meldung" => 'Backup konnte nicht gel&ouml;scht werden.');
+	}
\ No newline at end of file
diff --git a/adminforce/lib/funktionen/db_backup/wiederherstellen.php b/adminforce/lib/funktionen/db_backup/wiederherstellen.php
new file mode 100644
index 0000000..c300cf8
--- /dev/null
+++ b/adminforce/lib/funktionen/db_backup/wiederherstellen.php
@@ -0,0 +1,24 @@
+<?php
+
+if (is_writable('backup/' .$_POST['datei'])) {
+	$fp = file_get_contents('backup/' .$_POST['datei']);
+	$fp = entsch($fp);
+	file_put_contents('backup/' .$_POST['datei'], $fp);
+}
+
+$qres = db_query("SHOW TABLES") or die(mysqli_error($sql_open));
+while (list($tabelle) = mysqli_fetch_row($qres)){
+	db_query("DROP TABLE IF EXISTS ". $tabelle);
+}
+
+$command='mysql -h' .$db_host .' -u' .$db_user .' -p' .$db_pass .' ' .$db_base .' < backup/' .$_POST['datei'];
+exec($command,$output=array(),$worked);
+$meldung = array("error" => 0, "meldung" => 'Die Daten aus der Datei <b>' .$_POST['datei'] .'</b> wurden erfolgreich eingespielt in der Datenbank <b>' .$_POST['datei'] .'</b>');
+
+
+if (is_writable('backup/' .$_POST['datei'])) {
+	$fp = file_get_contents('backup/' .$_POST['datei']);
+	$fp = versch($fp);
+	file_put_contents('backup/' .$_POST['datei'], $fp);
+}
+?>
\ No newline at end of file
diff --git a/adminforce/lib/funktionen/setting/grundeinstellung.php b/adminforce/lib/funktionen/setting/grundeinstellung.php
index a1d511f..9ebbaba 100644
--- a/adminforce/lib/funktionen/setting/grundeinstellung.php
+++ b/adminforce/lib/funktionen/setting/grundeinstellung.php
@@ -32,11 +32,11 @@
 					 waehrung = '". $_POST['waehrung'] ."',
 					 betreibermail = '". $_POST['betreibermail'] ."',
 					 cron_pw = '". $_POST['cron_pw'] ."',
-					 waehrung_zwei = '". $_POST['waehrung_zwei'] ."',
 					 buchungen_loeschen = '". $_POST['buchungen_loeschen'] ."',
 					 buchungen_loeschen_tage = '". $_POST['buchungen_loeschen_tage'] ."',
 					 auszahlung_sperre = '". $_POST['auszahlung_sperre'] ."',
-					 verdienst_start = '". $_POST['verdienst_start'] ."'
+					 verdienst_start = '". $_POST['verdienst_start'] ."',
+					 ip_erlaubt = '". $_POST['ip_erlaubt'] ."'
 					 ");
 	
 			if($update == true){
diff --git a/adminforce/lib/run.inc.php b/adminforce/lib/run.inc.php
index 13f157a..9f05ac4 100644
--- a/adminforce/lib/run.inc.php
+++ b/adminforce/lib/run.inc.php
@@ -60,4 +60,9 @@
 //Texte
 	//Bezahlte Startseite
 	if(isset($_POST['start_bezahlt_save']) && $_SESSION['admin'] == 1){ require('lib/funktionen/texte/bezahlte_startseite.php');}
+//Backup
+	//wiederherstellen
+	if(isset($_POST['backup_wiederherstellen']) && $_SESSION['admin'] == 1){ require('lib/funktionen/db_backup/wiederherstellen.php');}
+	//Backup löschen
+	if(isset($_POST['backup_loeschen']) && $_SESSION['admin'] == 1){ require('lib/funktionen/db_backup/loeschen.php');}
 ?>
\ No newline at end of file
diff --git a/crons/db_backup.php b/crons/db_backup.php
new file mode 100644
index 0000000..8b668d7
--- /dev/null
+++ b/crons/db_backup.php
@@ -0,0 +1,31 @@
+<?php
+ 
+require('../lib/datenbank.inc.php');
+require('../lib/functions.lib.php');
+
+if($_GET['cron_pw'] == $cron_pw){
+	set_time_limit(0);
+
+	$sql_file = "dump_" . $db_base . "_" . date('d.m.Y_H:i') . ".sql";
+
+	exec("mysqldump -u $db_user -p'$db_pass' --quick --allow-keywords --add-drop-table --complete-insert --quote-names $db_base > ". $sql_file ."");
+
+
+	$link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
+	$neu_link = str_replace("/cron","",$_SERVER["DOCUMENT_ROOT"].'/adminforce/backup/'.$sql_file);
+	copy($sql_file, $neu_link);
+	unlink($sql_file);
+	if (is_writable($neu_link)) {
+		$fp = file_get_contents($neu_link);
+		$fp = versch($fp);
+		file_put_contents($neu_link, $fp);
+	}else{
+		unlink($neu_link);
+	}
+	mysqli_close($sql_open);
+}else{
+	mysqli_close($sql_open);
+	die();
+}
+
+?>
\ No newline at end of file
diff --git a/install/index.php b/install/index.php
index 56e0100..f8899fe 100644
--- a/install/index.php
+++ b/install/index.php
@@ -18,6 +18,9 @@ if(isset($_POST['datenbank_anlegen'])){
 	//Passwort zusatz
 	$pw_zusatz = '. create_code(5) .';
 	
+	// Verschlüsselungspasswort
+	$ver_schluessel = '. create_code(16) .';
+	
 	//Datenbankverbindung herstellen
 	$sql_open = @mysqli_connect($db_host, $db_user, $db_pass, $db_base) or die(\'Verbindung zum Mysql Server fehlgeschlagen! <br>Tipp: <a href="http://www.vms-tutorial.de/wiki//Lib/Functions">http://www.vms-tutorial.de/wiki//Lib/Functions</a>\');
 	$sql_base = @mysqli_select_db($sql_open,$db_base) or die("Keine oder falsche Datenbank gewählt! Tipp: <br><a href=\'http://www.vms-tutorial.de/wiki//Lib/Functions\'>http://www.vms-tutorial.de/wiki//Lib/Functions</a>");
diff --git a/install/mysql.txt b/install/mysql.txt
index 1263b62..72f270a 100644
--- a/install/mysql.txt
+++ b/install/mysql.txt
@@ -464,7 +464,7 @@ CREATE TABLE IF NOT EXISTS `vms_schnittstelle_anfragen` (
 INSERT INTO `vms_schnittstelle_anfragen` (`zeit`, `uid`) VALUES
 (0, 1);
 
-CREATE TABLE IF NOT EXISTS `vms_seitenkonfig` (
+CREATE TABLE `vms_seitenkonfig` (
   `wartung` int(1) NOT NULL DEFAULT '0',
   `domain` text NOT NULL,
   `seitenname` text NOT NULL,
@@ -487,7 +487,14 @@ CREATE TABLE IF NOT EXISTS `vms_seitenkonfig` (
   `anzeige_chat` int(11) NOT NULL,
   `anzeige_text` int(11) NOT NULL,
   `geb_addon` int(11) NOT NULL,
-  `news_komment` int(11) NOT NULL
+  `news_komment` int(11) NOT NULL,
+  `buchungen_loeschen` int(11) NOT NULL DEFAULT '0',
+  `buchungen_loeschen_tage` int(11) NOT NULL DEFAULT '0',
+  `reload_start` int(11) NOT NULL,
+  `verdienst_start` double(100,2) NOT NULL,
+  `popup_start` tinyint(1) NOT NULL DEFAULT '1',
+  `auszahlung_sperre` int(11) NOT NULL DEFAULT '0',
+  `ip_erlaubt` text NOT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 CREATE TABLE IF NOT EXISTS `vms_texte` (
diff --git a/lib/datenbank.inc.php b/lib/datenbank.inc.php
index 67d509b..c671594 100644
--- a/lib/datenbank.inc.php
+++ b/lib/datenbank.inc.php
@@ -12,6 +12,8 @@
 	//Passwort zusatz
 	$pw_zusatz = 'fg65en';
 	
+	// Verschlüsselungspasswort
+	$ver_schluessel = 'libh5476H6G4v0TB';
 	
 	//Datenbankverbindung herstellen
 	$sql_open = @mysqli_connect($db_host, $db_user, $db_pass, $db_base) or die('Verbindung zum Mysql Server fehlgeschlagen! <br>Tipp: <a href="http://www.vms-tutorial.de/wiki//Lib/Functions">http://www.vms-tutorial.de/wiki//Lib/Functions</a>');
diff --git a/lib/functions.lib.php b/lib/functions.lib.php
index 63648e3..ae90247 100644
--- a/lib/functions.lib.php
+++ b/lib/functions.lib.php
@@ -23,6 +23,7 @@ $gzip_rate = 0;
 $ip = $_SERVER['REMOTE_ADDR'];
 
 
+
 /**
  * create_code()
  *
@@ -302,4 +303,25 @@ function check_email($email) {
     }
     return true;
 }  
+
+function geoIP($ip){
+	$output = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=".$ip,"r"));
+	return $output['geoplugin_countryCode'];
+}
+
+function versch($text){
+	global $ver_schluessel;
+	$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
+    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
+    $crypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $ver_schluessel, $text, MCRYPT_MODE_ECB, $iv);
+	return $crypted;
+}
+
+function entsch($text){
+	global $ver_schluessel;
+	$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
+    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
+	$encrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $ver_schluessel, $text, MCRYPT_MODE_ECB, $iv);
+	return $encrypted;
+}
 ?>
diff --git a/lib/funktionen/konto/anmelden.php b/lib/funktionen/konto/anmelden.php
index 04da179..1cac0ec 100644
--- a/lib/funktionen/konto/anmelden.php
+++ b/lib/funktionen/konto/anmelden.php
@@ -20,7 +20,7 @@ if (!isset($ak)) $ak = "";
 	$_POST['nachname'] = addslashes ($_POST['nachname']);
     $_POST['vorname'] = addslashes ($_POST['vorname']);
 	
-	$pageconfig = mysqli_fetch_array(db_query("SELECT denied_domains FROM ".$db_prefix."_seitenkonfig "));
+	$pageconfig = mysqli_fetch_array(db_query("SELECT denied_domains,ip_erlaubt FROM ".$db_prefix."_seitenkonfig "));
 	//$_POST['nickname'] = mysqli_real_escape_string($sql_open,$_POST['nickname']);
     $nickname_check = db_query ("SELECT `nickname` FROM " . $db_prefix . "_userdaten WHERE nickname='" . mysqli_real_escape_string($sql_open,$_POST['nickname']) . "'");
     $mail_check = db_query ("SELECT `emailadresse` FROM " . $db_prefix . "_emaildaten WHERE emailadresse='" . mysqli_real_escape_string($sql_open,$_POST['emailadresse']) . "'");
@@ -37,6 +37,10 @@ if (!isset($ak)) $ak = "";
 	if(empty($_POST['nickname'])){$error = 1; $meldung = 'Bitte Nickname angeben.<br>';}
 	$meldung = array("error" => $error, "meldung" => $meldung);
 	$denied = explode(';', $pageconfig['denied_domains']);
+	if($pageconfig['ip_erlaubt'] != ''){
+		$ip_denied = explode(',', $pageconfig['ip_erlaubt']);
+		if(!in_array(geoIP($ip),$ip_denied)){ $error = 1; $meldung .= 'Deine IP- Adresse kommt aus einem nicht erlaubten Land.<br>';}
+	}
 	foreach ($denied AS $nr => $emaildomain) if (($nr < (count ($denied) - 2) || strlen ($emaildomain) >= 5) && strpos ($_POST['emailadresse'], $emaildomain) !== false){$meldung = array("error" => 1, "meldung" => 'Der E-Mail Anbieter ist nicht erlaubt..');}
 	if ($_POST['agb'] != "ja"){ $meldung = array("error" => 1, "meldung" => 'Bitte best&auml;tige die AGB.'); }
 	if (mysqli_num_rows($mail_check)){ $meldung = array("error" => 1, "meldung" => 'Die E-Mail Adresse ist bereits vorhanden.');}
-- 
GitLab