Wann wird die CMS ungefähr fertig sein?
[DEVELOPMENT] CloudCMS - Habbo CMS für Retros
-
-
-
Staff-Page fertig.
Spoiler anzeigen
Relativ klein und schlicht gehalten, normale Staff-Page halt
Du könntest auf der rechten Seite noch Boxen einfügen, die den jeweiligen Arbeitsbereich erklären und vielleicht noch Ehrenämter einfügen.
Ich wäre auch noch dafür, dass du die einzelne Überschriften in Boxen setzt. Das sieht dann ordentlicher aus.
-
Spoiler anzeigen
Huch, ein Update! Ich hab mal ein wenig Pause gemacht und habe dann gestern den Badgeshop fertig gestellt. Danke an ECB2 und Primus für eure kleine Unterstützung! Es fehlen noch paar Kleinigkeiten, allerdings steht hier schonmal das Grundgerüst.
-
Ich bin gespannt auf das End Resultat.
Viel Spaß weiterhin beim arbeiten -
@Orikh Wie siehts mit der Performance aus?
-
Ganz kleines Miniupdate:
Spoiler anzeigen
Ich hab mal fix eben die Löschfunktion für Newskommentare fertig gestellt. Sobald man auf der Communitypage auf News geht, wird man zu den aktuellen News weitergeleitet.
-
Wie sieht es mit Sicherheitsstandards aus? CSRF, XSS SQLi etc?
-
-
Hey. CloudCMS ist fast fertig, allerdings möchte ich das Projekt kurzer Zeit pausieren. Aktuell wird mir OOP immer sympathischer, weswegen ich es in nächster Zeit lernen möchte. Sobald ich kleine Schritte mit OOP kann, werde ich CloudCMS nochmal in OOP umschreiben, natürlich dann sobald es mir möglich ist. Es wäre super, wenn einige von euch mir diesbezüglichs helfen könnten und mir einen angenehmen Start in OOP verschaffen. Aufgrund meiner weiteranlaufenden Inaktivität auf Retrotown, bin ich nur in Skype erreichbar ( liveplayer64 ). Ihr könnt mich gerne adden.
-
Hey. CloudCMS ist fast fertig, allerdings möchte ich das Projekt kurzer Zeit pausieren. Aktuell wird mir OOP immer sympathischer, weswegen ich es in nächster Zeit lernen möchte. Sobald ich kleine Schritte mit OOP kann, werde ich CloudCMS nochmal in OOP umschreiben, natürlich dann sobald es mir möglich ist. Es wäre super, wenn einige von euch mir diesbezüglichs helfen könnten und mir einen angenehmen Start in OOP verschaffen. Aufgrund meiner weiteranlaufenden Inaktivität auf Retrotown, bin ich nur in Skype erreichbar ( liveplayer64 ). Ihr könnt mich gerne adden.
Wollte ich immer tun, doch du kamst an mit "OOP braucht man nicht in einem retro CMS". Ich hätte dir alles beigebracht
-
Hab gestern mal einen Register in OOP geschrieben. Ebenso kleine Sachen wie mysqli connector und UserManager haben Einzug gefunden. Sind noch nicht im CloudCMS eingeführt, allerdings wird beim Release das ganze Einzug nehmen. Snippets ( Die ich jetzt viieel gerne zeige
Connection.php
PHP: connection.php
Alles anzeigen<?php class Connection extends MySQLi { private $connection = null; public function __construct($host, $user, $pass, $db, $port = 3306){ parent::__construct($host, $user, $pass, $db, $port); parent::query("SET NAMES 'utf-8'"); } } ?>
User.php
PHP: User.php
Alles anzeigen<?php class User { private $row; private $connection; public function __construct($row, Connection $connection) { $this->row = $row; $this->connection = $connection; } public function __get($var) { return $this->row->$var; } } ?>
UserManager.phpPHP: UserManager.php
Alles anzeigen<?php class UserManager { public $loadedUsers = array(); private $connection; public function __construct(Connection $connection) { $this->connection = $connection; } public function getUserByUsername($username) { if(isset($this->loadedUsers[$username])) { return $this->loadedUsers[$username]; } else { $result = $this->connection->query("SELECT * FROM users WHERE id = '".$this->connection->real_escape_string($username)."'") or die($this->connection->error); if($result->num_rows > 0) { $row = $result->fetch_object(); $this->loadedUsers[$row->username] = new User($row, $this->connection); return $this->loadedUsers[$row->username]; } else { echo 'Username nicht gefunden'; return false; } } } public function verifyLogin($username, $password){ if(!empty($username) AND !empty($password)) { $result = $this->connection->query("SELECT * FROM users WHERE username = '".$this->connection->real_escape_string($username)."' AND password = '".md5($this->connection->real_escape_string($password))."'"); if($result->num_rows > 0) { $userdata = $result->fetch_object(); $_SESSION['userID'] = $userdata->id; $_SESSION['mail'] = $userdata->mail; $_SESSION['taler'] = $userdata->credits; $_SESSION['pixel'] = $userdata->pixels; $_SESSION['stars'] = $userdata->stars; $_SESSION['look'] = $userdata->style; $_SESSION['motto'] = $userdata->motto; $_SESSION['rank'] = $userdata->rank; } else { return 'userdata'; } } else { return 'empty-fields'; } } } ?>
Danke an iExit der mir viel geholfen hat gestern Nacht. Natürlich auch an Syncenergy der mir ein paar Tipps gegeben hat. Mein großes Dank gilt aber an Marco ( Leider kein Habbo oder Retrotown User ) der mit mir die Nacht durchgemacht hat und währenddessen viel geholfen hat.
-
Sieht aus, als hättest du etwas vom LemonCMS & einer stink normalen ReCMS gebastelt Trozdem nice.
-
Sieht aus, als hättest du etwas vom LemonCMS & einer stink normalen ReCMS gebastelt Trozdem nice.
Du bist wahrscheinlich nicht dieses 1 Brain am haven, burr.
-
Ich hab heute Nach noch einmal mit Marco gearbeitet der mich echt büffeln lässt. Ein klein wenig hat sich was an der Connection.php geändert:
PHP: Connection.php
Alles anzeigen<?php class Connection { protected static $connection; public function __construct() { self::$connection = mysqli_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA); self::$connection->query("SET NAMES 'utf-8'"); } public static function getConnection() { if(!self::$connection) { new Connection(); } return self::$connection; } } ?>
Ist nun um einiges netter zur Performance.PHP: Index.php
Alles anzeigen?php if(isset($_POST['UserLogin'])){ $res = $userManager->verifyLogin($_POST['mail'], $_POST['password']); if($res == 'user-not-found') { echo 'fehlermeldung'; } elseif($res == 'empty-login-fields') { echo 'Bitte fülle alle Felder aus!'; } else { echo $_SESSION['username']; } } ?>
Bin zufrieden mit der bisherigen Leistung und finde OOP bisher klasse und überaus sinnvoll!
-
wenn wir von performance reden: kein {} & kein oop
-
Finde es ist nichts besonderes, dennoch wünsch ich euch viel Glück !
-
PHP: UserManager.php
Alles anzeigen<?php public function verifyLogin($username, $password){ if(!empty($username) AND !empty($password)) { $result = $this->connection->query("SELECT * FROM users WHERE username = '".$this->connection->real_escape_string($username)."' AND password = '".md5($this->connection->real_escape_string($password))."'"); if($result->num_rows > 0) { $userdata = $result->fetch_object(); $_SESSION['userID'] = $userdata->id; $_SESSION['mail'] = $userdata->mail; $_SESSION['taler'] = $userdata->credits; $_SESSION['pixel'] = $userdata->pixels; $_SESSION['stars'] = $userdata->stars; $_SESSION['look'] = $userdata->style; $_SESSION['motto'] = $userdata->motto; $_SESSION['rank'] = $userdata->rank; } else { return 'userdata'; } } else { return 'empty-fields'; } }
Ich würde dir empfehlen die Daten von Users in ein Array zu packen. Ich habe das so gemacht:PHP
Alles anzeigen<?php public function getUserData() { $query = $this->connection->prepare('SELECT * FROM users WHERE username = :username LIMIT 1'); $query->execute([':username' => $_SESSION['SYNC-LOGIN']]); if($query->rowCount()) { $r = $query->fetchObject(); foreach($r as $key => $value) { $this->data[$key] = $value; } } }
Du kannst es dann einfach durch $obj->data['activity_points'] oder $obj->data['credits'] aufrufen. Das was du halt brauchst
-
Was geht denn mit dir?
Der wird eh morgen gebannt
-
Index:
Spoiler anzeigen
Snippets kennt ihr ja, diesmal in OOP!
-
Gute OOP Arbeit!
Ich ihm geholfen -
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!