Große Seiten Verwalten

Godstyle

Erfahrenes Mitglied
Hallo,

nach längerer Zeit wollte ich mal versuchen ein größeres Projekt zu realisieren, doch stoße ich nun auf ein Paar fragen die ich zuvor nie beachtet habe, ich stelle sie mal hintereinander weg und schaue mal wo man mir einen Tipp geben kann.

1)

Die Seite wird eine Haupt Navi haben und jeder TOP-LINK hat eine unter navi und einen Bereich wo dann der genaue Link ausgegeben wird.

Nun habe ich einige Möglichkeiten. In der Regal habe ich es wie folgt gemacht:

<a href="index.php?seite=1">. ...

Das konnte ich denn über $_Get Problemlos aus lesen und der main bereich hat es über case oder if/elseif dann koordinieren.

Erster Gedanke ich setze an das seite=1 einfach noch &lnav=x dran und kann so beides auslesen und dementsprechen anzeigen lassen.

Diese Lösung finde ich aber ünschön und habe ich noch nirgends anders gesehen.

Dann kam der Gedanke für Jeden TOP_LINK eine eigene datei zu schreiben wo die unter Navi direkt drinnen steht und ich wieder nur den Hauptteil über _GET auslese.

Frage: Welche Optionen habe ich noch und was ist die sauberste?


2)

Folgende Domain als bsp: http://www.xxxxxxxxxx.de/User/godstyle/

Wie funktioniert das genau, ich kenne es nur das "/" einen unterordner einbezieht sehe ich es richtig das bei einer Useranlegung dann ein Ordner erstellt wird der den Usernamen beinhaltet und in diesem dann auch eine eigene index.php die nun bei einem User aufruf angespielt wird?

Problem was ich da sehe ist das man bei einer änderung alle User einzeln ändern müsste was ich als unsinnig ansehe, daher verstehe ich diesen Aufbau sicher vollkommen falsch.


3)

Zugriffs berechtigung

So bisher habe ich bei meinen Seiten lediglich Prüfen müssen ob ein User eingelogged ist, das habe ich in der Index gemacht, habe dort einfach nach session_start() die Prüfung durchgeführt ob der User eingelogged ist oder nicht.

Nun nehmen wir mal als bsp ein User Profil das von user x nicht aufgerufen werden darf. Also habe ich in dieser Datei einfach abgefragt ob User 1 die berechtigung hat. Ist bei einer sache relativ einfach da ich es mit zahlen von 1-4 geregelt habe.

Nun soll auf den Profil des Users auch die Möglichkeit sein Daten nur für Freunde anzeigen zu lassen, da stelle ich mir die frage, soll ich bei jedem klick auf dem Profil die Datenbank abfragen welche Berechtigungen der User hat oder sollte ich es kurzzeitig in einer Session speichern wo alle Berechtigungen für den User Gespeichert werden bis zum verlassen des Profils oder doch ständig die DB abfragen?


4)

Bildaufruf verhindern

Wie verhindere ich einen Bildaufruf bei nicht berechtigung?

Facebook schafft es das wenn ich auf link adresse kopieren gehe und die Grafikadresse weitergebe das mir das bild nicht einfach angezeigt wird sondern denoch auf eine Berechtigung geprüft wird. Ein link sieht wie folgt aus:

https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-prn1/994909_10201679346287662_1010189496_n.jpg

da diese datei auf .jpg endet ist es meiner ansicht nach ja wirklich die Bilddatei und diese kann meines wissens nach keine Prüfung durchführen.

Wie also wird das nun verhindert?

-----------------------------

So das waren nun mal 4 fragen und ich hoffe man hält mich nicht für ganz verblödet weil ich da keine wirkliche guten Lösungen gefunden habe bisher.
 
Hi

1) Jede bestimmte Seite gehört ja zu einem Unternavi?
...Jedenfalls nicht mehrere echte Dateien.

2) Theoretisch hast du recht, sowas schaut aus wie ein Ordner pro User.
Aber: Es gibt bei Apache ein nettes Plugin namens ModRewrite,
mit dem man in htaccess-Dateien (oder auch in den zentralen Servereinstellungen)
Regeln angeben kann, um zB. alle Aufrufe mit /user/xy zu user.php?name=xy umzuleiten
Es kommen also alle "index.php"´s der User aus einer einzigen Datei.

Auch hier im Forum ist sowas in Verwendung.
http://www.tutorials.de/php/395299-grosse-seiten-verwalten.html
http://www.tutorials.de/php/nummer-blablabla.html
http://www.tutorials.de/showthread.php?t=nummer
http://www.tutorials.de/showthread.php?t=395299

3) Würde die Sessionvariante nehmen, aber:
Mit einer Möglichkeit, dass wenn ein User seine Freundesliste ändert
die Sessiondaten der Freunde ungültig werden
bzw. beim nächsten Verwenden doch neu aus der DB geladen werden.

4) Auch in htaccess/Servereinstellungen gibt es die Möglichkeit,
pro Dateityp festzulegen,w as mit solchen Dateien beim Aufruf gemacht werden soll.
Standard für jpg... ist irgendwas Eingebautes von Apache,
dass eben die Datei zum Browser gesendet wird
(unter Berücksichtigung von Cachezeug zur Serverentlastung usw.)
Das kann man aber problemlos auf PHP umstellen.
Dann entscheidet eben ein Programm, was es sendet.

Für große Staticdatenmengen lohnt sich evt. Nginx etc., aber das ist eine andere Sache.
 
Wow danke erstmal einiges bei was ich mir ansehen werde ;)

zu 1:

Ich habe eine waagerechte navi die ist fest. Start / User / events ....

Nun klicke ich auf start dann habe ich links eine senkrechte navi: Mein Profil / einstellungen / etc

die linke Navi kann ich zB über ?seite=1 usw über _GET auslesen und anzeigen.

klicke ich in der linken Navi nun auf: Mein Profil müsste da der link sein: ?seite=1&unterseite=1 usw

ich meine damit das ich soetwas in der browserzeile nicht ansehnlich finde das man dort soviele & zeichen hat.

Daher der Gedanke ich mache für start / user / Event etc jeweils eigene seiten dann wäre der browser ja : Seite/start.php?unterseite=1 und somit ansehnlicher.

Dabei hätten jedoch die link ( unterseite ) eine ewiglange forlaufende Nummer und das habe ich so in der form nie gesehen.

vlt ist mein anliegen da etwas klarer wobei ich im kopf da die Lösung von frage 2 im sinn habe wodurch man das theoretisch nicht mehr sehen sollte.

zu 2:

danke dafür werde ich mir auf jedenfall jetzt mal zu gemüte führen.

zu3:

Also ich gehe auf das Profil von sheel speichere in einer session meine Berechtigungen und wenn ich das Profil verlasse wird diese session gelöscht. Wenn ich dann gesperrt oder als freund entfernt werde von sheel wird diese session nicht erstellt bzw anders weil ich die berechtigung dazu nicht habe oder andere besitze.
Dadurch wäre es doch dann richtig gelöst wenn ich es richtig sehe.

zu 4:

das werde ich mir auch nochmal ganz genau ansehen da ich mit htacce bisher recht viele probleme hatte und da noch eine menge lernen muss.
Dad
 
Zurück