Weil es bestimmt Leute gibt die es immer mal wieder machen. Oder es mal vergessen.
Beiträge von MarvinTLA
-
-
Moin,
Folgendes Problem.
Über &_GET hole ich mir aus der URL den Parameter raus. In meinem Falle sind das Verzeichnisnamen.
Da kann der Parameter mal so aussehen "index.php?folder=/Test/Test%201/" aber auch so "index.php?folder=/Test/Test%201/Test%202/Test%203"
Wenn ich diese dann in einer Variable Speichere, und ausgebe sieht es halt dementsprechend so aus "/Test/Test 1" oder halt "/Test/Test 1/Test 2/Test 3".
Ich versuche dann halt in diesen Verzeichnissen z.b in Verzeichnis "Test3" ein Ordner zu erstellen. Der Code dafür ist dann wie folgt:
Code
Alles anzeigen$datei = $_GET['directory']; if(isset($_POST['createFolder'])) { $ordnerName = $_POST['folderName']; if(!isset($fehler)) { $createFolder = ssh2_exec($connection, "sudo mkdir /media/AzubiFiles/" . $userData['nachname'] . $datei. $ordnerName ."/"); } }
Bei Leerzeichen im Link werden die Leerzeichen ja mit einem "%20" gekennzeichnet. Also z.b"index.php?folder=/Test/Test%201/Test%202/Test%203"
Da ich das ganze aber über Linux mache und er beim erstellen des Ordners den Pfad ($datei) angebe, komme ich mit (%20) nicht weiter, da dies bei Linux kein Leerzeichen ersetzt.
Ich müsste den Pfad mit ' angeben. Also für jeden Ordner wo ein Leerzeichen ist diese Zeichen davor und dahinter setzen, damit Linux das erkennt.
Im Grunde müsste das dann so aussehen /Test/'Test1'/'Test2'/'Test3' leider weiß ich nicht wie genau ich das mache und wollte Fragen ob da jemand einen Tipp hat?Lieben Gruß
Marvin
-
Hab da noch einmal eine Frage.
Ich aktualisiere ja immer meine Seite neu wenn eine Datei gelöscht wurde.
Leider ist es so, das wenn ich in einem Ordner mit Leertaste drin bin. Z.b "Hallo Welt". Entfernt er beim Löschen einer Datei die ganze Seite und wird erst nach einem richtigen aktualisieren wieder angezeigt.
Ich habe das ganze mit Ajax gemacht. Ich lade die Seite mit "index.php?folder=" + folder + "" neu.
Folder habe ich den Fall so gemacht "var folder = <?php echo json_encode($datei) ?>;
Bei Sachen wie "Hallo Welt" wird das Leerzeichen durch ein "%20" ersetzt.
Das passiert bei "folder" leider nicht.Hat jemand eine Idee wie man das beheben könnte?
LG Marvin
//edit
Hab es selber hinbekommen.
-
ja gut habe den Fehler gefunden. Danke.
Hast du eigentlich schon mal weiter gedacht?
Ordner willst du verlinken, um in den nächsten Ordner zu springen.
Dateien wolltest du anklickbar machen damit man die downloaden kann.
Wie hast du das vor?
Was für Dateien sollen das sein?
Du musst dir da schon überlegen wie es mit dem Download laufen soll.
Zb über eine download.php?downloadfile=name
oder,oder,oder
ja die Download Funktion habe ich in einem anderen System schon erstellt die auch läuft. Aber danke.
-
Also vom Prinzip hätte ich auch einfach nur wieder Abgefragt ob das ganze ein Verzeichnis ist mit (is_dir) und wenn nicht, dann halt ohne Link ausgeben.
Aber das habe ich ja bereits also das eigentlich nur Verzeichnisse einen Link erhalten.
-
Super vielen Dank dir.
-
Kennst du https://tinyfilemanager.github.io/
Bevor du dir an dem Script die Zähne ausbeißt (und danach sieht es aus) solltest du zu einem ausgereiften Script greifen.
Nein, aber ich werde es mir mal angucken. Vielen Dank.
Ich kann das schlecht erklären.
Du hast ja im Link den Folder stehen.
Den musst du wieder einbauen.
Ungefähr so
Code$datei = $_GET['folder']; .... echo "<a href='index.php?folder=$datei/$ausgabeDatei' style='color:red'>$ausgabeDatei</div>";
Dann sollte aber vorher getestet werden, ob es §_GET['folder'] überhaupt gibt.
Wenn nein muss musst die Variable $datei da weg , oder leer sein.
Es gibt einige Kleinigkeiten, die man immer wieder beachten muss.
Ich probiere das auch gerade selber aus und wundere mich das der Code immer länger wird.
Ist aber so wenn man alles beachten will.
Was hast du eigentlich vor , wenn du in deinen Ordner angekommen bist und auf die Dateien klickst?
Sollen die geöffnet werden?
Oder zum Bearbeiten geöffnet werden?
Genau so funktioniert es bei mir auch. Bin selber einfach nicht darauf gekommen.
Nur 1 Fehler habe ich noch. Wenn ich jetzt z.b in dem Verzeichnis "Test2" zwei Weitere Verzeichnisse "Backup" und "Test1" und eine ".txt" Datei.
Das Problem nun, dass die ".txt" auch als Link markiert wird und dann in das darüber stehende Verzeichnis führt (Hier: Backup)
Sieht dann so aus (Aktuell kein Design)html-seminar.de/woltlab/attachment/3183/
Aktuell sieht der Code halt so aus:
PHP
Alles anzeigen<?php $datei = $_GET['folder']; $verzeichnis = "../../../../../media/AzubiFiles/Azubi1/$datei/"; foreach(scandir($verzeichnis) as $ausgabeDatei) { if(is_dir($verzeichnis . '/' . $ausgabeDatei)) { if($ausgabeDatei != "." and $ausgabeDatei != "..") { echo "<a href='index.php?folder=$datei/$ausgabeDatei' style='color:red'>$ausgabeDatei</div>"; } } else { echo "<div style='color:black;margin-left:10px'>$ausgabeDatei</div>"; } } ?>
Gibt es dafür eventuell auch noch eine Lösung? -
Nein, die Dateien soll man nur Herunterladen können dann.
-
Ja, aber irgendwie muss ich das ja im Code auch irgendwie machen.
PHP
Alles anzeigen<?php $datei = $_GET['folder']; $verzeichnis = "../../../../../media/AzubiFiles/Azubi1/$datei/"; foreach(scandir($verzeichnis) as $ausgabeDatei) { if(is_dir($verzeichnis . '/' . $ausgabeDatei)) { if($ausgabeDatei != "." and $ausgabeDatei != "..") { echo "<a href='index.php?folder=$ausgabeDatei' style='color:red'>$ausgabeDatei</div>"; } } else { echo "<div style='color:black;margin-left:10px'>$ausgabeDatei</div>"; } } ?>
Ich weiß nicht wie ich den Code dementsprechend anpassen muss. -
Aber wie genau füge ich dann immer wieder einen neuen Ordner Hinzu? Im Link? So das der vorherige Ordner auch noch mit im Link drin steht?
-
Ja, es geht aber jetzt mehr oder weniger nicht um das Fertige Script, sondern darum das ich es gerne selber machen würde und dabei Unterstützung benötige.
-
Danke für deine Antwort. Was bedeutet in dem Fall die "1, 2"?
Und würde das dann auch so sein das Erst "Admin" ganz oben ist, dann "Sonstiges" und dann "Mitarbeiter"? -
Danke für deine Antwort.
Das ich eine Zurück Button brauche ist klar.
Aber ich möchte ja gerne noch in weitere Ordner rein können.
Aktuell geht er halt nur in 1 Ordner rein.
Wie gesagt. Ich habe mein Hauptverzeichnis "Azubi1" in diesem Verzeichnis ist ein Verzeichnis namens "Test1" drin.
Wenn ich in das Verzeichnis "Test1" gehe, ist da dann noch ein weiteres Verzeichnis drin. Z.b "Programme".
Das meine ich.
Nur sehe ich selber das mein Code dafür nicht passt. Weil der Pfad denkt das z.b das Verzeichnis "Programme" in "Azubi1" liegt und nicht in "Azubi1/Test1/".Das ist das Problem was ich versuche zu beheben, das ich immer weiter in die Ordner reinkomme.
-
Moin,
ich wollte mal Fragen ob man Einträge aus einer MySQL Tabelle nach einem bestimmten "Wort" Sortieren kann.
Ich habe eine Spalte "Rang" und es gibt dort 3 Ränge. "Admin", "Sonstiges" und "Mitarbeiter"
Ich möchte gerne das alle Einträge mit dem "Rang" Admin, ganz oben in der Tabelle sind. Danach die Einträge mit dem Rang "Sonstiges" und dann halt als letztes die "Mitarbeiter".
Ich kenne das halt mit "ORDER BY <spalte> ASC oder DESC" aber das ist dann halt Alphabetisch sortiert.
Hat jemand eine Idee?
LG
Marvin
-
Also ich habe es soweit mal getestet. Allerdings finde ich das sehr unübersichtlich.
Ich habe mal ein Verzeichnis angegeben wo sich ein Ordner befindet.Leider hat er diesen Ordner nicht geöffnet.
//edit
Habe es mal soweit es geht alleine versucht. Aktuell komme ich in Einen weiteren Ordner rein (Ist auch nicht relativ Schwer) nur Sobald ich in dem Ordner wo ich bin, in einen weiteren Ordner reingehe, geht das natürlich nicht weiter.
Das ist mein aktueller Code:
PHP
Alles anzeigen<?php $datei = $_GET['folder']; $verzeichnis = "../../../../../media/AzubiFiles/Azubi1/$datei/"; foreach(scandir($verzeichnis) as $ausgabeDatei) { if(is_dir($verzeichnis . '/' . $ausgabeDatei)) { if($ausgabeDatei != "." and $ausgabeDatei != "..") { echo "<a href='index.php?folder=$ausgabeDatei' style='color:red'>$ausgabeDatei</div>"; } } else { echo "<div style='color:black;margin-left:10px'>$ausgabeDatei</div>"; } } ?>
Hat jemand einen Tipp wie ich weiter in die Ordner reingehen kann?
Also z.b ist mein Hauptverzeichnis "Azubi1". Dort ist ein Ordner drin der sich bsp: Test1 nennt.(In den komme ich noch ohne Probleme rein. Der Pfad dafür wäre dann ja "Azubi1/Test1/"
Nun ist in dem Test1 Ordner ein weiterer Ordner drin. Z.b: Hallo Welt. Dort möchte ich auch gerne den Inhalt anzeigen (Auf der gleichen Seite)
Der Pfad dafür wäre dann ja "Azubi1/Test1/Hallo Welt/" Nur zeigt er den Inhalt von "Hallo Welt" nicht an, weil er laut meinem Code ja denkt das ich im Pfad "Azubi1/Hallo Welt/" bin. Was ja nicht nicht.
Und genau das versuche ich halt zu verwirklichen. -
Ja ich muss dann versuchen das ganze auf meiner eigenen Seite einzufügen. Danke dir erstmal.
Werde es später mal versuchen.
-
So ähnlich. Halt nur das ich keine Dateien erstelle sondern einfach vorhandene Dateien und Ordner anzeigen lassen kann. Die bei mir auf dem Server sind. Und wenn man auf einen Ordner klickt sollte sich die Tabelle aktualisieren und den Inhalt des Ordners anzeigen auf den ich geklickt habe.
und das halt für jeden Ordner der halt dann in dem Hauptverzeichnis ist. -
Also ich habe mal folgenden Code benutzt:
Code$verzeichnispfad = '../../../home/share/' . htmlspecialchars(ucfirst($userData["verzeichnis"])) . '/'; $verzeichnis = array_slice(scanDir($verzeichnispfad), 2); foreach ($verzeichnis as $element) { echo '<a href="' . $verzeichnispfad . $element . '">' . $element . '</a> <br>'; }
Nun ist halt das Problem das ich die Ordner auf einem Linux System habe (Home - Verzeichnis). Und wenn ich draufklicke er diesen Pfad natürlich mit Href nicht findet. Und 2. Das wenn ich einen Ordner öffnen, die Dateien in diesem Ordner nicht in der Tabelle angezeigt werden.
-
Wie genau könnte man das mit PHP umsetzen? Ich weiß natürlich wie ich Order öffnen kann.
Ich möchte nur gerne dafür immer nur eine Seite nutzen.
Also meine Seite heißt "verzeichnis.php"Dort gebe ich in einer Tabelle beispielsweise das Verzeichnis "Test" aus. In diesem Verzeichnis gibt es dann noch die Unterverzeichnisse wie "Test1" und "Test2". Wo dann eventuell auch wieder Unterverzeichnisse drin sein könnten..
Und alles soll in der Tabelle angezeigt werden die in der Datei "verzeichnis.php" ist. -
Ja stimmt schon, funktioniert jetzt.