php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.10.2005, 16:54  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

Nachdem ich die content-length weggelassen und wieder hinzugefügt habe zeigt er die Größe jetzt richtig an. Aber öffnen will er die Datei trotzdem nicht. egal welcher Browser.
Wenn ich die Datei runterlade, haben beide Dateien(original und runtergeladene) exakt die gleiche Größe.

Da muss beim senden ein Fehler gemacht worden sein. Aber wo?

MfG
__________________
Webdesign - optimized for user
Riot ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.10.2005, 17:17  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

Zusatz:

Ich habe das ganze jetzt mal mit einer *.doc-Datei versucht. Hier besteht genau das gleiche Problem.

Wenn ich jetzt mir die runtergeladenen Dateien mit dem Total-Commander per "View" ansehe sehe ich die Ursache für das Problem.

Die pdf-Datei fängt normalerweise so an
PHP-Code:
%PDF-1.4%âãÏÓ184 0 obj <</Linearized 1/L 457538/O 188/E 96208/N 48/T 4538 
Aber bei den runtergeladenen Versionen sehe ich jetzt in der PDF-Datei noch Teile der Webseite.

PHP-Code:
{[Logo]} 
Navigation
  
Sonstiges
    
* {Startseite
    * {
Philosophie
    * {
Unser Team
    * {
Impressum
    * 
Kunden-Login
    
* {Kontakt}  

weitere Text von der HP

Kunden
-Login
  
Eingeloggt als
  * 
tester 
 
#### Ab hier beginnt die eigentliche PDF-Datei ####
%PDF-1.4 %âãÏÓ 184 0 obj endobj xref 184 18 
... und so weiter 
Was läuft hier falsch?
MfG
__________________
Webdesign - optimized for user
Riot ist offline  
Alt 06.10.2005, 18:18  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

So, ich habe es mal getestet.
Im Ordner "dir" liegt die Datei "bild.jpg":
PHP-Code:
<?php
error_reporting
(E_ALL);
$dir   'dir/';
$datei 'bild.jpg';

header("Content-Type: x-type/subtype");
header("Content-Length: ".filesize($dir.$datei));
header("Content-Disposition: attachment; filename=".$datei);
readfile($dir.$datei);

?>
Läuft alles bestens.
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 06.10.2005, 18:34  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

Hallo,

Leider funktioniert das auch nicht mit einem Bild. Genau das selbe Problem.
Bis jetzt war das ganze ja lokal. Habe es mal hochgeladen, und hier kommen folgende fehlermeldungen:

PHP-Code:
WarningCannot modify header information headers already sent by (output started at /homepages/13/d133492703/htdocs/index.php:6in /homepages/13/d133492703/htdocs/skripte/skripte.php on line 7

Warning
Cannot modify header information headers already sent by (output started at /homepages/13/d133492703/htdocs/index.php:6in /homepages/13/d133492703/htdocs/skripte/skripte.php on line 8

Warning
Cannot modify header information headers already sent by (output started at /homepages/13/d133492703/htdocs/index.php:6in /homepages/13/d133492703/htdocs/skripte/skripte.php on line 9


##### ab hier kommen die Bilddaten #####
‰PNG  ..... 
__________________
Webdesign - optimized for user
Riot ist offline  
Alt 06.10.2005, 18:38  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

Junge Junge...

Du darfst KEINERLEI Ausgaben vor dem header() machen

(Und danach sinvoller Weise auch nur die, die zu dem Header gehören)
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 06.10.2005, 19:20  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

Aha.

Wie mache ich das jetzt, ohne die Datei einzufügen?

Ich habe es folgendermaßen probiert:
PHP-Code:
<?php
 
if($Log->CheckUserValidity()) {
  echo 
'
<ul>[*][url="skripte/skripte.php?datei=skript"]test[/url][/list]'
;
}
?>

PHP-Code:
<?php
error_reporting
(E_ALL);
if(isset(
$_GET['datei'])) {
$dat$_GET['datei'];
$dir   'skripte/';
$datei $dat.'.png';

header("Content-Type: x-type/subtype");
header("Content-Length: ".filesize($dir.$datei));
header("Content-Disposition: attachment; filename=".$datei);
readfile($dir.$datei);
}
?>
PS: Ich habe ja nicht ohne Grund im Anfängerforum gepostet.
__________________
Webdesign - optimized for user
Riot ist offline  
Alt 06.10.2005, 19:26  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

Du hast ja freundlicher Weise drangeschrieben, wie die Dateien heißen, deren Fragmente man sieht...
"Anfänger" schaffen es trozdem, auf php.net sich die infos zu header() durchzulesen...

So würde ich es machen:
1. website.php -> einloggen(session) , ausgabe eines Links (download.php?id=X)
2. Download.php -> ist der User eingeloggt? Wenn ja Datei senden.

Zitat:
Zitat von php.net
Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob normale HTML Tags, leere Zeilen in einer Datei oder von PHP. Ein weit verbreiteter Fehler ist mittels include(), require(), oder anderen Dateizugriffsmethoden Code zu lesen, und so unbewusst Leerzeichen oder Leerzeilen auszugeben, bevor header() aufgerufen wird. Das gleiche Problem besteht auch bei Verwendung einer einzigen PHP/HTML Datei.
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 06.10.2005, 20:09  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

Zitat:
Zitat von andy
So würde ich es machen:
1. website.php -> einloggen(session) , ausgabe eines Links (download.php?id=X)
2. Download.php -> ist der User eingeloggt? Wenn ja Datei senden.
So ähnlich habe ich es jetzt.
1. login.php (ist per include in die Webseite integriert)
PHP-Code:
<?php
if($Log->CheckUserValidity()) {
  echo 
'
  <ul>[*][url="skripte/skripte.php?datei=skript"]test[/url][/list]  '
;
}
?>
2. skripte.php (befindet sich in skripte/ )
PHP-Code:
<?php
error_reporting
(E_ALL);
if(isset(
$_GET['datei'])) {
$dat$_GET['datei'];
$dir   'skripte/';
$datei $dat.'.png';

header("Content-Type: x-type/subtype");
header("Content-Length: ".filesize($dir.$datei));
header("Content-Disposition: attachment; filename=".$datei);
readfile($dir.$datei);
}
?>
jetzt steht die Fehlermeldung in der Bilddatei:
Code:
Warning:  filesize() [function.filesize]: stat failed for skripte/skript.png in D:\Websites\test\skripte\skripte.php on line 9



Warning:  readfile(skripte/skript.png) [function.readfile]: failed to open stream: No such file or directory in D:\Websites\test\skripte\skripte.php on line 11 
jetzt wird doch die datei "skripte.php" allein aufgerufen, und somit müsste doch der Header allein und oben stehen. Aber es klappt immer noch nicht.
__________________
Webdesign - optimized for user
Riot ist offline  
Alt 06.10.2005, 20:36  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

Es funktioniert:
ich habe das
PHP-Code:
<?php
header
("Content-Length: ".filesize($dir.$datei));
header("Content-Disposition: attachment; filename=".$datei);
readfile($dir.$datei); 
?>
in das geändert:
PHP-Code:
<?php
header
("Content-Length: ".filesize($datei));
header("Content-Disposition: attachment; filename=".$datei);
readfile($datei);
?>
Und danke an andy der mir bis Schluss hat versucht zu helfen.
__________________
Webdesign - optimized for user
Riot ist offline  
Alt 06.10.2005, 20:56  
Erfahrener Benutzer
 
Registriert seit: 11.08.2005
Beiträge: 206
ZiMD
Standard

Zitat:
Zitat von Riot
Zitat:
Zitat von ZiMD
omg...
da wird doch nix "includiert"
du setzt einfach nur einen link!
Hä? Ich habe nie behauptet das in dem Gezeigten was eingefügt wird. Ich habe gesagt, das das Gezeigte eingefügt wird! Ich hoffe du erkennst den Unterschied!

Zitat:
Zitat von ZiMD
lass es besser
Kann es sein das hier im Forum einige die Nase ganz schön hoch tragen?

Wie wäre es wenn du mir dein Beispiel erklärst.
MfG
sry hätte vorm posten nomma F5 drücken sollen
ZiMD ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bild verschafft sich platz HTML, Usability und Barrierefreiheit 14 11.08.2008 23:45
Zugriff mit session auf Ordner begrenzen Diego1978 PHP Tipps 2008 1 08.07.2008 06:38
[Erledigt] PHP -&gt; Ordner anlegen der sich auch beschreiben lässt?! Nightuser PHP Tipps 2008 13 30.06.2008 23:51
Probleme mit Zugriff auf HTACCESS gesicherten Ordner Pimbolie1979 PHP Tipps 2008 6 20.05.2008 08:27
Serverbeschränkung (Ordner beschränkung) triopsi Server, Hosting und Workstations 2 29.04.2008 17:07
Per FTP einen Ordner inkl. Inhalt löschen? BartTheDevil89 PHP Tipps 2006 2 10.09.2006 11:46
TreeMenu Fatal Error PHP Tipps 2006 8 07.04.2006 11:22
Ordner vor Zugriff schützen kanti Server, Hosting und Workstations 5 29.03.2006 13:02
Ganzen Ordner samt Inhalt per Formular Upload [begraben] dethlef14 PHP Tipps 2005-2 3 20.10.2005 08:51
php ordner erstellen -> zugriff ftp PHP Tipps 2005-2 10 19.10.2005 15:55
Ordner auf Inhalt prüfen Juuro PHP Tipps 2005-2 10 20.07.2005 19:22
[Erledigt] den externen zugriff auf einen ordner verweigern - wie geht HTML, Usability und Barrierefreiheit 2 30.12.2004 20:44
kann php ordner und file unterscheiden? Promaetheus PHP Tipps 2004 7 14.09.2004 14:58
ordner in einem verzeichnis auslesen und anzeigen lindner PHP Tipps 2004 5 19.08.2004 00:03
Ordner lesen --> Baumstruktur --> Problem PHP Tipps 2004 0 30.06.2004 17:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
website pdf datei vor zugriff von außen schützen, php include fremdzugriff, php uploads vor fremdzugriff schützen, total commander schützen, unberechtigter zugriff warnung, ordner und dateien mit php schützen, pdf zugriff auf inhalt, zugriff auf website inhalte php, verzeichnisse gegen zugriff von aussen schützen, seiten schützen mit sessions zusammenfassung, mit php eine pdf datei schützen login, unberechtigter zugriff webseiten, server vor unberechtigtem zugriff schützen, ordner verschlüsseln total commander, webseite zugriff schützen, html datei mit php schützen, total commander verzeichnis schÜtzen, pdf datei sichern vor zugriff, wie kann man daten vor unberechtigtem zugriff schützen, bilddateien zugriff schützen php

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.