Kenn mich net mit C++ oder C# aus
Beiträge von Synergy
-
-
Was ist das genau?
-
Ich glaube im qubbo cms.
#edit
Einen Badgecreator gibt es doch nicht, aber einen Raumgenerator.Raumgenerator ist schon im Client vorhanden. Heisst einfach Floor-Plan editor oder so
-
Gib es einen Fertigen?
-
Livedemo funktioniert wieder
-
UPDATE
- Livedemo wieder verfügbar
- Client gefixt
Das Livedemo ist jetzt wieder verfügbar. Und der Client ist auch gefixt. Ihr müsst euch aber neu Registrieren.
Freundliche Grüsse,
Synergy -
Bro , du müsstest mit Bonus aufpassen
Die User können sich immer wieder registrieren damit sie Belohnung kriegen...
Über das hab ich garnicht nachgedacht! Das muss ich noch ändern, aber wie soll das gehen, soll es z.B. maximal 3 Accounts mit der gleichen IP geben?
-
UPDATE
- Unban hinzugefügt (Thanks to @Hcmeister)
- Trusted Dealers (Thanks to @Hcmeister)
- Werbestystem (Thanks to @Hcmeister)
- Passwort vergessen begonnen (gibt Probleme)
Weiteres Update. Danke an @Hcmeister für die Ideen. Ich habe das Passwort vergessen angefangen. Layout ist schon alles gemacht, muss nur noch hinkriegen dass es dann eine E-Mail sendet. Ich werde morgen mal einen Mailserver einrichten und das testen. Leider hat der Server Probleme mit den Windows Updates, werde ihn nochmal neu installieren und morgen wird er sicherlich fertig sein.
Screens
Snippets
Spoiler anzeigen
PHP
Alles anzeigen<?php class Forgot { public $err = ''; public $success = false; private $user; private $config; private $connection; public function __construct($config, $connection, $url) { $this->user = new User($config, $connection); $this->config = $config; $this->connection = $connection; } public function Validate($user, $mail) { if(empty($user) || empty($mail)) { $this->err = 'Füll bitte alle Felder aus.'; } else { $query = $this->connection->prepare('SELECT id, username, mail FROM users WHERE mail = :mail AND username = :user LIMIT 1'); $query->execute([ ':mail' => strtolower($mail), ':user' => $user ]); if($query->rowCount()) { $r = $query->fetchObject(); $query = $this->connection->prepare('SELECT reset FROM sync_users_data WHERE id = :id LIMIT 1'); $query->execute([ ':id' => $r->id ]); $row = $query->fetchObject(); $this->SendMail($row->reset, $r->username, $r->mail); } else { $this->err = 'Keine User mit diesen Daten gefunden.'; } } } /* FUNKTIONIERT NOCH NICHT public function SendMail($reset, $username, $user_mail) { require_once 'POP3.php'; require_once 'SMTP.php'; require_once 'Mailer.php'; $mail = new PHPMailer; $mail->SMTPDebug = 3; $mail->isSMTP(); $mail->Host = $this->config['mail']['host']; $mail->SMTPAuth = $this->config['mail']['auth']; $mail->Username = $this->config['mail']['user']; $mail->Password = $this->config['mail']['pass']; $mail->SMTPSecure = $this->config['mail']['secure']; $mail->Port = $this->config['mail']['port']; $mail->SMTPOptions = [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ]]; $mail->From = $this->config['mail']['user']; $mail->FromName = $this->config['website']['name'] . ' Hotel'; $mail->addAddress($user_mail); $mail->isHTML(true); $mail->Subject = 'Passwort zurücksetzen'; $mail->Body = 'Klick <a href="' . $this->config['website']['url'] . '/forgot/reset?code=' . $reset . '">hier</a> um dein Passwort zurückzusetzen. Der Code lautet: ' . $reset; $mail->AltBody = 'a'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; } } */ public function Reset($code, $new, $repeat) { if(empty($code) || empty($new) || empty($repeat)) { $this->err = 'Füll bitte alle Felder aus.'; } elseif(strlen($new) < 8) { $this->err = 'Das Passwort muss mindestens 8 Zeichen lang sein.'; } elseif(strlen($new) > 32) { $this->err = 'Das Passwort darf maximal 32 Zeichen lang sein.'; } elseif(!preg_match('/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9]+$/', $new)) { $this->err = 'Das Passwort muss Gross- und Kleinbuchstaben enthalten, sowie eine Zahl.'; } elseif($repeat !== $new) { $this->err = 'Die Passwörter stimmen nicht überein.'; } else { $query = $this->connection->prepare('SELECT id, reset FROM sync_users_data WHERE reset = :code LIMIT 1'); $query->execute([':code' => $code]); if($query->rowCount()) { $r = $query->fetchObject(); if($code == $r->reset) { $query = $this->connection->prepare('UPDATE users SET password = :password WHERE id = :id LIMIT 1'); $query->execute([ ':password' => password_hash($new, PASSWORD_DEFAULT), ':id' => $r->id ]); $query = $this->connection->prepare('UPDATE sync_users_data SET reset = :reset WHERE id = :id LIMIT 1'); $query->execute([ ':reset' => $this->GenerateReset(), ':id' => $r->id ]); $this->success = true; } } else { $this->err = 'Ungültiger Code.'; } } } public function GenerateReset() { return sha1(md5(mt_rand() . '-' . mt_rand() . '-' . mt_rand() . '-' . mt_rand() . '-' . mt_rand())); } public function __destruct() { $this->err = null; $this->user = null; $this->config = null; $this->success = null; $this->connection = null; } } ?>
#ThreadUpdate
Freundliche Grüsse,
Synergy
EDIT
Vielleicht müsst ihr euch morgen neu Registrieren, würde euch doch nichts ausmachen oder -
Vielen Dank. Bin gerade am Werbesystem dran. Wenn ich das fertig habe werde ich es hochladen, dann funkt auch das Livedemo wieder
-
Danke werde die TODO-Liste gleich erweitern.
EDIT:
#ThreadUpdate -
Ich meine das alte php wo noch mit mysql_connect() und so war.
-
Jo sei mal nicht so streng xD. Bin noch ziemlich neu MVC habe vorhin immer nur normale mysql genutzt.
-
Hm, okay. Bin auch nur ein Mensch.
EDIT:
Livedemo wird sich noch bisschen verzögern da ich noch am Passwort vergessen dran bin, und danach direkt auf den Server packe. -
-
-
Was meinst du die Codes sind nicht so schön, besser gehts ned.
-
Jo hab den Server bekommen, bin gerade das zeugs am Installieren
-
Was hat die User-Class mit dem Wartungsmodus zutun?
-
Wieso nicht gleich im Controller checken? Sowas gehört doch nicht in eine Template-Datei, lol
Weil zu diesem Zeitpunkt die User Class noch nicht geladen ist. Und die braucht man wegen dem Angemeldet bleiben. -
UPDATE
- Maintenance hinzugefügt
- Messages hinzugefügt
Die Maintenance ist fertig. Sie ist sehr simple und schlicht gestaltet. Und dazu gibt es noch Message, wie z.B. wenn die VIP Mitgliedschaft abgelaufen ist und weitere werden noch folgen. Die Icons sind mit Font-Awsome gemacht. Es gibt Probleme mit dem Livedemo, habe mir aber gerade einen Server bestellt. Sobald ich Zugriff habe werde ich dort das Livedemo laufen lassen, also habt Geduld.
Screens
Snippets
PHP
Alles anzeigen<?php $this->CheckLogin(1, 'Maintenance'); if($this->config['website']['maintenance'] !== true) { header('Location: ' . $this->config['website']['url']); } ?> <!DOCTYPE html> <html lang="<?php echo strtolower($this->config['website']['language']); ?>"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title><?php echo $this->config['website']['name']; ?>: <?php echo $this->language['maintenance']['title']; ?></title> <link href="<?php echo $this->config['website']['url']; ?>/Public/Images/Favicon.ico"> <link href="<?php echo $this->config['website']['url']; ?>/Public/Styles/Main.css"> <link href="<?php echo $this->config['website']['url']; ?>/Public/Styles/Maintenance.css"> <script> var host = '<?php echo $this->config['website']['url']; ?>'; var smooth = '<?php if($this->config['plugins']['smooth'] == true) { echo 1; } else { echo 0; } ?>'; var adblock = '<?php if($this->config['plugins']['adblock'] == true) { echo 1; } else { echo 0; } ?>'; var preload = '<?php if($this->config['plugins']['preload'] == true) { echo 1; } else { echo 0; } ?>'; var snowstorm = '<?php if($this->config['plugins']['snowstorm'] == true) { echo 1; } else { echo 0; } ?>'; </script> <script src="<?php echo $this->config['website']['url']; ?>/Public/Javascript/Jquery.js"></script> <script src="<?php echo $this->config['website']['url']; ?>/Public/Javascript/Interface.js"></script> <meta name="description" content="Habbo Hotel - Freunde treffen, Spaß haben und berühmt werden."> <meta name="keywords" content="Habbo Hotel , virtuell, Welt, social network, gratis, community, avatar, chat, online, teen, Rollenspiel, anmelden, sozial, Gruppen, Foren, sicher, spielen, games, online, Freunde, teens, rares, rare Möbel, sammeln, erstellen, sammeln, treffen, Möbel, furni, Haustiere, Raum erstellen, teilen, Ausdruck, Badges, Treffpunkt, Musik, Stars, Starchats, HCs, mmo, mmorpg, massiv multiplayer"> <meta name="build" content="SYNC-BUILD<?php echo $this->config['app']['build']; ?> - <?php echo $this->config['app']['release']; ?> - <?php echo strtoupper($this->config['website']['language']); ?>"> <?php if($this->config['verification']['active'] == true) { ?><meta name="google-site-verification" content="<?php echo $this->config['verification']['hash']; ?>"><?php } ?> </head> <body> <div class="full full-danger"> <div class="container_12"> <i class="fa fa-wrench"></i> <div class="msg msg-big"><?php echo $this->language['maintenance']['msg-big']; ?></div> <div class="msg msg-small"><?php echo $this->language['maintenance']['msg-small']; ?></div> <a href="<?php echo $this->config['website']['url']; ?>"><button class="btn btn-trans"><?php echo $this->language['maintenance']['btn']; ?></button></a> </div> </div> <?php $this->getTemplate('Footer'); ?> </body> </html>
#ThreadUpdateFreundliche Grüsse,
Synergy