[GUIDE] Wie programmiere ich ein gutes CMS (für Habbo)?

  • Ich rede hier von einem Guide, ich programmiere nichts vor.Aber wenn du es unbedingt willst:


    Ich habe es nicht getestet!!!

    Dachte dass du was drauf hast.

    Verfolge diesen Thread nicht mehr.


    Du nennst Aspekte der Sicherheit und verbindest diese Techniken die in einem unteren Niveau mit Sachen die über das Niveau sind, und behauptest dann dass du die Grundbausteine einer CMS nicht den Menschen beibringen willst.

    Sorry.

  • Dachte dass du was drauf hast.
    Verfolge diesen Thread nicht mehr.


    Du nennst Aspekte der Sicherheit und verbindest diese Techniken die in einem unteren Niveau mit Sachen die über das Niveau sind, und behauptest dann dass du die Grundbausteine einer CMS nicht den Menschen beibringen willst.

    Sorry.

    Nicht in diesem Thread, vielleicht in einem anderen? Hier möchte ich die theoretischen Sachen erläutern, mal schauen, eventuell erstelle ich ja ein Tutorial wo wir all das, was wir hier gelernt haben, in der Praxis anwenden.

  • 3.2 Flat - Ja oder nein? (persönliche Meinung)
    ^up (Feedback erwünscht)

    Kleine Frage:
    Soll ich neben diesem Guide noch ein Guide zur praktischen Erstellung eines Habbo-Systemes schreiben? In diesem würde ich mit euch ein CMS programmieren (mit Erklärungen (würde versuchen es möglichst ausführlich zu halten)). Kommentiert einfach mal :P

  • 3.2 Flat - Ja oder nein? (persönliche Meinung)
    ^up (Feedback erwünscht)

    Kleine Frage:
    Soll ich neben diesem Guide noch ein Guide zur praktischen Erstellung eines Habbo-Systemes schreiben? In diesem würde ich mit euch ein CMS programmieren (mit Erklärungen (würde versuchen es möglichst ausführlich zu halten)). Kommentiert einfach mal :P

    Wäre extrem interessant. In PHP bin ich eh keine Intelligenzbestie.

    Nix da.

  • Saubere Erklärung! 7/10, da man PHP heute nicht mehr bevorzugen sollte;

    Die Zukunft liegt in den Händen von Python & Erlang.

    Ich persönlich benutze CLI, C/C++ Language Interface for Web für den BigStorageHTTP Webserver (BSHW) von mir entwickelt für ein kommendes Projekt - Da PHP nicht unsere Anforderungen erfüllt.


    Wer CLI kennenlernen möchte, hier Links:

  • Saubere Erklärung! 7/10, da man PHP heute nicht mehr bevorzugen sollte;

    Die Zukunft liegt in den Händen von Python & Erlang.

    Ich persönlich benutze CLI, C/C++ Language Interface for Web für den BigStorageHTTP Webserver (BSHW) von mir entwickelt für ein kommendes Projekt - Da PHP nicht unsere Anforderungen erfüllt.


    Wer CLI kennenlernen möchte, hier Links:

    Du hast recht, aber PHP ist sehr gut um reinzukommen!
    Zumal Python viel beliebter ist als man denkt:

  • 1.2. SQLinjection
    SQLinjections erragen in der Szene großes Ansehen und werden nahezu tagtäglich an Retros ausprobiert. Die Erklärung ist ganz simpel:
    Bevor ein Wert in eine Datenbank-Tabelle eingetragen oder geupdatet werden kann, sollte er davor "escaped" werden. Ist dies jedoch nicht der Fall, so kann der Angreifer Befehle über diesen Wert ausführen lassen.


    Wer OOP beherrscht, sollte ohnehin PDO anstelle von mysqli verwenden. Dank prepared statements ist auch die Gefahr für SQLinjection von Grund auf viel tiefer. Natürlich setzt es das korrekte Anwenden von PDO voraus. PDO funktioniert nebenbei bemerkt nur Objektorientiert, ein weiterer Grund das ganze also zu lernen.

  • Ich rede hier von einem Guide, ich programmiere nichts vor.Aber wenn du es unbedingt willst:



    Ich habe es nicht getestet!!!


    Wenn man schon OOP arbeiten will, dann richtig. Es ist nicht wirklich der Sinn von objekt orientierte Programmierung einfach eine Klasse zu erstellen wo alle Methoden reinkommen. Objekte sind beim Model meistens keine Methoden Ansammlungen, vorallem bei denen eine Art Einheit, hier, ein Benutzer, dargestellt wird!

    Viel sinnvoller wäre es eine User Klasse zu erstellen, welche einen User darstellt und nicht Methoden für jeden User. Dieser User hat dann Methoden, wie z.B. addCredits($amt); um Taler an diesen Benutzer zu geben. Kombiniert man dies mit einer Factory, so hat man ein sinnvolles Model, welches in etwa so funktionieren würde.

    PHP
    $userFactory = $model->getUserFactory();
    $user = $userFactory->getByUsername("Johnix");
    echo $user->getId().'<br>'; // gibt ID aus 
    $user->addCredits(500); // gibt dem Benutzer +500 Taler
    echo $user->getCredits(); // gibt Taleranzahl aus

    Auch sollte sichergestellt werden, dass es keine Probleme gibt wenn 2 "Programme", einmal die Webseite und einmal der Emulator, sich nicht zwischenfunken, und ggf. Transactions benutzen um das Risiko von falscher Datenverarbeitung zu vermeiden.

  • Wenn man schon OOP arbeiten will, dann richtig. Es ist nicht wirklich der Sinn von objekt orientierte Programmierung einfach eine Klasse zu erstellen wo alle Methoden reinkommen. Objekte sind beim Model meistens keine Methoden Ansammlungen, vorallem bei denen eine Art Einheit, hier, ein Benutzer, dargestellt wird!

    Viel sinnvoller wäre es eine User Klasse zu erstellen, welche einen User darstellt und nicht Methoden für jeden User. Dieser User hat dann Methoden, wie z.B. addCredits($amt); um Taler an diesen Benutzer zu geben. Kombiniert man dies mit einer Factory, so hat man ein sinnvolles Model, welches in etwa so funktionieren würde.

    PHP
    $userFactory = $model->getUserFactory();
    $user = $userFactory->getByUsername("Johnix");
    echo $user->getId().'<br>'; // gibt ID aus 
    $user->addCredits(500); // gibt dem Benutzer +500 Taler
    echo $user->getCredits(); // gibt Taleranzahl aus

    Auch sollte sichergestellt werden, dass es keine Probleme gibt wenn 2 "Programme", einmal die Webseite und einmal der Emulator, sich nicht zwischenfunken, und ggf. Transactions benutzen um das Risiko von falscher Datenverarbeitung zu vermeiden.

    Dem bin ich mir im klaren. Ich hatte aber keine Lust jetzt mehrere Klassen anlegen zu müssen.
    & Factories rafft hier doch dann sowieso keiner mehr. (Zudem agiert getByRow wie ein Konstruktor)

    Einmal editiert, zuletzt von ragout (8. Januar 2016 um 13:57)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!