<!DOCTYPE html>
<html>
<head><title>Opolytics - Setup</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="Shortcut Icon" href="opolytics.png"><link rel="Stylesheet" href="style.php" type="text/css">
<style>
form {
line-height: 2;
}
td {
	text-align:left;
	padding-left:30px;
}
</style>
</head>
<body>
<?php
ini_set('display_errors',1);
require('functions.php');
include("menu.php");
$config = loadConfig();
unlock_all_files();
$action = $_GET['action'];

// Checking updates
include("updater.php");

if($config[4]=="not_executed" AND $action=="") echo '<h1>Willkommen beim Setup von Opolytics</h1><p>Bevor Sie mit Opolytics starten und Daten erfassen können, müssen Sie zuerst einige grundlegende Informationen erfassen.<br><br><a href="?action=check">Mit dem Setup beginnen</a></p><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>';
else if($action=='check') {
	echo '<h1>Systemüberprüfung</h1><table><thead><tr><td>Checkpoint</td><td>Rückgabe</td><td></td></tr></thead><tbody><tr><td>Server-Software</td><td>'.$_SERVER['SERVER_SOFTWARE'].'</td>'.(preg_match('/[Aa]pache/',$_SERVER['SERVER_SOFTWARE']) ? '<td style="color:green">✔</td>' : '<td style="color:orange">-</td>').'</tr>';
	if(!preg_match('/[Aa]pache/',$_SERVER['SERVER_SOFTWARE'])) echo '</tbody></table><h2>Kein Apache Webserver verwendet</h2><p>Sie verwenden offenbar keinen Apache Webserver. Wir empfehlen diesen für die Nutzung für Opolytics. Opolytics wird trotzdem versuchen, mit diesem Webserver zu funktionieren. Um die Dateien vor Einsicht durch unbefugte zu schützen, wird Opolytics die Zugriffsrechte auf die Dateien, in denen Opolytics Daten speichert, ändern müssen. Möglicherweise können Sie diese dadurch selbst nicht mehr einsehen. Abhängig davon, welche Server-Software Sie verwenden, kann es bei wenigen unüblichen Softwares sein, dass die Daten, die eigentlich geschützt werden sollten, trotzdem einsehbar sind.</p><table><thead><tr><td>Checkpoint</td><td>Rückgabe</td></tr></thead><tbody>';
	echo '<tr><td>PHP-Version</td><td>'.phpversion().'</td>'.(phpversion() > 5.5 ? '<td style="color:green">✔</td>'  : '<td style="color:red">✘</td>').'</tr></tbody></table>';
	if(phpversion() > 5.5) echo '<p><a href="?action=register">Weiter</a></p>';
}
if($action=="register" AND $config[4]=="not_executed") {
	if(!preg_match('/[Aa]pache/',$_SERVER['SERVER_SOFTWARE'])) {
		chmod('campaigns.txt',0000);
		chmod('discussions.xml',0000);
		chmod('ecommerce.txt',0000);
		chmod('liveupdate.txt',0000);
		chmod('locked_ips.txt',0000);
		chmod('log.txt',0000);
		chmod('notes.xml',0000);
		chmod('users.txt',0000);
	}
echo '<h1>Login konfigurieren</h1><p>Alle Ihre Daten werden auf Ihrem eigenen Server gespeichert. Sie werden nie an unseren Server übermittelt um Ihre Privatspäre zu schützen.</p><form action="?action=register_check" method="post"><b>Ihr Benutzername: <input type="text" name="username"><br>Ihr Passwort: <input type="text" name="password"><br>Ihre E-Mail: <input type="text" name="email"></b><br><input type="checkbox" name="E-Mailer?" checked> Ich möchte benachrichtigt werden wenn relevante Änderungen in den Einstellungen vogenommen wurden. <b>Empfohlen</b><br><input type="submit" value="Konfiguration speichern"><br></form><h3>Weitere Accounts erstellen</h3><p>Sofern Sie zusammen mit anderen Personen Ihr Webprojekt betreuen, ist es Ihnen später in den Einstellungen noch möglich, weitere Nutzer zu erstellen. Die weiteren Nutzern können alle Analysedaten einsehen, Notizen ablegen usw. Jegliche von Ihnen abgelegte Notiz kann jedoch von Ihnen eingesehen werden, selbst wenn diese als privat eingestuft ist, Sie sind schliesslich der Administrator.</p><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>';
}
if($action=="register_check" AND $config[4]=="not_executed") {
$config[1] = $_POST['username'];
$config[2] = password_hash($_POST['password'],PASSWORD_DEFAULT);
$config[3] = $_POST['email'];
$config[5] = $_POST['E-Mailer?'];
$config = implode(', ', $config);
file_put_contents("config.txt", $config);
echo '<h1>Login konfiguration gespeichert</h1><p>Die Konfiguration Ihres Logins wurde erfolgreich gespeichert.</p><p><a href="?action=personalize">Fortfahren</a><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>';
}
if($action=="personalize" AND $config[4]=="not_executed") {
echo '<h1>Personalisieren</h1><p>Im nächsten Schritt erhalten Sie nun die Möglichkeit, Ihr Opolytics nach Ihren Wünschen zu personaliseren.</p><h2>Hintergrund</h2><p>Weil der Hintergrund etwas sehr persöliches ist, lassen wir Ihnen die Wahl.</p><p>Bitte wählen Sie eine Farbe aus:</p>
<form action="?action=save_personalization" method="post"enctype="multipart/form-data">
<input type="radio" id="5" name="choice" value="white" checked>
    <label for="5"><b>Empfohlen und Standard: </b>Weiss</label><br>

<input type="radio" id="5a" name="choice" value="blue" checked>
    <label for="5a"><font color="blue">Blau</font></label><br>

    <input type="radio" id="5b" name="choice" value="grey">
    <label for="5b"><font color="grey">Grau</font></label><br>

    <input type="radio" id="5c" name="choice" value="yellow">
    <label for="5c"><font color="yellow">Gelb</font></label><br>

    <input type="radio" id="5d" name="choice" value="green">
    <label for="5d"><font color="green">Grün</font></label><br>

    <input type="radio" id="5e" name="choice" value="orange">
    <label for="5e"><font color="orange">Orange</font></label><br>

    <input type="radio" id="5f" name="choice" value="image">
    <label for="5f"><b>Für persönliches: </b>Eigenes Bild <br><input type="file" value="Bild wählen" name="datei"></label><br>

<input type="submit" value="Bestätigen"></form><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>
';
}
if($action=="save_personalization"  AND $config[4]=="not_executed") {
if($_POST['choice']!="image") {
$config[6] = "false";
$config[7] = $_POST['choice'];
$config = implode(', ', $config);
file_put_contents("config.txt", $config);
}
if($_POST['choice']=="image") {
$config[6] = "true";
$config[7] = "background.jpg";
$config = implode(', ', $config);
file_put_contents("config.txt", $config);
move_uploaded_file($_FILES['datei']['tmp_name'], "background.jpg");
}
echo '<h1>Gespeichert</h1><p>Ihre Einstellungen wurden erfolgreich gespeichert.</p><p><a href="?action=additional">Fortfahren</a></p><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>';
}
if($action=="additional") {
echo '<h2>Weiteres</h2><br><form action="?action=save_additional" method="post">
<input type="checkbox" name="transform"> Graphen und Diagramme beim darüberfahren vergrössern. (Empfohlen für Personen mit eingeschränkter Sehfähigkeit)<br>
<input type="checkbox" name="mail_confirmation" checked> <b>Empfohlen:</b> Beim Versuch das Passwort per Mail an Sie zurückzusetzen zuerst Bestätigung durch Angabe Ihrer E-Mail erfordern.<br>
<input type="submit" value="Bestätigen"></form><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>';
}
if($action=="save_additional") {
if($_POST['transform']=="on") {
$config[9] = "true";
}
if($_POST['transform']!="on") {
$config[9] = "false";
}
if($_POST['mail_confirmation']=="on") {
$config[10] = "false";
}
if($_POST['mail_confirmation']!="on") {
$config[10] = "true";
}
$config[19] = rand(1000,9999);
$config = implode(', ', $config);
file_put_contents("config.txt", $config);
file_put_contents('maindomain.txt',$_SERVER['SERVER_NAME']);
echo '<h1>Gespeichert</h1><p>Ihre Einstellungen wurden erfolgreich gespeichert.<br><br><a href="?action=getting_started">Fortfahren</a></p><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>';
}
if($action=="getting_started" AND $config[4]=="not_executed") {
if($config[5]=="on") {
$empfaenger = $config[3];
$betreff = "Opolytics eingerichtet";
$from = "From: Opolytics <opolytics@".$_SERVER['SERVER_NAME'].">";
$text = "Hallo. Soeben haben Sie Opolytics erfolgreich eingerichtet. Sie erhalten keinerlei Spam-Emails von Opolytics. Jedoch wird Sie Opolytics benachrichtigen, wenn bspw. Ihr Benutzername und/oder Ihr Passwort geändert wurde. Sie konnten diese Einstellung beim Setup selbst wählen, und es freut uns sehr, dass Sie sie gewählt haben und sich so für mehr Sicherheit der Daten entschieden haben. Ihr Benutzername lautet: ".$config[1].". Ihr Opolytics.";

mail($empfaenger, $betreff, $text, $from);
}
echo '<h1>Willkommen bei Opolytics!</h1><p>Ihre Einstellungen wurden gespeichert und Opolytics erfolgreich konfiguriert. Sie können die Einstellungen nun jederzeit ändern und Daten erfassen.</p><p>Wenn Sie nicht wünschen, dass Ihre eigenen Aufrufe erfasst werden, können Sie mit einem Klick auf den untenstehenden Link sich einen Cookie setzten lassen, der das verhindert.<br><a href="Javascript:;" OnClick="donttrackme()">Mich nicht tracken</a></p><p>Viel Spass mit Opolytics wünscht<br>Noel F. Aeby</p><p><a href="login.php">Gleich loslegen</a></p><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>
<script>
function donttrackme() {
document.cookie = "donttrackme=true";
}
</script>';
$config[4] = "executed";
$config = implode(', ', $config);
file_put_contents("config.txt", $config);
if(!preg_match('/[Aa]pache/',$_SERVER['SERVER_SOFTWARE'])) chmod('config.txt',0000);
}
else if($config[4]=="executed") {
echo '<h1>Sorry, Setup bereits ausgeführt</h1><p>Sorry, das Setup wurde bereits einmal ausgeführt. Bitte loggen Sie sich <a href="view.php">hier</a> ein.</p><hr><p><font color="grey">Opolytics © 2018 Noel F. Aeby</font></p>';
}
?>
</body>
</html>