php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-02-2005, 18:11
Kicky
 Junior Member
Links : Onlinestatus : Kicky ist offline
Registriert seit: Dec 2002
Beiträge: 95
Kicky ist zur Zeit noch ein unbeschriebenes Blatt
Standard PDF Dateien schützen

Hallo und guten Abend,
seit 3 TAgen nun kämpfe ich mit dem Problem, dass ich PDF Dateien in ein Verzeichnis legen möchte um diese nur angemeldeten Usern zugängig zu machen. Es soll nicht mit .htaccess laufen, sondern ich wollte dieses Verzeichnis oberhalb vom root verzeichnis ablegen. Nun bekomme ich es leider absolut nicht hin diese Datei dann über ein Script aufzurufen. Ich habe unendlich viele Versionen versucht hier aus dem Forum, sowie auch über google. Das Ziel soll eigentlich sein, dass ein User sich anmelden kann und erst nach Authorisierung die Datei downloaden, bzw. anschauen kann. Wenn irgend möglich würde ich es gerne ohne .htaccess machen. Hat jemand eine Hilfe für mich? Ich bin wirklich absolut Ratlos inzwischen. Vorab herzlichen Dank für eure Hilfe es grüßt

Kicky
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 22-02-2005, 18:26
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Salut

allenfalls funzt es wenn du die Berechtigungen für das Verzeichnis und die Dateien entsprechend anpasst.

Ansonsten aber sicherlich mittels htaccess

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 22-02-2005, 18:35
Kicky
 Junior Member
Links : Onlinestatus : Kicky ist offline
Registriert seit: Dec 2002
Beiträge: 95
Kicky ist zur Zeit noch ein unbeschriebenes Blatt
Standard

herzlichen Dank für deine schnelle Antwort. Ich hatte überlegt ob es nicht eine Möglichkeit ist die Dateien oberhalb des Root Verzeichnisses abzulegen, nur bekomme ich sie dann auch über das Script nicht mehr korrekt aufgerufen. Oder hast du dazu noch eine Idee? Danke für die Hilfe

Kicky
Mit Zitat antworten
  #4 (permalink)  
Alt 22-02-2005, 18:37
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.277
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich denke, wenn du in der 3. Zeile ... einfach mal das die() weglässt ... dann dürfte es gehen ... !
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #5 (permalink)  
Alt 22-02-2005, 18:41
Kicky
 Junior Member
Links : Onlinestatus : Kicky ist offline
Registriert seit: Dec 2002
Beiträge: 95
Kicky ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von goth
Ich denke, wenn du in der 3. Zeile ... einfach mal das die() weglässt ... dann dürfte es gehen ... !
Sorry, aber ich gestehe ich habe im Moment keinen Schimmer was du meinst??
Mit Zitat antworten
  #6 (permalink)  
Alt 22-02-2005, 18:42
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.277
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das ist schon klar ... !
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #7 (permalink)  
Alt 22-02-2005, 18:46
Kicky
 Junior Member
Links : Onlinestatus : Kicky ist offline
Registriert seit: Dec 2002
Beiträge: 95
Kicky ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von goth
Das ist schon klar ... !
Wirklich hilfreich ist das nicht. Hast du dich im Thread verirrt? Oder stehe ich auf der Leitung. Sollte der Beitrag ernst gemeint sein wäre ich für einen Ratschlag sehr dankbar. Was hat die() mit meiner Frage zu tun? Ich habe doch nicht mal Code gepostet, da es ja hier um eine Ansatzfrage geht.

Gruß Kicky
Mit Zitat antworten
  #8 (permalink)  
Alt 22-02-2005, 19:11
tommy_angelo
 Newbie
Links : Onlinestatus : tommy_angelo ist offline
Registriert seit: Sep 2004
Beiträge: 19
tommy_angelo ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: PDF Dateien schützen

Zitat:
Original geschrieben von Kicky
oberhalb vom root verzeichnis
Ist das root-Verzeichnis nicht das oberste???
Wie willst du da noch ne Ebene höher?

Einer der Erfahrenen hat hier die Signatur: i'll try being nicer if you'll try being smarter.

Könnte also sein, dass du mit sowas net so gut ankommst.^^
Mit Zitat antworten
  #9 (permalink)  
Alt 22-02-2005, 19:58
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Er meint wahrscheinlich den htdocs...
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #10 (permalink)  
Alt 22-02-2005, 20:02
cst
 Registrierter Benutzer
Links : Onlinestatus : cst ist offline
Registriert seit: Aug 2003
Beiträge: 141
cst ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: PDF Dateien schützen

Ätzend das gelaber! Mal sehen ob ich dir helfen kann....

1. Schiebe die PDFs in ein Verzeichnis, auf das ein normalsterblicher keinen Zugriff hat. Das kann auch irgendwo unterhalb von wwwroot sein (der Baum wächst nach unten, wie im Windows-Explorer - deswegen der blöde Kommentar) und per .htaccess geschützt sein.

2. Nun brauchst Du ein Skript, das sich die Datei von dort schnappt und an deine User sendet, aber eben nur wenn authentifiziert. Die Authentifizierung solltest du selber hinbekommen, dazu gibt´s ne Menge Infos.

Der Aufruf könnte so aussehen:
http://www.meinedomain.de/sendfile.p...e=geheimes.pdf

Was muss dieses Skript machen?

Ganz wichtig ist das senden des richtigen Mime-Tpys im Header. Ansonsten braucht das Skript die Datei nur einzulesen (fopen() etc.) und dann einfach nach senden der Header auszugeben (echo()).

Hier mal ein Beispiel:

PHP-Code:
<?php
/**
* sendfile.php
*
* Senden von Dateien aus geschützten Verzeichnissen
*
* Aufruf: sendfile.php?filename.ext
*/

// Authentifizierung prüfen - wie man´s will...
require("auth.inc.php");



// Pfad zum Verzeichnis mit unseren Dateien
$strFileDir("/temp/pdfs/");  // Slash am Ende nicht vergessen


$strRequestedFile basename($_GET["file"]); // SICHERHEIT: basename ist wichtig



// Wurde eine file übergeben?
if ($strRequestedFile) {
    
    
$strFilePath $strFileDir.$strRequestedFile;
    
    
// existiert die Datei?
    
if (file_exists($strFilePath)) {
        
        
$intFilesize filesize($strFilePath);

        
/**
        * Bestimmung des MIME-Dateityps
        * Das ist knifflig. Man kann entweder anhand der Endung oder über die
        * Funktion mime_content_type() den MIME-Type bestimmen. Machen wir´s mal
        * mit der Endung. Hier nur ein paar Beispiele.
        * Mehr Mime-Types unter: http://www.iana.org/assignments/media-types
        */
        
$strExtension lower(substr($strFilePath,strrpos($strFilePath,'.'),10));
        
        switch (
$strExtension) {
            case 
'.txt'$strMimeType 'text/plain';
                         break;
            case 
'.pdf'$strMimeType 'application/pdf';
                         break;
            case 
'.doc'$strMimeType 'application/msword';
                         break;
            default    : 
$strMimeType 'application/octet-stream';
                         break;
        }

                         

        
/**
        * Header senden, kein Caching
        */
        
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        
header("Last-Modified: " gmdate("D, d M Y H:i:s") ." GMT");
        
header("Cache-Control: no-cache");
        
header("Pragma: no-cache");
        
header("Cache-Control: post-check=0, pre-check=0");

        
header("Content-Type: $strMimeType");
        
header("Content-Length: $intFilesize");
        
header("Content-Disposition: attachment; filename=\"$strRequestedFile\"");
        
header("Content-Description: PHP Generated Data");

        
/**
        * Ausgabe der Datei in Blöcken von 4KB
        */
        
$fd fopen ($strFilePath"rb");  // "rb" statt nur "r" ist für Windows-Systeme wichtig!!!
        
while(!feof($fd)) {
               echo 
fread($fd,4096);
           }
        
fclose ($fd);
        
    } else {
        
// Datei wurde nicht gefunden
        
echo "FILE NOT FOUND";
    }
} else {

  
// Es wurde keine id übergeben
  
echo "NO FILE";
}


?>
Ich hoffe das hilft dir.
__________________
Ich denke, also bin ich.
Manche sind trotzdem!

Geändert von cst (22-02-2005 um 20:16 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 22-02-2005, 20:53
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.277
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Na ... ist der Anfall von Posing vorbei ... ?!

Hier ... noch was zum lesen ... damit auch Du nicht dumm stirbst ... !
http://www.faqs.org/rfcs/rfc2616.html
http://www.php.net/manual/en/function.pathinfo.php
http://www.php.net/manual/en/function.readfile.php
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #12 (permalink)  
Alt 22-02-2005, 21:54
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von goth
Ich denke, wenn du in der 3. Zeile ... einfach mal das die() weglässt ... dann dürfte es gehen ... !
er kann aber auch die Zeile 42 löschen, funz genauso gut
Mit Zitat antworten
  #13 (permalink)  
Alt 23-02-2005, 09:14
Kicky
 Junior Member
Links : Onlinestatus : Kicky ist offline
Registriert seit: Dec 2002
Beiträge: 95
Kicky ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo und Danke für die Hilfe,
ich habe versucht es umzusetzen, aber der IE stößt auf Probleme mit dem Header. Auf diese Schwierigkeiten war ich vorher schon gestoßen und bekomme sie nicht gelöst. Ich werde wohl weiter nach einer anderen Lösung suchen wollte mich aber für die tolle Hilfe von "CT" bedanken.

Herzliche Grüße
Kicky
Mit Zitat antworten
  #14 (permalink)  
Alt 23-02-2005, 10:21
cst
 Registrierter Benutzer
Links : Onlinestatus : cst ist offline
Registriert seit: Aug 2003
Beiträge: 141
cst ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Kicky
ich habe versucht es umzusetzen, aber der IE stößt auf Probleme mit dem Header.
Hmmm... verstehe ich nicht. Bei mir klappt das mit Firefox, IE 5.5 und IE 6. Mehr habe ich aber nicht getestet.
__________________
Ich denke, also bin ich.
Manche sind trotzdem!
Mit Zitat antworten
  #15 (permalink)  
Alt 23-02-2005, 10:47
cst
 Registrierter Benutzer
Links : Onlinestatus : cst ist offline
Registriert seit: Aug 2003
Beiträge: 141
cst ist zur Zeit noch ein unbeschriebenes Blatt
Standard

TIPP
Untersuche mal den HTTP-Datenstrom von Seiten, bei denen der PDF-Download funktioniert. Das kannst Du per Telnet machen. Wenn du Windows benutzt, mache das so:
* Start->Ausführen->cmd.exe
* Am Prompt gibst Du ein telnet www.irgendeinserver.de 80
* und dann im Telnet GET http://www.irgendeinserver/test.pdf

Am Anfang der nun erscheinenden Ausgabe bekommst Du die Header angezeigt. irgendeinserver.de und die URL der pdf-Datei mußt du natürilich anpassen.
Wahrscheinlich scrollt dir die Ausgabe aus dem Bildschirm. Damit mit das dennoch sehen kannst, mußt du für das CMD-Fenster die Fensterpuffergröße hoch setzen (2000 Zeilen oder mehr). Die Option erreichst Du über einen Rechtsklick auf das Icon des Fensters (links oben) -> Eigenschaften -> Layout.
Nun kannst du das gleiche mit deinem Skript machen und die Header vergleichen und dein Skript ggfs. anpassen.
__________________
Ich denke, also bin ich.
Manche sind trotzdem!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:26 Uhr.