php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.08.2007, 10:49  
Benutzer
 
Registriert seit: 02.08.2007
Beiträge: 50
Benutzername befindet sich auf einem aufstrebenden Ast
Benutzername eine Nachricht über ICQ schicken
Standard Problem mit header(Location)

Sooo...

ich hab ein kleines Problem mit dem header.
Ich will mir verschiedenste Dateien downloadbar machen.

Hab mir das jetzt auch alles zusammengebaut, so wie ich es brauche:

PHP-Code:
<?
include('includes/config.inc.php');
include(
'includes/functions.inc.php');

$daten mysql_query("SELECT id,ordner,filename FROM ".$GLOBALS['tbl_files']." WHERE id = '".$_GET['fid']."'")or die(mysql_error());
if(
mysql_num_rows($daten)=='0')
    echo 
'Keine Datei vorhanden';
else
{
    if(
$_SESSION['download']=='')
    {
        
$data mysql_fetch_array($daten);            
        
        
$end substr($data['filename'],-3,3);
        
$file name_of_file($data['filename']);
        
$dl_dir 'uploads/'.$data['ordner'].'/'.$data['filename'];
              
        
header("Content-type: application/".$end);
        
header("Content-Disposition: attachment; filename=".$dl_dir);
        
readfile($dl_dir);
        
$_SESSION['download'] = 'ende';
    }
}
?>
Mein Prob ist jetzt, das ich folgendes rausbekomme:

Download der Datei: upoads-1232434-leon.jpg

Wie kann ich das ändern, bzw wo liegt der Fehler???
Benutzername ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.08.2007, 12:33  
Erfahrener Benutzer
 
Registriert seit: 30.07.2007
Beiträge: 162
Ambience befindet sich auf einem aufstrebenden Ast
Ambience eine Nachricht über ICQ schicken
Standard

Hi,

vielleicht hilft dir das:

Wie realisiere ich einen Dateidownload mit PHP?

Ambience
__________________
Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.
Ambience ist offline   Mit Zitat antworten
Alt 08.08.2007, 11:16  
Neuer Benutzer
 
Registriert seit: 08.08.2007
Beiträge: 3
pixelkoenig befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ausserdem davor noch evtl. $GLOBALS in $_GLOBALS ändern (so sollte es heissen), und nicht die $_GET['id'] aus Sicherheitsgründen direkt in die Datenbankabfrage schmeißen.

Lieber vorher:
$id = $_GET['id'];
settype($id, 'int');

um sicherzustellen, dass da nix böses ankommt.

Viel Erfolg, schöne Grüße, Lasse
pixelkoenig ist offline   Mit Zitat antworten
Alt 09.08.2007, 08:29  
Benutzer
 
Registriert seit: 02.08.2007
Beiträge: 50
Benutzername befindet sich auf einem aufstrebenden Ast
Benutzername eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von pixelkoenig Beitrag anzeigen
Hallo,

ausserdem davor noch evtl. $GLOBALS in $_GLOBALS ändern (so sollte es heissen)
ähm... ne... das sind von mir definierte Variablen. Und die heissen nunmal $GLOBALS, weil $_GLOBALS ja net geht

Das Ganze wird noch verbessert, sieht nun erstmal so aus:
PHP-Code:
<?
session_start
();

include(
'includes/config.inc.php');
include(
'includes/functions.inc.php');

$daten mysql_query("SELECT * FROM ".$GLOBALS['tbl_files']." WHERE id = '".$_GET['fid']."'")or die(mysql_error());
if(
mysql_num_rows($daten)=='0')
    echo 
'Keine Datei vorhanden';
else
{
    
$data mysql_fetch_array($daten);
    
    
$file $data['filename'];
    
    if(
$_SESSION['user_premium']!='1')
    {
        
$limit $dl_limit// Hier gibt man ein, wie viel Kilobyte pro Sekunde max. geladen werden dürfen.
        
$verzeichnis '/srv/www/tencents.de/html/upload/uploads/'.$data['ordner'].'/'// Downloadverzeichnis
        
$rundeslimit round($limit*1024); // Kilobytewert in Byte umrechnen
        
        
header('Cache-control: private');
        
header('Content-type: application/octetstream'); 
        
header('Content-Length: '.filesize($verzeichnis.$file));
        
header('Content-Disposition: attachment; filename='.$file); 
        
// Attachementheader senden
        
        
flush();
        
$fd fopen($verzeichnis.$file'r');
        while(!
feof($fd)) 
        {
            echo 
fread($fd$rundeslimit);
            
flush();
            
sleep(1);
        }
        
fclose ($fd);
        
// Die Speed-Sperre wird geschaltet
    
}
    else
    {
        
$file name_of_file($file);
        
$dl_dir $verzeichnis.$file;
        
        
header('Content-Type: application/octet-stream');
        
header('Content-Disposition: attachment; filename='.$file);
        
readfile($dl_dir);    
    }        
}
?>
Benutzername ist offline   Mit Zitat antworten
Alt 09.08.2007, 11:41  
Erfahrener Benutzer
 
Registriert seit: 30.07.2007
Beiträge: 162
Ambience befindet sich auf einem aufstrebenden Ast
Ambience eine Nachricht über ICQ schicken
Standard

funktioniert es denn nun auch so, wie du es wolltest?
__________________
Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.
Ambience ist offline   Mit Zitat antworten
Alt 10.08.2007, 08:28  
Benutzer
 
Registriert seit: 02.08.2007
Beiträge: 50
Benutzername befindet sich auf einem aufstrebenden Ast
Benutzername eine Nachricht über ICQ schicken
Standard

ja, funktioniert alles einwandfrei. ich werd euch irgendwann mal mitteilen, wofür ich das ganze brauchte. ziehe hier grad ein projekt auf.
Benutzername ist offline   Mit Zitat antworten
Antwort


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
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Problem mit Start_Session und Header(Location) ckrentel PHP Tipps 2005-2 11 05.10.2005 19:37
Problem mit Header(location...) PHP Tipps 2005-2 12 02.08.2005 20:50
[Erledigt] Hilfe - Problem mit Warenkorb PHP Tipps 2004 1 26.11.2004 11:32
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Cookie / localhost / Problem gelöst PHP-Fortgeschrittene 11 02.11.2004 22:41
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
Habe Problem mit Sonderzeichen pit62 Datenbanken 2 12.06.2004 00:17
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
header location octet-stream, \content-disposition attachment filename=\ \header(location:\, header location umlaute, html header filename ordner, php header location umlaute, php intitle:header location umlaut, $globals $_globals, stream file filename umlaute, header location sonderzeichen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:45 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