Premature end of script headers

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

  • Premature end of script headers

    Moin Moin,

    hier das Script:

    Code:
    include ($_SERVER['DOCUMENT_ROOT'].'/upload/pass.php');
    $row = 1;
    $handle = fopen ("http://www.meine-domo.de/upload/produkte.csv","r"); 
    while ( ($data = fgetcsv ($handle, 100000,"|")) !== FALSE ) 
    { 
    $num = count ($data);
    $insert_csv = "INSERT INTO test";
    $insert_csv.= "(id,name,hsnr,ort,img,url,gebd,nr,pers,anr,schu,etc,versch,hobby,divers) ";
    $insert_csv.= "VALUES ";
    $insert_csv.= "('$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data']', '$data[5]', '$data[6]'
    , '$data[7]', '$data[8]', '$data[9]', '$data[10]', '$data[11]', '$data[12]', '$data[13]', '$data[14]')";
    mysql_query($insert_csv);
    }
    fclose ($handle);

    auf ca. 5 anderen Servern läuft das Script einwandfrei. Es schaufelt mir,egal wieviel, Einträge in die DB.

    Auf einen neuen Server (Provider) bekomme ich allerdings diese fehlermeldung vorgestetzt:

    Code:
    Serverfehler!
    Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. 
    
    Fehlermeldung: 
    Premature end of script headers: upload.php 
    
    Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber. 
    
    Error 500
    [url]www.meine-domo.de[/url]
    Sat May 13 11:19:00 2006
    Apache/2.0.54 (Debian GNU/Linux)
    Es werden jedoch unterschiedlich viele Einträge in der DB vorgenommen, nur leider nie alle.
    Einmal sind es 1000 Zeilen ein anderes mal 9000..... usw.

    Ich vermute das es etwas mit der Scipt-Laufzeit zu tun hat und das PHP das Script nach einer vorgebenen Zeit beendet.
    Ich weiss es allerdings nicht wirklich und daher suche ich hier nach Hilfe!

    mfg
    Pretender
    Zuletzt geändert von Pretender; 13.05.2006, 13:16.
    wer nicht fragt.......
    Pretender

  • #2
    Bitte brich deinen Code so um, daß man nicht mehr nach rechts scrollen muß!

    Wie lange läuft denn das Script und wie verhält sich das zu max_execution_time in der php.ini?

    Kommentar


    • #3
      oh, habe ich übersehen
      wer nicht fragt.......
      Pretender

      Kommentar


      • #4
        was sind script headers?

        Kommentar


        • #5
          Original geschrieben von onemorenerd
          Wie lange läuft denn das Script und wie verhält sich das zu max_execution_time in der php.ini?

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Re: Premature end of script headers

            Original geschrieben von Pretender
            auf ca. 5 anderen Servern läuft das Script einwandfrei. Es schaufelt mir,egal wieviel, Einträge in die DB.
            Was ist dein business?

            Kommentar


            • #7
              Ich habe leider keinerlei Zugriff auf die php.ini und kann daher nix zu sagen was da drin steht.

              das Script läuft ca. 20 sek, dann kommt die Fehlermeldung. Bis dahin hat das Script zwischen 1500 und 11000 Zeilen in die DB geschrieben.


              Bin im SEO und Marketing Business. Was hat das aber mit der Anzhal der Server zu tun?


              Ich habe auch noch ein anderes Problem mit diesem Provider. Ich wollte eine zentrale News Seite includieren. Die Seite liegt auf einem bestimmten Server und von allen anderen Servern, includiere ich dieses Script auf einige ausgewählte Seiten.
              Allerdings wird dieses (includieren von http://...) nicht zugelassen und ich bekomme als labidaren Anwort vom Support:

              Code:
              ... Jedoch ist es aus sicherheitstechnischen Gründen nicht möglich URL's zu
              inkludieren.

              Das ist der 1. Provider der kein "externes" include zulassen will.

              Kann man das Script-Technisch irgendwie umgehen?
              wer nicht fragt.......
              Pretender

              Kommentar


              • #8
                Original geschrieben von Pretender
                Ich habe leider keinerlei Zugriff auf die php.ini und kann daher nix zu sagen was da drin steht.
                ini_get()

                Bin im SEO und Marketing Business.
                Also ein Linkfarmer? *adjustAttitude()*

                Das ist der 1. Provider der kein "externes" include zulassen will.
                Für dich mag das der erste sein, ich kenne schon viele, die ihre Kunden mit allow_url_fopen = off vor den Konsequenzen der eigenen Unzulänglichkeiten schützen ... nett ausgedrückt.
                Kann man das Script-Technisch irgendwie umgehen?
                Ja. Stichwort Socket.

                Kommentar


                • #9
                  hmmmmmm.

                  vielen Dank für Deine Antworten.
                  Ich bin allerdings nicht so der PHP Experte und kann mit den Brocken, die Du mir hingeworfen hast, leider nicht allzuviel anfangen.

                  Was macht man mit dem " ini_get()" ?

                  Unter einer Linkfarm, verstehe ich eine Sammlung von Links.
                  Dies hat jedoch nichts (meiner Meinung nach) mit einer Linkfarm zu tun, da ich keine Links sammle und auch keine externen Links anbiete, außer die "normalen" Linkpartner auf den Surftip-Seiten.

                  Ich finde das ein Provider dies in seinem Angebot zum Webhosting erwähnen sollte, daß er , meintwegen auch aus Sicherheitsgründen oder Selbstschutz, keine externen includes zulassen.
                  Ich hätte diese Domain auch auf meinem Strato Server portiert, doch leider ist dies eine .name Domain und die wird nicht unterstützt.

                  Mit dem Stichwort "socket" kann ich im Moment auch nix anfangen, da muss ich mich mal belesen, was man damit alles anstellen kann.
                  wer nicht fragt.......
                  Pretender

                  Kommentar


                  • #10
                    Original geschrieben von Pretender
                    Was macht man mit dem " ini_get()" ?
                    Man klickt drauf!

                    Kommentar


                    • #11
                      übersehen
                      wer nicht fragt.......
                      Pretender

                      Kommentar


                      • #12
                        Stichwort Socket: das war neulich im Papierkorb dieses Forums. HTH (ist sogar
                        einfacher als CURL)
                        PHP-Code:
                        $x "http://xxx.xx.com/xxx.php?"
                        ."id=xxxxxx&pw=xxxxxxf&was=".urlencode($was)."&wer=$wer&type=0";

                        $fp = @fsockopen(xxx.xx.com80$errno$error2);

                        if (
                        $fp){

                         @
                        fputs($fp"GET  $x HTTP/1.0\n");
                         @
                        fputs($fp"Content-type: application/x-www-form-urlencoded\n");
                         @
                        fputs($fp"Connection: close\n\n");

                         
                        $f='';
                         while (!@
                        feof($fp)){$f.= @fgets ($fp,256);}

                         @
                        fclose ($fp);

                        }
                        echo 
                        $x;
                        echo 
                        $f
                        Stichwort 20 Sekunden: dann hat er halt eine Skript-Laufzeitlimite, und Du bringst,
                        immerhin von extern, so-und-soviel Daten durch.

                        Stichwort allow_url_fopen: eine Einbruchstelle für Standardsoftware vor allem wenn
                        open-source und häufig verwendet. Eine noch so kleine Unachtsamkeit beim
                        Erstellen eines neuen release derselben, und die Räuber merken es. Jeder
                        vernünftige Hoster muss es ausschalten. Oder jemand bringt Software, die vor der
                        Erfindung von url_fopen geschrieben wurde und dagegen nicht geschützt ist.

                        edit: das Problem ist übrigens nicht fopen, sondern weil auch include darüber läuft.
                        edit: subtiler Fehler im php.
                        Zuletzt geändert von muh (newbie); 15.05.2006, 00:30.

                        Kommentar


                        • #13
                          Moin Moin,

                          hmmmm, das Script sieht interessant aus. Ich bekomme es aber leider nicht hin.
                          Kannst Du mir das Script einmal so zusammenstellen, als wenn ich zum Beispiel dieses Seite includieren wollte:

                          http://www.meine-include.de/meine-seite.php

                          wäre super dolle fein


                          Mit dem Script welches nach 20 Sek beendet wird, habe ich schon befürchtet, daß es etwas mit der Scriptlaufzeit zu tun hat. Nur, wieso machen die das?
                          Ich habe auf den anderen Servern auch eine Scriptlaufzeit eingstellt (auf meinem eigenen) und nachdem das Script beendet wird (ist) , dann werden die Daten trotzdem weiter in die DB geschoben.
                          Das soll heißen, ich kann das Script aufrufen und schließe die Seite nach , sagen wir einmal nach 10 Sekunden und die Daten werden trotzdem weiter in die DB geschoben.
                          Bei einem Server, der sehr ausgelastet war, hat es sogar über 45 Minuten gedauert, bis die Daten (89.000 Zeilen) in die DB geschrieben wurden. Ich habe in der Zeit das Script sogar umgeschrieben und eine neue CSV in eine neue Tabelle der selbigen DB geschrieben.
                          Alles ohne Problem.

                          Erst seit dem ich mit meiner .name Domain zu 1Blu gewechselt bin, habe ich diese 2 Probleme.
                          Bei Freenet, Strato & Hosteurope habe ich in diesen Beziehungen absolut keine Probleme und ich denke das diese Provider doch nicht gerade als kleine oder unerfahrene Provider anzusehen sind (Thema include).
                          wer nicht fragt.......
                          Pretender

                          Kommentar


                          • #14
                            Also das include Problem ist nun gelöst. Ich verwende jetzt folgendes Script

                            Code:
                            <?
                            $sFile = file_get_contents("http://www.meinedomain.de/include/news-laptop.php");
                            echo $sFile;
                            ?>

                            Hat jemadn eine Idee wie man das Script für das einfügen von csv Daten in eine DB ändern müsste um nicht die gesagt Fehlermeldung zu bekommen?
                            wer nicht fragt.......
                            Pretender

                            Kommentar


                            • #15
                              Refresh:

                              Hat keiner eine Idee wie man diese Fehlermeldung in den Griff bekommt?

                              Als Antwort habe ich vom 1Blu Support bekommen (nach 4 Wochen):

                              "Nach Klärung mit der Technik bitte ich Sie, dass Sie die Datei in kleineren
                              Stücken hochladen, damit Sie die Daten übertragen können."

                              Tja, also ich weiss nicht so recht was ich davon halten soll. Ich soll eine 150MB große CSV-Datei in 2 MB große Stücke teilen... genau das wollte ich in meiner Freizeit tun.
                              Ich habe mir extra das Script erstellt, damit ich alles auf einmal hochladen kann.....

                              wer nicht fragt.......
                              Pretender

                              Kommentar

                              Lädt...
                              X