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="Ändern"> <input type="submit" name="admin_box_loschen" value="Lö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="Ändern"></button> <button type="submit" class="btn btn-danger glyphicon glyphicon-remove-circle" name="admin_box_loschen" value="Lö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ür</td> <td> - <select name="sichtbar"> + <select name="sichtbar"class="form-control" > <option value="1">Gäste/User</option> <option value="2">Gä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äste/User</option> <option value="2"'; if($boxen['sichtbar'] == 2) {echo'SELECTED';} echo '>Gäste</option> <option value="3"'; if($boxen['sichtbar'] == 3) {echo'SELECTED';} echo '>User</option> </select> </td> - <td><input type="submit" name="aendern" value="Ändern"> <input type="submit" name="box_loschen" value="Löschen"></td> + <td><button type="submit" class="btn btn-success glyphicon glyphicon-ok-circle" name="aendern"></button> <button type="submit" class="btn btn-danger glyphicon glyphicon-remove-circle" name="box_loschen" value="Lö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 ändere die Zugriffsrechte auf 0777.<br>Ohne Zugriffsrechte, kö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ö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">×</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"> <input type="submit" name="admin_link_zuordnen_loschen" value="Löschen"></td> + <td><input type="submit" class="btn btn-success" name="admin_link_zuordnen_neu" value="Bearbeiten"> <input type="submit" class="btn btn-danger" name="admin_link_zuordnen_loschen" value="Lö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ü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ü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> <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> <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ü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ü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"> <input type="submit" name="link_zuordnen_loschen" value="Löschen"></td> + <td><input type="submit" class="btn btn-success" name="link_zuordnen_neu" value="Bearbeiten"> <input type="submit" class="btn btn-danger" name="link_zuordnen_loschen" value="Löschen"></td> </tr> </form>'; } @@ -39,19 +45,25 @@ head("Menü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ü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üverwaltung Userbereich"); </tr> <tr> <td>Ordnungszahl fü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ü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üverwaltung Userbereich"); } echo '</select> </td> - <td><input type="submit" name="link_bearbeiten" value="Bearbeiten"> <input type="submit" name="link_loschen" value="Löschen"></td> + <td><button type="submit" name="link_bearbeiten" class="btn btn-success glyphicon glyphicon-ok-circle"></button> <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ß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ß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ährung</b><br><i>Name deiner Wä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ährung</b><br><i>Name deiner Wä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ü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ü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ählen was angezeigt werden soll auf der Startseite</i></td> - <td align="left"> + <td><b>Startseite Userbereich</b><br><i>Auswä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önnen die User die News kommentieren</a></td> - <td align="left"><select name="news_komment"> + <td><b>News Kommentar</b><br><i>Damit kö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öschen</b><br><i>Buchungen die älter als wieviel Tage sind sollen gelösch werden?</td> - <td align="left"><select name="buchungen_loeschen"> + <td><b>Buchungen löschen</b><br><i>Sollen Buchungen automatisch gelö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änder</b><br><i>Länder werden per IP abgefragt und bei nicht entsprechen geblockt<br>Internationale Abkü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 Ä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,",",".").' </td> </tr> - <tr bgcolor="#f5f5f5"> + <tr> <td>Gesamtguthaben</td> <td align="right">'.@number_format($kontostats['kd_kontostand'],2,",",".").' </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,",",".").' </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&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>: </td> <td align="left"> <?php echo $alledaten['uid'];?></td> </tr> - <tr bgcolor="#ededed"> + <tr> <td align="right"><b>Nickname</b>: </td> <td align="left"> <input type="text" name="nickname" value="<?php echo $alledaten['nickname'];?>"></td> </tr> - <tr bgcolor="#fafafa"> + <tr> <td align="right"><b>Werber-ID</b>: </td> <td align="left"> <input type="text" name="werber" value="<?php echo $alledaten['werber'];?>"></td> </tr> - <tr bgcolor="#ededed"> + <tr> <td align="right"><b>Vorname</b>: </td> <td align="left"> <input type="text" name="vorname" value="<?php echo $alledaten['vorname'];?>"></td> </tr> - <tr bgcolor="#fafafa"> + <tr> <td align="right"><b>Nachname</b>: </td> <td align="left"> <input type="text" name="nachname" value="<?php echo $alledaten['nachname'];?>"></td> </tr> - <tr bgcolor="#ededed"> + <tr> <td align="right"><b>eMailadresse</b>: </td> <td align="left"> <input type="text" name="emailadresse" value="<?php echo $alledaten['emailadresse'];?>"></td> </tr> - <tr bgcolor="#fafafa"> + <tr> + <td align="right"><b>IP/Herkunft</b>: </td> + <td align="left"> <?php echo $alledaten['login_ip'].' / '. geoIP($ausgabe['login_ip']);?></td> + <tr> <td align="right"><b>eMail-Empfang</b>: </td> <td align="left"> <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"> <b>Bettelsperre</b>:</td> <td align="left"> <select name="bettel_sperre" size="1"> @@ -44,7 +47,7 @@ </select> </td> </tr> - <tr bgcolor="#fafafa"> + <tr> <td align="right"> <b>Banner Sperre</b>:</td> <td align="left"> <select name="forced_sperre" size="1"> @@ -53,7 +56,7 @@ </select> </td> </tr> - <tr bgcolor="#ededed"> + <tr> <td align="right"> <b>Chat Sperre</b>:</td> <td align="left"> <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="» Updaten"><br /> </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ö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öscht.'); + }else{ + $meldung = array("error" => 0, "meldung" => 'Backup konnte nicht gelö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ätige die AGB.'); } if (mysqli_num_rows($mail_check)){ $meldung = array("error" => 1, "meldung" => 'Die E-Mail Adresse ist bereits vorhanden.');} -- GitLab