Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Direktzugriff auf Dateien im htaccess-Bereich [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Direktzugriff auf Dateien im htaccess-Bereich


 
php_anfaenger
29-12-2003, 15:20 
 
Hallo ihr, hoffe schreibe das hier ins richtige Forum :)

Also mein Problem:

Ich habe einen Ordner den ich mit htaccess geschützt habe. Das klappt auch soweit, dass niemand ohne Name/PW den Inhalt sehen kann. ABER: Wenn jemand einmal in diesem Ordner drinne war und einen Dateinamen kennt, kann man mit der direkten Adresse einfach auf diese Datei zugreifen ohne Benutzername/PW eingeben zu müssen, also zb www.denkdirwasaus.de/geschuetzt/test.jpg. Das soll aber nicht möglich sein! Also egal wie, es soll immer erst dann eine Abfrage kommen.

Wie mach ich das ?


Danke für eure Hilfe ;P

Thomas

 
wahsaga
29-12-2003, 15:27 
 
das geht rein mit .htaccess nicht - da müsstest du die dateien schon in einem anderen verzeichnis ablegen, und per .htaccess geschützt dürfte sich dann nur ein php-script aufrufen lassen, welches die dsteiinhalte übers dateisystem einliest und ausgibt ...

 
php_anfaenger
29-12-2003, 16:56 
 
Danke :P so gehts ;P

 
php_anfaenger
29-12-2003, 22:17 
 
OH !! Geht doch noch nicht ganz soooooo wie ich das brauch :))) alsoooo, es werden jetzt zwar die Dateien aus dem versteckten Verzeichnis angezeigt, aber man kann sie nicht öffnen weil sie ja nicht auf der Ebene des php skripts sind.

so sieht mein skript aus:

<?php
$path = $_SERVER["PHP_SELF"];
$file = dirname($path);
echo "<b>$file</b>";
echo "<br><br>";
$dir = opendir("./hiddendir");
while (false !== ($file = readdir($dir))) {
if ($file != "index.php" && $file != ".") echo "<li><a href=\"$file\">" . $file . "</a></li><br>\n";
}
closedir($dir);
?>

kann man das vlt. umbauen das es auch funktioniert die angezeigten datein zu öffnen ?

Gruss,

Thomas

 
TobiaZ
29-12-2003, 22:20 
 
das öffnen hat mit dem anzeigen ja nichts am hut. da musst du ein neues script für machen, oder zumindest einen snippet. readfile() sowie die suche helfen weiter.

 
php_anfaenger
29-12-2003, 23:16 
 
Hmm....habe jetzt mal nach readfile() geschaut, damit kann man sich doch nur die größe anzeigen lassen, oder ?

Und gleich noch eine Frage :P

Wenn das mal funktioniert dann, wird dann der komplette Pfad wieder angezeigt ? Also mit dem Namen des versteckten Ordners ?

 
TobiaZ
29-12-2003, 23:19 
 
Hmm....habe jetzt mal nach readfile() geschaut, damit kann man sich doch nur die größe anzeigen lassen, oder ? Dann solltest du dabei vielleicht mal eine Augen auf machen!Liest den Inhalt einer Datei und schreibt ihn in den Ausgabepuffer.

Wenn das mal funktioniert dann, wird dann der komplette Pfad wieder angezeigt ? Also mit dem Namen des versteckten Ordners ? erledigt sich dann wohl.

 
php_anfaenger
30-12-2003, 13:28 
 
bekomms nicht hin ;((((( hab auch schon gegoogelt wie blöd, aber finde kein gescheites beispiel wie man die readfile() funktion dann benutzen muss :/

 
Seccho
30-12-2003, 13:38 
 
DEMO.php

<?
readfile("test.txt");
?>

TEST.txt

Dies ist ein Test...

Und nun schau dir das ergebnis an...

 
php_anfaenger
30-12-2003, 17:39 
 
hm, vielleicht steh ich irgendwie aufm schlauch ;P aber wie hilft mir das denn um die angezeigten dateien aus dem versteckten ordner als link darzustellen, damit man da drauf klickt und die datei dann geöffnet werden kann ? ich möchte ja nicht den text inhalt der datei, da sind zum beispiel auch bilder drinne.

Also, ich hoffe man versteh jetzt irgendwie was ich meine ;)

 
wahsaga
30-12-2003, 18:00 
 
Original geschrieben von php_anfaenger
hm, vielleicht steh ich irgendwie aufm schlauch ;P aber wie hilft mir das denn um die angezeigten dateien aus dem versteckten ordner als link darzustellen, damit man da drauf klickt und die datei dann geöffnet werden kann ? ich möchte ja nicht den text inhalt der datei, da sind zum beispiel auch bilder drinne.
du musst dein script natürlich auch den zu den daten passenden MIME-TYPE als HTTP-header ausgeben lassen.

 
Seccho
30-12-2003, 18:03 
 
Wolltest doch was über readfile lernen :)

Du fragst ab welcher datentyp die datei hat und gibst den entsprechenden header mit...

Mal ein beispiel für pdf...



<?php
$path = "C:/ausserhalbwww/";
$datei = $_GET["file"];

header ("Content-Type: application/pdf");
header ("Content-Type: application/octetstream");
header ("Content-Disposition: attachment; filename=\"$datei\"");
$filename = $path."/".$datei;
$fp = fopen($filename, "rb");
if ($fp) {
$buffer = fread ($fp, filesize ($filename));
echo $buffer;
fclose($fp);
}
?>
Sollt bissl weiterhelfen... :rolleyes:

 
TobiaZ
31-12-2003, 00:15 
 
Manual hat glaube ich auch beispiele (evtl auch unter header() nachsehen.)


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:43 Uhr.