Mailinglisten-Archive |
> -----Original Message----- > From: php-admin_(at)_phpcenter.de [mailto:php-admin_(at)_phpcenter.de]On Behalf Of > Alexander Hessenkamp > Sent: Tuesday, August 14, 2001 3:17 PM > To: php_(at)_phpcenter.de > Subject: Re[2]: [php] security Download -->test3 > > > Guten Tag , Hi Alexander, > JS> 2. eine tabelle erstellen, wo pfade zu downloaddateien und FileID > JS> (e.g als PrimaryKey) abgespeichert werden. > > in mysql..? egal wo, koennte auch eine txt datei sein, nur den suchvorgang muesstest Du dann selbst schreiben und der dauert dann demensprechend > hab dann in der secure "$cfgDbdwpfad"und "$cfgDbdwdat" als tabnamen ich kenne die secure nicht > deklariert die werden dann beim login des users > > if ( isset($userArray["$cfgDbUserLevelfield"]) && > !empty($cfgDbUserLevelfield) ) { > $user = stripslashes($userArray["$cfgDbuserfield"]); > $level_1 = > stripslashes($userArray["$cfgDblevel_1_field"]); > $FilePath = stripslashes($userArray["$cfgDbdwpfad"]); > $Filename = stripslashes($userArray["$cfgDbdwdat"]); > $FilePathAndName = > getFilePath($HTTP_GET_VARS['$FilePath','$Filename']; ne-ne, so geht's nicht ;-) $HTTP_GET_VARS ist ein ganz normalles array, das Du so nicht ansprechen kannst. gehen wir davon aus, dass der user sich erfolgreich eingeloggt hat. Dann (ganz grob): file_download.php: <br><br><H3>Download von Dateien</H3> <? if (! $UserOk ) die ("Permission denied"); // der User ist OK. if (isset($HTTP_GET_VARS['fid'])) { // der User fordert eine Datei an // auslesen von notwendigen sachen aus db // SELECT cfgDbdwpfad, cfgDbdwdat FROM MyTable // WHERE MeineFileID=$HTTP_GET_VARS['fid']; // ergebnisse in $FilePath und $FileName fetchen // falls ergebnisse vorhanden sind liest Du praktisch mit dem "readfile" // die Datei ein, und gibst die aus. dadurch dass ein enstprechender // header davor ausgegeben wird, ist's ein zeichen fuer'n browser, dass // er die datei gefaelligst zu downloaden hat. if (! checkAll($FilePath.$FileName) ) die "Something wrong"; // download anstossen header("Content-Type: application/octet-stream"); header("Content-Disposition: inline; filename=\"".$FileName."\""); readfile($FilePath.$FileName); } else { // Downloads anbieten // da muss man noch den GET-Parameter fuer User ID einfuehgen: print '<a href="'.$PHP_SELF.'?fid=1234">Link zur Datei a.txt</a><br> print '<a href="'.$PHP_SELF.'?fid=5678">Link zur Datei b.txt</a><br> print '<a href="'.$PHP_SELF.'?fid=9101">Link zur Datei c.txt</a><br> } ?> Gruss, Juri
php::bar PHP Wiki - Listenarchive