php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.01.2012, 10:40  
Erfahrener Benutzer
 
Registriert seit: 15.04.2008
Beiträge: 147
J_Jara befindet sich auf einem aufstrebenden Ast
Standard csv Download Skript problem mit IE6 IE7 und IE8

Hallo PHP Freunde. Ich habe dieses csv Download Skript nach meine Wünsche etwas angepasst. Leuft auch gut nur nicht unter manchen IE6 , IE7 und IE8. Warum?
Danke im voraus….


PHP-Code:

<?php 
include("data/connect.php");

function 
exportMysqlToCsv($table,$id,$filename,$tabele_2,$del $trenz=$thema $datum=0)
{

$csv_separator ";";

if(
$trenz==0){
    
$csv_separator ";";
}
if(
$trenz==2){
    
$csv_separator ",";
}

    
$csv_terminated "\n";

    
$csv_enclosed '"';
    
$csv_escaped "\\";
    if(
$datum==0){
    
$sql_query "select id as ID , anrede as Anrede , vorname as Vorname , name as Name , strasse as Straße , plz as PLZ , ort as Ort , land as Land ,   tel as Telefon , fax as Telefax , email as EMail , zusatz_1 as Bestelldatum_JJJJMMTT ,  anmerkungen as Anmerkungen , anmerkungen_2 as Extra from ".$table." where  beitrag_id=".$id." and send=0 ";
     }
    if(
$datum!=0){
    
    
$sql_query "select id as ID , anrede as Anrede , vorname as Vorname , name as Name , strasse as Straße , plz as PLZ , ort as Ort , land as Land ,   tel as Telefon , fax as Telefax , email as EMail ,   zusatz_1 as Bestelldatum_JJJJMMTT ,  anmerkungen as Anmerkungen , anmerkungen_2 as Extra from ".$table." where  beitrag_id=".$id." and send_date=".$datum." ";
    
    
$jahr substr($datum04);
    
$monat substr($datum42);
    
$tag substr($datum62);
    
    
$filename="TAMBIENTE_".$thema."_Anfragen_".$tag."-".$monat."-".$jahr.".csv";
    }
    
// Gets the data from the database
    
$result mysql_query($sql_query);
    
$num_rows mysql_num_rows($result);
    
$fields_cnt mysql_num_fields($result);
    

 
    
$schema_insert '';
 
    for (
$i 0$i $fields_cnt$i++)
    {
        
$l $csv_enclosed str_replace($csv_enclosed$csv_escaped $csv_enclosed,
            
stripslashes(mysql_field_name($result$i))) . $csv_enclosed;
        
$schema_insert .= $l;
        
$schema_insert .= $csv_separator;
    } 
// end for
 
    
$out trim(substr($schema_insert0, -1));
    
$out .= $csv_terminated;
 
    
// Format the data
    
while ($row mysql_fetch_array($result))
    {
        
$schema_insert '';
        for (
$j 0$j $fields_cnt$j++)
        {
            if (
$row[$j] == '0' || $row[$j] != '')
            {
 
                if (
$csv_enclosed == '')
                {
                    
$schema_insert .= $row[$j];
                } else
                {
                    
$schema_insert .= $csv_enclosed 
                    
str_replace($csv_enclosed$csv_escaped $csv_enclosed$row[$j]) . $csv_enclosed;
                }
            } else
            {
                
$schema_insert .= '';
            }
 
            if (
$j $fields_cnt 1)
            {
                
$schema_insert .= $csv_separator;
            }
        } 
// end for
 
        
$out .= $schema_insert;
        
$out .= $csv_terminated;
    } 
// end while
 
    //header("Cache-Control: public, must-revalidate");
    
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    
header("Content-Length: " strlen($out));
    
// Output to browser with appropriate mime type, you choose ;)
    
header("Content-type: text/x-csv");
    
header("Content-type: text/csv");
    
//header("Content-type: application/csv");
    
header("Content-Disposition: attachment; filename=$filename");
    
    echo 
$out;
    
    if(
$del=='ja'){
    
//$sql="update  ".$table." (anfrage_id , beitrag_id) select id , beitrag_id  from ".$table." where  beitrag_id=".$id." ";
    
$sql="update  ".$table."  set send=1 , send_date='".date("Ymd")."' where   beitrag_id=".$id." and send=0  ";
    
mysql_query($sql);
    }
    exit;
 
}
 



$table $DB_user_anfragen// this is the tablename that you want to export to csv from mysql.

if(!isset($_GET["datum"])){
$dat=0;
}
else{
$dat=$_GET["datum"];
}
 
exportMysqlToCsv($table $_GET["id_b"] , "TAMBIENTE_".$_GET["thema"]."_Anfragen_".date("d-m-Y").".csv" $DB_tambiente_anfragen_send $_GET["del"] , $_GET["export"] , "".$_GET["thema"]."" $dat );

?>
J_Jara ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.01.2012, 10:50  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

das liegt wohl an deinen headern ....

ich selbst sah mich da mit ähnlichen Problemen konfrontiert und habe in einem anderen Forum folgendes gefunden:

PHP-Code:
$Datei//"pfad/dateiname";
if (file_exists($Datei)) {
   
$Dateiname basename($Datei);
   
$Groesse filesize($Datei);
   
$file=fopen($Datei,'r');
   
set_time_limit(0);
   if (
$file) {
      
header("Pragma: public");
      
header("Expires: 0");
      
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
      
header("Cache-Control: private",false);
      
header("Content-Type: application/force-download");
      
header("Content-Type: application/octet-stream");
      
header("Content-Type: application/download");
      
header("Content-Disposition: attachment; filename=\"".$Dateiname."\";");
      
header("Content-Description: File Transfer");
      
header("Content-Transfer-Encoding: binary");
      
header("Content-Length: ".$Groesse );
      
flush();
      while (!
feof($file)) {
         print(
fread($file,4096));
         
flush();
      }
   }
   
fclose($file);
   die();

- natürlich müsstest du dazu deine CSV erstmal temporär als Datei speichern, damit du dem Browser gleich die Größe der herunter zu ladenden Datei mitteilst. Aber vielleicht kannst du das ja modifizieren
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 27.01.2012, 10:51  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Ich meine, daß IE diesen Content-Type benötigt:
PHP-Code:
header("Content-Type: application/octet-stream"); 
sollte dann auch so in den richtigen Browsern funktionieren, wenn ich mich nicht irre...

OK... eagle war schneller und ausführlicher...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein

Geändert von Arne Drews (27.01.2012 um 10:52 Uhr). Grund: zu laaaaahm
Arne Drews ist offline   Mit Zitat antworten
Alt 27.01.2012, 10:55  
Erfahrener Benutzer
 
Registriert seit: 15.04.2008
Beiträge: 147
J_Jara befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank. Jetzt habe ich nur das Problem das ich es leider nicht richtig testen kann. Die IE Erweiterung für Firefox oder Chome sind bei dieser Thematik nicht zu gebrauchen. Kennt jemand von euch die richtige Lösung um die Browser zu testen?
J_Jara ist offline   Mit Zitat antworten
Alt 27.01.2012, 10:57  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Kennt jemand von euch die richtige Lösung um die Browser zu testen?
Die Browser installieren...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 27.01.2012, 11:43  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

eh wie jetzt ? du hast Firefox mit IE -Erweiterung , also Windows ? OHNE IE ???? es gibt aber ein "Testpaket" dass den Code der älteren IE-Versionen verfügbar macht, wenn du selbst auf IE 9 sitzt

einfach mal google bemühen
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 27.01.2012, 12:30  
Erfahrener Benutzer
 
Registriert seit: 15.04.2008
Beiträge: 147
J_Jara befindet sich auf einem aufstrebenden Ast
Standard

Das hier klapt. was haltet ihr davon? kanmann etwas zufügen oder ersetzen?

Danke nochmals!!

PHP-Code:
function using_ie() 

    
$u_agent $_SERVER['HTTP_USER_AGENT']; 
    
$ub False
    if(
preg_match('/MSIE/i',$u_agent)) 
    { 
        
$ub True
    } 
    
    return 
$ub

if (
using_ie()) {
header("Pragma: public");  
header("Content-Type: application/csv");
header("Content-Disposition: attachment; filename=$filename");
}
else{
 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " strlen($out));
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=$filename");

J_Jara ist offline   Mit Zitat antworten
Alt 27.01.2012, 12:50  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Ausser daß der User-Agent keine zuverlässige Quelle ist, ist daran nichts auszusetzen...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 27.01.2012, 12:53  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Also bei mir reichte bisher (FF, IE8 ) :
PHP-Code:
    header("Content-Type: text/csv;"); //Mimetype zum Browser senden
    
header("Content-Disposition: attachment; filename=.."); 
jspit 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
PHP Download Problem eistee PHP Einsteiger 33 30.12.2010 23:11
Sicheren Download... Problem :( SteVOOO PHP Einsteiger 8 29.11.2010 15:55
Problem mit PHP Download per Header Befehl Kingkarule PHP Tipps 2010 8 22.11.2010 16:12
Kann man mit einem eingebundenem PHP Skript auf den Text einer HTML-Seite zugreifen? HottiWF PHP Tipps 2010 10 18.03.2010 18:20
ftp_get() - Problem beim Download mehrerer Dateien Destruction PHP Tipps 2010 8 12.02.2010 19:54
Problem beim Download Management mistermint PHP Tipps 2009 8 24.10.2009 11:34
perl skript aus php skript aufrufen axmuellser PHP Tipps 2009 1 16.04.2009 17:59
ein Skript startet ein zweites... ajo_silent PHP-Fortgeschrittene 8 03.05.2006 13:42
Skript &amp;amp;amp;quot;tarnen&amp;amp;amp;quot;? Off-Topic Diskussionen 17 07.08.2005 19:42
Download Problem PHP Tipps 2005-2 3 22.07.2005 16:11
[Erledigt] File download &gt; kleines Problem PHP Tipps 2005 3 11.05.2005 23:11
Problem mit Datei Download PHP Tipps 2005 5 13.03.2005 14:38
[Erledigt] ZIP Download - Header Problem PHP-Fortgeschrittene 1 19.08.2004 02:41
Ordner per Skript erstellen --> Rechte Problem PHP Tipps 2004 2 06.07.2004 14:19
PHP Download Problem PHP Tipps 2004 4 05.07.2004 15:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php csv download ie7 ie8, header content-disposition attachment filename csv, ie 8 php content-disposition, ie8 csv export geht nicht, header(\content-type: application/force-download\) problem ie8, csv download php funktion, .csv download, php $num_rows csv, ie8 csv download, csv download java ie6, ie csv download probleme, php ie6 csv download, php header download ie8, php download script does not work in ie8

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