Orderstruktur erstellen

Hallo liebe HaBo Gemeinde,
ich habe mein erstes Forum fast fertig programmiert, mit Registrierung und Login und so.
Nun bin ich bei der Benutzerübersicht. Jeder Benutzer soll Bilder hochladen dürfen und diese sollen bei ihm in seinem Ordner gespeichert werden. Nun zur Ordnerstruktur, die Order sollten folgendermaßen nach der id angelegt werden:

users/1/0
........./1
........./2
...
......./2
......./3
......./4
......./5
......./6
......./7
......./8
......./9

ich hoffe ihr versteht mich, dass der User mit der id 1234 dann den Order users/1/2/3/4 zugewiesen bekommt. Und dann wenn ich in der Datenbank die id 1234 habe das dann zum Order users/1/2/3/4 verwiesen wird.
 
Folgt nun auch eine konkrete Frage?
 
Die PHP-Dokumentation wird dir dabei sicher helfen. Da gibt's auch eine schöne Übersicht aller Funktionen.
 
ja, ordner macht man mit mkdir()(glaub ich, kann ich aber nachlesen), nur wie macht man aus der id 1234 den ordnernamen 1/2/3/4 und umgekehrt aus dem ordnernamen 1/2/3/4 die id 1234?
 
Da werden dir die String-Funktionen eine Hilfe sein. Im übrigen ist meiner Meinung nach der ganze Aufbau des Verzeichnisbaumes bekloppt. Wieso legst du nicht einfach für jeden Benutzer ein Verzeichnis mit der user-id an? Die ist doch ohnehin eindeutig. Reicht doch wenn du die dann alle in einem Ordner speicherst.

Oder noch besser, wieso nicht über die Datenbank managen?
 
ich hab ja ne datenbank, nur in den ordnern sollen die dateien gespeichert werden(die bilder) weil dann gibt es im hauptordner nicht so viele unterordner

ich such mal nach den String-Funktionen
 
nur wie macht man aus der id 1234 den ordnernamen 1/2/3/4 und umgekehrt aus dem ordnernamen 1/2/3/4 die id 1234?

Korrigier mich, wenn ich falsch liege, Du willst die ID aufspliten und für jede stelle der ID einen Ordner anlegen? Oder willst Du einen Ordner anlegen der 1/2/3/4 heißt, was ja gar nicht geht.

Warum legst Du nicht einfach zu jeder ID einen Ordner an? Einfach mkdir("1234"), das wäre doch viel einfacher.

Wobei mir das alles ja als ziemlich sinnlos vorkommt, da Du ja über eine Datenbank verfügst.
 
ich will die id's aufsplitten, ich brauche für jeden einen ordner weil jeder user noch mehr dateien in sein verzeichnis hochladen kann.
die ordnerstruktur, damit nicht alle ordner in einem liegen sondern in jedem nur 10

user 1 bekommt ordner in der struktur 1
user 2 bekommt ordner in der struktur 2
.
.
.
user 10 bekommt ordner in der struktur 1/0
user 11 bekommt ordner in der struktur 1/1
.
.
.
user 116 bekommt ordner in der struktur 1/1/6
user 1543 bekommt ordner in der struktur 1/5/4/3
user 35769 bekommt ordner in der struktur 3/5/7/6/9
 
Hallo Rararah,

ich würde das wirklich nicht über eine solche Struktur erledigen. Du wirst dich mit der Zeit dort nicht mehr zurechtfinden, fürchte ich.

Folgendes:

+ root/
|-- 1/
|----1/
|------File1
|------File2
|----2/
|------1/
|------File1
|------File2
|----3/
|----File 1
|----File 2

schon bei dieser kleinen Größe hast du keine Übersicht. Meine Idee:

Speichere alle Dateien in einem Verzeichnis und speichere Dateinamen und Content-Type in einer Datenbank. Diese schreibt dann beim anfordern der Datei die entsprechenden Variablen:

Szenario
User 1 läd Datei 'readme.txt' hoch. Diese kriegt die fortlaufende ID 31337. Die Datei wird nun als Datei mit dem Namen "31337" in das Verzeichnis User-Uploads gelegt.

Fordert der nutzer die Datei nun an (über get.php?file=31337), sosetzt PHP (oder die Sprache deiner Wahl) den Content-Type und sendet die Datei.

So kannst du auch optimal Rechte-Strukturen abbilden, weil die Dateien nicht im www-root liegen müssen.
 
@Rararah:
Die Ordnerstruktur die du da anstrebst erscheint mir zwar absolut unsinnig und unnötig verschachtelt und unübersichtlich, aber wenn du meinst das das Sinn macht ...

Verzeichnis erstellen: http://de.php.net/mkdir

Einzelne Zeichen eines Strings kannst du einfach mit $id[3] ansprechen. (alternativ kannst du auch geschweifte Klammern nehmen) Das würde dir das 4. Zeichen liefern. Liest du mit strlen die Länge aus, und durchläufst die Buchstaben z.b. in einer For-Schleife.

Eine alternative zu deiner wirren Ordnerstruktur wäre beispielsweise /uploads/user12345 - /uploads/user11 .... Wenn du die Pics dann unbedingt über scheinbar existente Unterverzeichnisse ansprechen willst , könntest du das ja über mod_rewrite lösen.
 
Zurück
Oben