Projekt Adminpanel

  • Hey zusammen,


    ich saß die letzten Wochen an meinem neuen Projekt und freue mich es nun präsentieren zu können.


    Es handelt sich bei meinem Projekt um ein Panel wo man sich anmelden kann. Die User, welche auf diesen Panel Zugriff haben, können nur von den Admins festgelegt werden.


    Jeder User kommt nach dem Login auf die Startseite wo die Nachrichten und Termine angezeigt werden. Ebenso hat jeder User sein eigenes Profil und kann sein Username, Password und Profilbild ändern.

    Admins können darüberhinaus in ihrem Adminpanel User und Termine erstellen, editieren und löschen und Nachrichten nur erstellen und löschen.


    Ich bitte darum, dass niemand den Usernamen sowie das Passwort der folgenden 2 Testuser ändert und diese nicht löscht! Wenn ihr diese ändern oder löschen wollt dann bitte wieder zurückändern und hinzufügen, damit jeder Zugriff hat! Vielen Dank :)


    Seite: http://stef97.bplaced.net/


    Ihr könnt euch mit folgenden Daten anmelden:

    1. Admin

    Username: testadmin

    Passwort: 12345


    2. User

    Username: testuser

    Passwort: 1234


    Falls ihr euch mit den Daten nicht einloggen könnt schreibt mir bitte eine PN.

    Ich freue mich auf euer Feedback, eure Verbesserungsvorschläge und konstruktive Kritik.


    Grüße,

    Stef

  • Danke für deine Antwort. :)


    Zitat


    Ist zwar nicht vollständig responsive, aber darüber kann ich bei einem PHP-Projekt hinwegsehen.

    Kannst du mir mal bitte zeigen welche Stellen deiner Ansicht nach nicht vollständig responsive sind?


    Es ist nicht nur ein PHP-Projekt. Dieses Projekt beinhaltet alles. Ich habe ja Bootstrap genommen für das designen. Und als ich local alles getestet habe, war alles auch responsive. An manchen Stellen etwas unschön bei manchen Größen, aber dies kann ich dann wenn ich deine Antwort habe auch verbessern.

    Bin immer froh wenn Verbesserungsvorschläge kommen. Also nur her damit.


    Zitat


    Bekommen wir Einsicht in den Code und das Datenbankschema? Das wäre nämlich deutlich interessanter.

    Vorerst ist dies nicht gedacht. Mein Gedanke ist es, dies als Download, auf meiner Seite einzurichten. Aber ich bin mir noch etwas unschlüssig.

  • Guten Morgen,


    Okay. Ja dies ist bewusst gemacht. Denn wenn eine Person einen großen Bildschrim hat, passt es. Dafür habe ich den zwei divs die Klasse col-sm-6 gegeben. Darüberhinaus für extra kleine Geräte habe ich den beiden divs auch col-12 gegeben, damit beide div-blöcke bei kleiner werdendem Fenster untereinander dargestellt werden.


    Dies meinte ich in meinem vorigen Beitrag mit: "An manchen Stellen etwas unschön bei manchen Größen".

    Dies kann ich natürlich noch optimieren.


    Danke für deine Meinung :)

    Ich finde es schade, dass nur ein User seine Meinung zu meinem Projekt sagt.
    ich möchte dieses Interface weiter ausbauen und verbessern. Dafür brauche ich eure Meinung


    Kommt schon, ich beis schon nicht ;)

  • Optisch ganz nett und ansprechend gemacht. Sehr positiv, dass auf dieser ganze JS Schnick-Schnack, den man sonst so vorfindet, verzichtet wurde.

    Navigation etwas gewöhnungsbedürftig - vielleicht sollte statt nur 'Zurück' auch in Unterebenen eine 'Home' angeboten werden.

    Mobiles Hamburger-Menü für meinen Geschmack etwas zu groß geraten - aber über Geschmack lässt sich ja streiten.

    In den Unterpunkten im Adminbereich sind die Überschriften zu 'groß'. Dadurch scrollt die Seite horizontal, wenn die Displaybreite zu klein wird (zB Handy 320px) - eigentlich ein NoNo!

    Ansonsten... Daumen hoch!

  • Hey,


    Vielen Dank für deine Meinung :)


    Javascript braucht man hier, in der aktuellen Version des Interfaces, lediglich für das responsive Menü.


    Zitat

    vielleicht sollte statt nur 'Zurück' auch in Unterebenen eine 'Home' angeboten werden

    Ist eine gute Idee. Sonst muss man, je nachdem, erst auf 3 zurücks klicken um auf die Home-Page zu kommen.


    Zitat

    In den Unterpunkten im Adminbereich sind die Überschriften zu 'groß'. Dadurch scrollt die Seite horizontal, wenn die Displaybreite zu klein wird (zB Handy 320px) - eigentlich ein NoNo!

    Okay. Springt auf der Home-Seite und bei den anderen Seiten wo ich diese Darstellung (halb, halb) für größere Größen gewählt habe die rechte Seite nicht runter? Wenn ich es mit meinem PC teste dann springt der rechte Teil nach Unten damit alles vertikal ist und nicht horizontal.


    Muss ich mir aufjedenfall nochmal anschauen. Hast du mit dem Handy es getestet?


    Grüße,

    Stef

  • Hmmm.. hatte das bisher nur am Desktop mit der Simulation der Bildschirmgröße getestet... und jetzt gerade auch mit dem Handy!

    Desktop Simulation ist ok (wie ich geschrieben habe)... Handy geht gar nicht - da musst du noch was ändern - und ich vermute, es liegt daran, dass in deinem Code noch folgende Zeile fehlt!

    Code
    1. <meta name=viewport content="width=device-width, initial-scale=1">

    Und das bitte in den <head></head> Bereich ziemlich weit oben!

    Das sollte die Darstellung handytauglich machen, hab mal ein paar Screenshots beigefügt (Samsung Galaxy)

    Screenshot_2018-04-21-13-00-16.png

    Screenshot_2018-04-21-13-01-11.png

    Screenshot_2018-04-21-13-01-38.png

    Wobei die Bilder hier schon ca 2 mal so groß sind, wie das Handydisplay... es ist im Original kaum zu entziffern und das Menü ist nicht (bzw nur mit Glück) zu bedienen.

  • Hey zusammen,


    ich habe mich jetzt doch dazu entschlossen den Code für euch zugänglich zu machen.


    Ich hoffe auf konstruktives Feedback zu meinem Code und einer hohen Beteiligung.
    Freue mich aufjedenfall auf eure Antworten.


    Edit:


    Da die Beteiligung sehr niedrig ausgefallen ist habe ich den Link wieder entfernt.


    Grüße,

    Stef

  • So, liste einfach mal sortiert nach den Dateien alles auf, was mir bisher so aufgefallen ist:


    Allgemein:

    - in SQL Query Spalten- und Tabellennamen immer zwischen Backticks setzen (Beispiel: "SELECT `userId`, `username`, `passwort`, `rang` FROM `users` WHERE `username` = :username LIMIT 1")

    - nach einem Redirect mit header() solltest du die Funktion exit() ausführen

    - in deinen catch-Blöcken möchtest du nicht die allgemeine Exception, sondern die PDOException abfangen

    - niemals Fehlermeldungen von PHP bzw. Exceptions ausgeben, stattdessen einfach einen kurzen eigenen Text einfügen


    index.php:

    - ich würde eine Funktion hinzufügen, die den User von der index.php umleitet, wenn er bereits eingeloggt ist

    - Username wird vor Einführung in SQL Query nicht escaped, solltest du besser tun


    Eine Sicherheitslücke habe ich übrigens auch noch gefunden: Du verhinderst keine CSRF-Attacken.


    Beweis:

    Unbenannt.png



    So, habe mir jetzt noch nicht alles angeschaut, aber das sollte erstmal an Input reichen. Wenn du Fragen zu meinen Anmerkungen hast, raus damit.