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 11-09-2007, 14:18
Ceene
 Junior Member
Links : Onlinestatus : Ceene ist offline
Registriert seit: Mar 2007
Beiträge: 98
Ceene ist zur Zeit noch ein unbeschriebenes Blatt
Standard pdf-Download

Hallo

Ich habe eine Frage und zwar möchte ich von meiner Homepage bestimmten Usern die Möglichkeit geben was zu downloaden. Ich habe auch schon einen geschützen Bereich erstellt in den nur angemeldete User kommen.

Nun möchte ich den Usern einige pdf-Dateien zum download anbieten. Leider öffnen sich die Dateien immer automatisch im Browser. Gibt es einen Befehl mit dem ich das verhindern kann und bestimmen kann, dass man nur downloaden kann?
Mit Zitat antworten
  #2 (permalink)  
Alt 11-09-2007, 14:30
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

benutze mal die Suchfunktion des Forums, da wirst du bestimmt fündig!
Mit Zitat antworten
  #3 (permalink)  
Alt 11-09-2007, 15:01
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

Oder lies im Manual zum Thema header()

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
  #4 (permalink)  
Alt 11-09-2007, 16:27
Ceene
 Junior Member
Links : Onlinestatus : Ceene ist offline
Registriert seit: Mar 2007
Beiträge: 98
Ceene ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Suche hat leider keine Lösung offenbart.

Das Manuel hat mir leider auch nicht weitergeholfen, da es mit header() wohl probleme beim späteren öffnen gibt.

Gibt es sonst noch eine Möglichkeit?
Mit Zitat antworten
  #5 (permalink)  
Alt 11-09-2007, 16:29
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja: noch mal lesen. das manual behandelt genau dieses thema.
Mit Zitat antworten
  #6 (permalink)  
Alt 12-09-2007, 09:38
Ceene
 Junior Member
Links : Onlinestatus : Ceene ist offline
Registriert seit: Mar 2007
Beiträge: 98
Ceene ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Haben nun nochmal gelesen und habe
header('Content-Disposition: attachment; filename="Produktblatt HWfoko manager deutsch.pdf"');
gefunden.

Da ich noch neu auf dem Gebiet bin habe ich noch ne frage. Wie kann ich denn das nun so in mein html einfügen, dass es als download funktioniert. Zur Zeit nutze ich ja noch den "a href" Befehl. Wie kann ich die beiden denn nun austauschen? bzw verknüpfen?
Mit Zitat antworten
  #7 (permalink)  
Alt 12-09-2007, 10:07
Skaschy
 Registrierter Benutzer
Links : Onlinestatus : Skaschy ist offline
Registriert seit: Jun 2002
Ort: Bad Wörishofen (Allgäu)
Beiträge: 584
Skaschy ist zur Zeit noch ein unbeschriebenes Blatt
Skaschy eine Nachricht über ICQ schicken
Standard

*vorkau*

PHP-Code:
<?php

/**
 * @file download.php
 **/
$sPDFPath 'dein pfad zur pdf';

header('Content-Type: application/octet-stream');

// Damit dein Browser weiss, wie Gross die Datei ist.
header('Content-Length: ' filesize($sPDFPath));

// Die Datei wird als [[filename]] angeboten.
header('Content-Disposition: attachment; 
             filename="Produktblatt%20HWfoko%20manager%20deutsch.pdf"'
);

// Sourcefile einlesen und ausgeben, durch die setzung von Content-Disposition
// wird die Datei nicht angezeigt, sondern als Download angeboten.
readfile($sPDFPath);

?>
und in deiner HTML Datei als <a href...>

Code:
<a href="download.php">PDF Datei download</a>
Das nächste mal bitte intensiver suchen.


header();
readfile();

Geändert von Skaschy (12-09-2007 um 10:09 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 12-09-2007, 10:22
Ceene
 Junior Member
Links : Onlinestatus : Ceene ist offline
Registriert seit: Mar 2007
Beiträge: 98
Ceene ist zur Zeit noch ein unbeschriebenes Blatt
Standard

vielen Dank, aber leider geht es nicht. Er ruft zwar die Datei "download.php" auf, aber er bietet nichts zum download an.

meine download.php sieht so aus:
Code:
<?php session_start (); ?>
<?php 
include ("checkuser.php"); 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Download</title>
</head>
<?php

/**
 * @file download.php
 **/
$sPDFPath = '../Produktbl&auml;tter/';

header('Content-Type: application/octet-stream');

// Damit dein Browser weiss, wie Gross die Datei ist.
header('Content-Length: ' . filesize($sPDFPath));

if(isset ($_REQUEST["hwfokoman"]))
{
  // Die Datei wird als [[filename]] angeboten.
   header('Content-Disposition: attachment; 
                filename="Produktblatt%20HWfoko%20manager%20deutsch.pdf"'); 
}


// Sourcefile einlesen und ausgeben, durch die setzung von Content-Disposition
// wird die Datei nicht angezeigt, sondern als Download angeboten.
readfile($sPDFPath);

?>
<body>
</body>
</html>
und meinne Tabelle in html sieht wie folgt aus:
Code:
<td class="bodyText"><a href="download.php?hwfokoman=1" class="Stil7">HWfoko manager </a><a href="../Produktbl&auml;tter/Produktblatt HWfoko manager deutsch.pdf" class="bodyText Stil7"></a></td>

Geändert von Ceene (12-09-2007 um 10:41 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 12-09-2007, 11:02
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

error_reporting() voll aufgedreht und keine Fehler ? Mach in deinem if(isset(... mal testweise ein die('Komme in\'s if rein'); und schau ob dir das angezeigt wird.
Und erklär mir mal bitte wie du einen Pfad als PDF ausgeben willst oder die Filegrösse eines Pfades ermitteln willst

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
  #10 (permalink)  
Alt 12-09-2007, 11:23
Ceene
 Junior Member
Links : Onlinestatus : Ceene ist offline
Registriert seit: Mar 2007
Beiträge: 98
Ceene ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe nun die Datei nochmal angepasst, aber leider öffnet er nur die download.php und bietet nichts zum download an.

Code:
<?php session_start (); 
include ("checkuser.php"); 
/**
 * @file download.php
 **/
$sPDFPath = '../Produktbl&auml;tter/';

header('Content-Type: application/octet-stream') OR die(mysql_error());

if($_GET["hwfokoman"] == 1)
{
  // Damit dein Browser weiss, wie Gross die Datei ist.
  header('Content-Length: ' . filesize($sPDFPath."Produktblatt%20HWfoko%20manager%20deutsch.pdf")) OR die(mysql_error());
  
  // Die Datei wird als [[filename]] angeboten.
   header('Content-Disposition: attachment; 
                filename="Produktblatt%20HWfoko%20manager%20deutsch.pdf"') OR die(mysql_error()); 
// Sourcefile einlesen und ausgeben, durch die setzung von Content-Disposition
// wird die Datei nicht angezeigt, sondern als Download angeboten.

readfile($sPDFPath."Produktblatt%20HWfoko%20manager%20deutsch.pdf") OR die(mysql_error());
}
?> 
<body>
</body>
</html>
Mit Zitat antworten
  #11 (permalink)  
Alt 12-09-2007, 11:32
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

PHP-Code:
header('Content-Type: application/octet-stream') OR die(mysql_error()); 
Völlig sinnlos, oder wo siehst du eine Interaktion mit der DB ? Du scheinst es wirklich mit der MySql DB zu haben
Wieso übergibst du Dateisystemfunktionen URL encodede Strings ? Normale Strings würden es auch, vielleicht sogar besser, tun.
Hast du endlich dein error_reporting() voll aufgedreht ?
__________________
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
  #12 (permalink)  
Alt 12-09-2007, 11:39
Ceene
 Junior Member
Links : Onlinestatus : Ceene ist offline
Registriert seit: Mar 2007
Beiträge: 98
Ceene ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn du mir noch sagst wie das geht? Hab das noch nie genutzt.
Mit Zitat antworten
  #13 (permalink)  
Alt 12-09-2007, 11:42
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

Zitat:
wenn du mir noch sagst wie das geht? Hab das noch nie genutzt.
Lies die ver... Regeln
__________________
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
  #14 (permalink)  
Alt 12-09-2007, 11:47
Ceene
 Junior Member
Links : Onlinestatus : Ceene ist offline
Registriert seit: Mar 2007
Beiträge: 98
Ceene ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn es dir zu blöd ist mir zu helfen dann lass es und werd nciht ausfallend. Ich kann auch nichts dafür das ich von der Materie noch keine Ahnung habe. Darum bitte ich hier auch um Hilfe.

Warning: Cannot modify header information - headers already sent by (output started at /homepages/20/d212079107/htdocs/testhwsoft/scripte/checkuser.php:7) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 9

Warning: filesize() [function.filesize]: Stat failed for ../Produktblätter/Produktblatt%20HWfoko%20manager%20deutsch.pdf (errno=2 - No such file or directory) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /homepages/20/d212079107/htdocs/testhwsoft/scripte/checkuser.php:7) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /homepages/20/d212079107/htdocs/testhwsoft/scripte/checkuser.php:7) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 18

Warning: readfile(../Produktblätter/Produktblatt%20HWfoko%20manager%20deutsch.pdf) [function.readfile]: failed to open stream: No such file or directory in /homepages/20/d212079107/htdocs/testhwsoft/scripte/download.php on line 22

Das sind die Fehler die nun erscheinen.
Kann man in der Pfadangabe umlaute verwenden oder muss man die mit &auml; schreiben?
Mit Zitat antworten
  #15 (permalink)  
Alt 12-09-2007, 12:00
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

Deine Fehlermeldungen bestätigen meine Vorausahnung.
1. irgendwo in checkuser.php machst du eine Ausgabe --> kein header() kann mehr abgesetzt werden --> Zeile suchen und Ausgabe unterdrücken
2. Die Pfad/Dateiangaben sind so scheisse. Mach mal bevor du den Namen an Fkt übergibst ein url_decode($deinString) und übergib diesen String an deine File Funktionen
Zitat:
Wenn es dir zu blöd ist mir zu helfen dann lass es und werd nciht ausfallend. Ich kann auch nichts dafür das ich von der Materie noch keine Ahnung habe
Es ist mir nicht zu blöd dir zu helfen, aber wir haben hier im Board genau für solch "komische" Fälle die Regeln, die die ersten Schritte zum Debugging erklären. Ohne zu wissen ob es Fehler gibt oder nicht ist die Hilfe wie ein Fischen-im-Trüben.
Hättest du die Regeln gelesen, dann hättest du das error_reporting() schon lange gesetzt und hättest uns die Fehlermeldungen präsentiert. DA hätten wir schhon konkreter weiterhelfen können
Zitat:
Kann man in der Pfadangabe umlaute verwenden oder muss man die mit ä schreiben?
Ein Widerspruch innerhalb weniger Zeichen Ja du kannst Umlaute verwenden solange die Dateien auch so gespeichert sind. Der Pfad und der Name müssen genau gleich sein wie auf dem Dateisystem

Gruss

tobi

p.s. bitte brich in allen deinen Postings den Code so um, dass man nicht nach rechts scrollen muss
__________________
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
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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:05 Uhr.