mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: So 04.12.2016 07:19 Benutzername: Passwort: Auto-Login

Thema: [frage html] pdf zum download anbieten ? vom 05.03.2004


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> [frage html] pdf zum download anbieten ?
Seite: Zurück  1, 2
Autor Nachricht
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 41
Geschlecht: Männlich
Verfasst Fr 05.03.2004 14:08
Titel

Antworten mit Zitat Zum Seitenanfang

grad wollt ichs dir schreiben *zwinker*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
denise2302

Dabei seit: 12.09.2006
Ort: Leipzig
Alter: 26
Geschlecht: Weiblich
Verfasst Do 08.05.2008 14:25
Titel

Antworten mit Zitat Zum Seitenanfang

*rauskram*

Genau das ist das was ich brauche, aber leider kommt bei mir ne Fehlermeldung....
Code:

<?php
$filename = aktuelles.pdf; //Dateiname oder absoluter Pfad zur Datei
$save_as_name = basename($filename);
header(Content-Type: x-type/subtype);
header(Content-Disposition: attachment; filename=\$save_as_name\);

// Datei ausgeben.
@readfile($filename);
?>


aber es kommt bei mir das auf Zeile 4:
Parse error: syntax error, unexpected ':' in C:\xampp\htdocs\wfb\200805\aktuellsichern.php on line 4

also Zeile 4 ist die:

header(Content-Type: x-type/subtype);

ich weiß aber nicht was daran falsch ist...

LG Denise
  View user's profile Private Nachricht senden
Anzeige
Anzeige
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 39
Geschlecht: Männlich
Verfasst Do 08.05.2008 21:11
Titel

Antworten mit Zitat Zum Seitenanfang

Ich weiß ja nicht, was bei dir die Zeile 4 ist, aber das es zu einer Fehlermeldung kommt, ist schon klar.
Entweder übergibst du einer Funktion eine Variable, eine Konstante oder einen String...
Strings werden in Quotes gefaßt.
falsch:
Code:
$filename = aktuelles.pdf;

richtig:
Code:
$filename = 'aktuelles.pdf';


falsch:
Code:
header(Content-Type: x-type/subtype);

richtig:
Code:
header( 'Content-Type: x-type/subtype' );


falsch:
Code:
header(Content-Disposition: attachment; filename=\$save_as_name\);

richtig:
Code:
header( "Content-Disposition: attachment; filename=$save_as_name" );


Und bei deinem Filename kannst du dir die Backslashes auch sparen. Da gibt es ja nichts zu escapen. Du hast ja nicht mal Quotes gesetzt...

Hier hingegen ist es richtig:
Code:
@readfile($filename);

Dort wird eine Variable übergeben und kein String. Hier dürfen also keine Quotes gesetzt werden.

PHP-Handbuch: Strings


Zuletzt bearbeitet von rob am Do 08.05.2008 21:11, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 39
Geschlecht: Männlich
Verfasst Do 08.05.2008 21:19
Titel

Antworten mit Zitat Zum Seitenanfang

Mir ist noch was eingefallen...
Was ist denn, wenn es die Datei, die runtergeladen werden soll, gar nicht mehr gibt?
Da würde ich vorsichtshalber immer noch eine Prüfung einbauen.

Und wie kommst du zu $filename? Die Variable muß ja schließlich irgendwie übergeben werden, damit dann Script weiß, welche Datei es zum Client schicken soll.
Ich würde da wahrscheinlich eine Übergabe per URL machen und ich würde eine weitere Abfrage einbauen.
Nachher übergibt sonst jemand als Dateinamen sowas wie "geheim.php" und bekommt dann ein Script ausgeliefert, daß er gar nicht sehen sollte. Oder jemand übergibt sowas wie "../../../etc/passwd" oder "../../../etc/shadow" oder sonstwas...
Also niemals direkt den Dateinamen übergeben. Du darfst ohnehin niemals Variablen, die von außen kommen, ungeprüft in deine Abfragen einbauen.

Wirf mal einen Blick die die FAQ der Newsgroups de.comp.lang.php.*
http://www.php-faq.de/q/q-datei-download.html

Dort findest du eine gute Möglichkeit, wie du die Sache angehen kannst. Eigentlich ist das Script da ganz genau das, was du suchst.


EDIT:
Mir ist noch eine Sache aufgefallen, die in dem Script der PHP-FAQ nicht schön ist. Dort wird mit die() gearbeitet. Auf einer HTML-Seite ist das gar nicht gut. Damit wird die Verarbeitung des Scriptes dann nämlich komplett abgebrochen, das bedeutet, die HTML-Seite wird nicht mehr zu ende geschrieben. Das Dokument hat dann kein schließendes </body> und kein schließendes </html> mehr und du hast damit dann invaliden Code.


Zuletzt bearbeitet von rob am Do 08.05.2008 21:22, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen PDF zum Download anbieten
Komplette Webseite Besuchern als PDF zum Download anbieten?
Bilder zum download anbieten?
Dateien zum Download anbieten
Bilder zum download anbieten
Bild zum download anbieten (ohne rechtsklick - speichern...
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.