php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.05.2009, 00:23  
Neuer Benutzer
 
Registriert seit: 06.05.2009
Beiträge: 3
LukasHH befindet sich auf einem aufstrebenden Ast
Standard nach Download HTML Code im Text File

Hallo zusammen,

habe dieses Problem schon in einigen Foren gesehen, aber noch keine passende Lösung für mein spezielles gefunden. Ich arbeite gerade an einer Seite, bei der Formulardaten verschlüsselt in Datein gespeichert werden sollen.

Dabei soll nach Erstellung der ersten verschlüsselten Datei auf dem Server, diese zum Download gepusht werden, um diese lokal speichern zu können. Mit dieser Datei (zwischengespeichert auf dem Server) wird anschließend eine weitere verschlüsselte Datei erzeugt.

In dem folgenden Testscript habe ich jetzt nur die Download-Funktion drin, was das eigentliche Problem ist. Denn wenn ich diese Datei zum Download pushe, dann wird der HTML-Code mit in die Datei geschrieben, was nicht sein darf. Diese Datei ist nämlich der Schlüssel für die weiteren Datein.

Zur besseren Anschaulichkeit habe ich das wichtigste in einer test.php zusammen gefasst.
PHP-Code:
<?
ob_start
();

$file="sec.txt";
$name="new.txt";

function 
download($file,$name) {
   
  
$ob_get=ob_get_contents(); //Bisherigen Puffer Inhalt speichern
  
ob_end_clean(); // Puffer löschen
  
ob_start(); // Neuen Puffer starten
   
    
$size filesize($file); 
    
header("Content-type: application/octet-stream"); 
    
header("Content-disposition: attachment; filename=".$name); 
    
header("Content-Length: ".$size); 
    
header("Pragma: no-cache"); 
    
header("Expires: 0"); 
    
readfile($file);

  
ob_end_flush(); // Puffer ausgeben und löschen
  
ob_start(); // Neuen Puffer starten
#  exit();
  
echo $ob_get// alten Puffer Inhalt ausgeben
}
?>
<html>
<head></head>
<body>
<form method="post" name="cfg" action="test.php">
<input type="submit" name="submit" value="download">
</form>
<?
### --> Aufruf der Download Funktion
if(isset($_POST['submit'])){

  
download($file,$name);  

}
?>
</body>
</html>
<? ob_end_flush(); ?>
Das exit() habe ich raus kommentiert, da sonst (im eigentlichen Script) die nachfolgenden Funktionen nicht mehr ausgeführt werden. Nur ohne diesem exit() schreibt er die Browser-Ausgabe mit in die zu downloadende Datei mit rein. Die zwischengespeicherte Datei auf dem Server ist ok.

Hat hierfür jemand eine Lösung?
LukasHH ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.05.2009, 09:17  
Erfahrener Benutzer
 
Registriert seit: 22.01.2005
Beiträge: 422
Connar befindet sich auf einem aufstrebenden Ast
Standard

Was schreibt er dir denn genau in die Datei hinein? Denn bei mir funktioniert das Ganze ... wenn du keinen Output haben möchtest, könntest du ihm natürlich auch sagen, dass er nur etwas ausgeben soll, wenn der Button nicht gedrückt wurde.
Connar ist offline   Mit Zitat antworten
Alt 07.05.2009, 11:12  
Neuer Benutzer
 
Registriert seit: 06.05.2009
Beiträge: 3
LukasHH befindet sich auf einem aufstrebenden Ast
Standard

Hallo Connar,

ein Output sollte danach natürlich noch kommen, da anschließend weitere Funktionen abgearbeitet werden.

In der automatisch generierten (zwischengespeicherten) Datei steht zum Beispiel folgende Textzeile
Code:
7Ap2Uq1C/CH/vqkvMVXMyPp3E4ntjj08Oy0WIhNdGEHHC8URBXE9J+
In der Datei, die er zum Download anbietet steht (ohne dem exit())
Code:
7Ap2Uq1C/CH/vqkvMVXMyPp3E4ntjj08Oy0WIhNdGEHHC8URBXE9J+<html> 
<head></head> 
<body> 
<form method="post" name="cfg" action="test.php"> 
<input type="submit" name="submit" value="download"> 
</form>
</body> 
</html>
Das heißt, daß er die nachfolgende Pufferausgabe mit in die Datei schreibt.
LukasHH ist offline   Mit Zitat antworten
Alt 07.05.2009, 11:40  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

klar, das programm läuft ja weiter, warum machst du nicht in der download-funktion am ende einfach ein exit ? du kannst dein if:
PHP-Code:
if(isset($_POST['submit'])){

  
download($file,$name);  


auch btw nach oben vor die ausgabe jeglichen Codes schieben, dann sparst du dir den umstand doppelt ob_start zu nutzen.
robo47 ist offline   Mit Zitat antworten
Alt 07.05.2009, 13:42  
Neuer Benutzer
 
Registriert seit: 06.05.2009
Beiträge: 3
LukasHH befindet sich auf einem aufstrebenden Ast
Standard

Hallo robo47

das mit dem exit() habe ich schon oben beschrieben. Dabei ist es egal, wo die if Anweisung steht. Sobald das exit in der Funktion drin ist, werden die nachfolgenden Funktionen nicht mehr abgearbeitet.

Das ganze löft ja in etwa so:
PHP-Code:
if(isset($_POST['submit'])){
// 1. Erstelle verschlüsselte Datei 

// 2. biete Datei zum Download an
download($file,$name);

// 3. Erstelle eine andere verschlüselte Datei (unter Verwendung der Datei aus Punkt 1)

// 4. Gib Meldung aus TRUE OR FALSE

Sobald das exit drin ist, wird Punkt 3 und 4 nicht mehr abgearbeitet.
exit() => Die gesamte Script Ausführung wird beendet und nicht nur die Funktion
LukasHH ist offline   Mit Zitat antworten
Alt 07.05.2009, 13:47  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

dann mach dein exit vor 4., weil 4. muss wegfallen, du kannst in einem scriptaufruf nicht eine datei zum download anbieten UND ausgaben für den user machen.

den auf/umstand den du mit dem vielen ob_start und clean treibst sparst du dir dann falls dein anderer code nicht noch "unnötige" ausgaben produziert
robo47 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] HTML Email kommt nur mit Code an maastradamus Scriptbörse 22 28.09.2009 14:01
mit if true an eine stelle im html code springen und text ausgeben BocaSpanky PHP Tipps 2009 1 18.04.2009 21:12
Textfelder Array in Datenbank schreiben raa PHP Tipps 2009 16 14.03.2009 21:41
HTML Code in PHP einbinden solvero PHP Tipps 2009 5 11.02.2009 10:17
Text in Datenbank umwandeln muffinsbacken PHP Tipps 2009 9 07.01.2009 18:40
php code in html einbinden... lookatme PHP Tipps 2008 10 20.08.2008 13:09
Nur bestimmten Html Code zulassen? litterauspirna PHP Tipps 2008 5 29.04.2008 12:30
Html Code maskieren mit php Mania PHP Tipps 2008 5 12.10.2007 08:34
CSS - Bild im div container überlappt andere container Buschdieb HTML, Usability und Barrierefreiheit 13 19.07.2007 23:17
text kürzen = kein problem was is aber mit html nfo PHP Tipps 2007 9 05.02.2007 12:42
HTML Code in MySQL DB speichern FireFIghter Datenbanken 3 27.12.2006 15:45
HTML Mail mit Code über Formular/Textfeld madSoul PHP Tipps 2006 5 28.04.2006 12:33
PHP file Download script ??!! PHP Tipps 2004 0 25.09.2004 09:44
ausgefuehrtes php file als html speichern PHP Tipps 2004 8 28.07.2004 17:59
[Erledigt] Text kürzen, nur ganze Wörter, außerhalb HTML! PHP-Fortgeschrittene 3 06.06.2004 16:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
download html code, http://www.php.de/php-fortgeschrittene/54863-nach-download-html-code-im-text-file.html, html code bei text download, in textdatei steht html code php download, download textdatei php, code.txt file download, textdatei download php, php textdatei download html quelltext, html formular download nur txt, php txt datei downloaden, php bei scriptaufruf datei download, downloaded file html code drin, txt nach download löschen php, text file download, download html code formular, php html inhalt nach datei download, code für txt datei, header funktion schreibt in download datei, txt datei als download, header schreibt in download datei was rein

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