Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Ajax Header Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Ajax Header Problem

    Hi,

    Ich schicke einen JSON String an ein php-Skript welches daraus ein Excel-File generiert, als XML den link zum file an den client zurueckschickt und dieser ihn dann oeffnet!

    Soweit so gut, allerdings beim erstellen des Excel-Skript wird ein Header erzeugt, und deswegen bekomme ich beim erstellen der xml-response eine Fehlermeldung! Header already been sent! Verzichte ich beim XML auf den Header kommt nur null an, setze ich die Header erstellung an den anfang des Skriptes kommt:

    XML Parsing Error: junk after document element
    Location: http://jonas.rottmann-moebel.de/Mein...94509006778633
    Line Number 1, Column 82:

    Weiss jmd wie ich dieses Problem loesen kann?
    Danke schonmal fuer Eure Hilfe
    Thorus
    http://rottmann-moebel.de/

  • #2
    Shick mal dein Quellcode.. so können wir nur raten.. wie zb. stehen vllt irgendwelche echos vor dem eruzeugen des documents?
    apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

    Kommentar


    • #3
      Das PHP-Skript:

      <?
      /*including phpexcel class*/



      $JSN = $_POST["JSN"];
      $JSN = stripslashes($JSN);
      $result = json_decode($JSN,true);
      $objPHPExcel = new PHPExcel();

      $objPHPExcel->setActiveSheetIndex(0);

      $column = 0;
      $row = 1;
      foreach ($result as $key){
      foreach ($key as $element){
      $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($column,$row, $element);
      $column++;
      if ($column == 10){
      $column = 0;
      $row++;
      }
      }
      }


      $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

      $objWriter->save('/var/www/web502/html/Jonas/Meins/hallo.xls');

      //header erzeugen



      $file = 'http://jonas.rottmann-moebel.de/Meins/hallo.xls';
      echo '<a href="'.$file.'" target="_blank">BLA</a><br>';

      header('Content-Type: text/xml');
      echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
      echo '<response>';
      echo $file;
      echo '</response>';

      ?>
      http://rottmann-moebel.de/

      Kommentar


      • #4
        das hier

        PHP-Code:
        header('Content-Type: text/xml'); 
        steht immer am anfang(unter session_start(), falls vorhanden), davor darf keine ausgabe erfolgen, dieser header gilt dann für die gesamte datei unabhängig was drin passiert(es seidenn weiterleitung)
        apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

        Kommentar


        • #5
          mal abgesehen davon, warum gibst du erst einen Link aus:

          Code:
          echo '<a href="'.$file.'" target="_blank">BLA</a><br>';
          und danach erst den rest?

          Kommentar


          • #6
            Ok, aber dann hab ich das problem dass das Excel-File zwar generiert wird, ich aber das hier als ausgabe bekomme:

            XML Parsing Error: junk after document element
            Location: http://jonas.rottmann-moebel.de/Meins/div.php
            Line Number 1, Column 82:<a href="http://jonas.rottmann-moebel.de/Meins/hallo.xls" target="_blank">BLA</a><br><?xml version="1.0" encoding="UTF-8" standalone="yes"?><response>http://jonas.rottmann-moebel.de/Meins/hallo.xls</response>
            ---------------------------------------------------------------------------------^

            @cycap
            zum testen: ich kopiere den JSON-String von Hand in das Skript um auszuprobieren ob es denn funktioniert!
            http://rottmann-moebel.de/

            Kommentar


            • #7
              Hi,
              Wow genial, wenn ich das echo das gerade beanstanded wurde wegmache, bekomme ich keinen fehler mehr

              Danke @ all

              Mfg
              Thorus
              http://rottmann-moebel.de/

              Kommentar


              • #8
                ich denke es liegt am pfad, ich denke du kannst im XML nicht eine datei vom externen server laden. also müsste deine $file variable so lauten:

                $file = '/Meins/hallo.xls';

                bin mir nicht sicher aber versuchen , kostet nichts
                apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                Kommentar


                • #9
                  Nein, es liegt daran:
                  PHP-Code:
                  echo '<a href="'.$file.'" target="_blank">BLA</a><br>';

                  header('Content-Type: text/xml'); 
                  Headers already sent - PHP.de Wiki
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #10
                    habe ich schon im post Nr4 gesagt
                    apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                    Kommentar

                    Lädt...
                    X