Ankündigung

Einklappen
Keine Ankündigung bisher.

Code oder Serverproblem

Einklappen

Neue Werbung 2019

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

  • RobertRW
    hat ein Thema erstellt Code oder Serverproblem.

    Code oder Serverproblem

    Hallo Freunde,
    ich habe eine einfache Datenerfassung über ein Onlineformular in PHP erstellt.
    Die Datenbank, Formulare für die Eingabe der Daten und die gesamte Umgebung läuft hervorragend.
    Im letzten Schritt habe ich eine Klasse mit deren Hilfe ich mein Datenbestand in Excel.xls ausgeben möchte. (Klasse bekannt als: PHPExcel)
    Und hier liegt mein Problem:
    Auf dem localhost läuft der PHP-Code fehlerfrei, eine *.xls wird wie erwartet generiert und ausgegeben, doch auf dem Webserver wird die Ausgabe der Seite gleich am Anfang des Codes bei Aufruf von: require_once 'Classes/PHPExcel.php' ; unterbrochen und mit einer leeren, weißen Seite quittiert.
    Bzw. je nach Fall der erste Aufruf der Seite ist erfolgreich, bei den nächsten Aufrufen folgt nur eine leere Seite im Browser.
    Doch aber wird im PHP-Code die Zeile: require_once 'Classes/PHPExcel.php' ; auskommentiert, erstaunlicher Weise wird der erste Aufruf manchmal ausgeführt, auf die folgenden Versuche folgt dann aber immer eine leere Seite. Wie gesagt; auf dem localhost läuft alles anstandslos!
    Gebe es einen Fehler in der Klasse, würde localhost (xxamp) auch streiken, doch dieser funktioniert hier fabelhaft.

    Im Voraus lieben Dank für eure Mühe

    LG. Robert

  • RobertRW
    antwortet
    Zitat von hellbringer Beitrag anzeigen
    Solange du nicht ein konkretes kleines Beispiel zeigst, bei dem das Problem nachvollziehbar auftritt, ist das sowieso nur Herumraterei.
    Sorry, es war nur eine Überlegung - ich habe nur laut nachgedacht.
    Das Problem ist bekannt und ihr habt mir mit euren Vorschlägen dabei auch sehr weiter geholfen. Eure Lösung werde ich sobald ich dazu komme dankend in Anspruch nehmen.

    Danke für eure Unterstützung, vielleicht kann ich mich mal demnächst mit meiner Unterstützung bei euch revangieren.

    Viele Grüße und viel Spaß beim Programmieren

    Einen Kommentar schreiben:


  • hellbringer
    antwortet
    Solange du nicht ein konkretes kleines Beispiel zeigst, bei dem das Problem nachvollziehbar auftritt, ist das sowieso nur Herumraterei. Wenn du willst, dass sich jemand konkret deine Situtation am Server ansieht, solltest du einen Jobangebot erstellen. Ich sehe nicht, wie hier ein Forum weiterhelfen können soll. Einen Lösungsweg (auf Spreadsheet updaten) wurde dir bereits genannt. Was du daraus machst, liegt bei dir.

    Einen Kommentar schreiben:


  • RobertRW
    antwortet
    Zitat von Zeichen32 Beitrag anzeigen
    Dann versuch dich halt mal am Nachfolger von PHPExcel welches noch aktiv weiterentwickelt wird:
    https://github.com/PHPOffice/PhpSpreadsheet
    Ja, danke für deinen Tipp, den werde ich ausprobieren (müssen).
    Was mich aber trotzdem nachdenklich macht ist Tatsache, daß direkt nach dem Upload auf den Host der Excelexport ganz gut funktioniert hat. Ich habe mehrere Excelabzüge downloaden können, mein Projekt war somit zu diesem Zeitpunkt abgeschlossen.
    Ich kann mich heute an die Anzahl der Tests damals nicht mehr erinnern, es sind aber mit Sicherheit mehr als nur eins gewesen.
    Das ganze hat also vor einigen Tagen noch gut funktioniert.
    Erst später dann konnte ich es nicht glauben, als ich nach ca. 1 Woche die Ausgabe erneut aufgerufen und eine leere Seite direkt nach dem Aufruf angezeigt bekommen habe.
    Hat da inzwischen der Schutz auf dem Host die PHPExcel gescannt, die Inhalte als Kritsch eingestuft und gesperrt?
    Ich meine, was einmal funktioniert hat, funktioniert grundsätzlich auch immer. Was ist das Problem? Was ist heute anders als es noch vor zwei Wochen gewesen ist?
    Nach der Pfadanpassung bekomme ich jetzt einen anderen Fehler:
    AH01071: Got error 'PHP message: PHP Fatal error:
    Uncaught Error: Class 'PHPExcel_Shared_String' not found in /var/www/vhosts/xxx.org/httpdocs/kfvfs/Classes/PHPExcel/Autoloader.php:11\n
    Stack trace:\n
    #0 /var/www/vhosts/xxx.org/httpdocs/kfvfs/Classes/PHPExcel.php(6): require()\n
    #1 /var/www/vhosts/xxx.org/httpdocs/kfvfs/resource/abegehungphp.php(11): require_once('/var/www/vhosts...')\n
    #2 /var/www/vhosts/xxx.org/httpdocs/kfvfs/abegehung.php(4): include('/var/www/vhosts...')\n
    #3 {main}\n thrown in /var/www/vhosts/xxx.org/httpdocs/kfvfs/Classes/PHPExcel/Autoloader.php on line 11\n'

    Und das hier ist der Anfang der Autoloader.php:

    PHPExcel_Autoloader::register();
    // As we always try to run the autoloader before anything else, we can use it to do a few
    // simple checks and initialisations
    //PHPExcel_Shared_ZipStreamWrapper::register();
    // check mbstring.func_overload
    if (ini_get('mbstring.func_overload') & 2) {
    throw new PHPExcel_Exception('Multibyte function overloading in PHP must be disabled for string functions (2).');
    }
    PHPExcel_Shared_String::buildCharacterSets();


    Einen Kommentar schreiben:


  • jonas3344
    antwortet
    Ist auch sehr ähnlich, also wenn du das mit PHPExcel zu Stande gebracht hast wirst du das auch mit dem Nachfolger hinbekommen.

    Einen Kommentar schreiben:


  • Zeichen32
    antwortet
    Dann versuch dich halt mal am Nachfolger von PHPExcel welches noch aktiv weiterentwickelt wird:
    https://github.com/PHPOffice/PhpSpreadsheet

    Einen Kommentar schreiben:


  • RobertRW
    antwortet
    Zitat von Zeichen32 Beitrag anzeigen
    Wenn es nur eine reine Tabelle ist, reicht meistens ja schon eine CSV Datei welche man dann in Excel öffnen kann.
    Nein, als Ausgabe brauche ich eine sauber formatierte Exceltabelle, die per Button downgeladet und ohne zusätzlichen Aufwand direkt an diverse Behörden verteilt werden kann.
    Für sonstige Zwecke werden bereits diverse CSV-Abzüge gefertigt und downgeladet, das hat bisher auch hervorragend geklappt.

    Einen Kommentar schreiben:


  • tomBuilder
    antwortet
    Zitat von RobertRW Beitrag anzeigen
    Ja, hausl hat Recht, es liegt an PHPExcel bzw. die PHPExcel ist mit PHP7 nicht kombatibel.
    Hat jemand eine Idee wie man eine SQL bzw Tabelle als *.xls am einfachsten ausgeben kann? (Daten aus MariaDB via Onlineformular als Exceltabelle downloaden kann)
    lies dir doch bitte noichmals #2 durch

    Einen Kommentar schreiben:


  • Zeichen32
    antwortet
    Wenn es nur eine reine Tabelle ist, reicht meistens ja schon eine CSV Datei welche man dann in Excel öffnen kann.

    Einen Kommentar schreiben:


  • RobertRW
    antwortet
    Ja, hausl hat Recht, es liegt an PHPExcel bzw. die PHPExcel ist mit PHP7 nicht kombatibel.
    Hat jemand eine Idee wie man eine SQL bzw Tabelle als *.xls am einfachsten ausgeben kann? (Daten aus MariaDB via Onlineformular als Exceltabelle downloaden kann)

    Einen Kommentar schreiben:


  • protestix
    antwortet
    Bei include solltest immer mit absoluten Pfaden arbeiten. Ich denke da rührt das Problem her. Dann macht es auch Sinn das es local geht und auf dem Server nicht.


    Einen Kommentar schreiben:


  • RobertRW
    antwortet
    Zitat von tomBuilder Beitrag anzeigen

    hast Du das auch installiert auf dem server, oder nur local.
    Ich habe die Anwendung vorletztes Jahr auf den Webserver übertragen und unsere Angler haben letztes Jahr ihre Begehungen online erfasst.
    Für dieses Jahr habe ich die Anwendung um den Excel-Export erweitern wollen. Lokal auf dem localhost funktioniert der Download der Daten nur auf dem Webserver bekomme ich beim Aufruf der Seite eine leere Seite im Browser.
    Irgendwie schaut das alles nach einem Überlagerungsproblem aus, denn nach dem Hochladen der Module sind anfangs einige Aufrufe möglich, der Fehler ist nach dem ersten Upload erst am nächsten Tag aufgetreten.
    Und genauso ist es wenn ich die require auf dem Webserver auskommentiere, dann wird die Seite einmalig geladen und die Excelausgabe wird auch erzeugt - ohne den Verweis auf die Klasse: require_once 'Classes/PHPExcel.php'
    Ich vermute, dass irgendwelche Bestandteile der Module irgendwo im Cache hängen bleiben, wie könnte man das Phänomen sonst noch erklären?

    Einen Kommentar schreiben:


  • tomBuilder
    antwortet
    Zitat von RobertRW Beitrag anzeigen
    Wie gesagt, die Class kann nciht gefunden werden doch auf dem localhost wird sie geladen und die Anwendung läuft.
    Macht es ggf. Sinn alle Pfade und Namen in Kleinbuchstaben umzuschreiben?
    Es ist eine Fangstatistik für meinen Angelverein. Die Anwendung habe ich vor zwei Jahren geschrieben, aktuell nur um die PHPExcel erweitert (bzw. erweitern wollen)
    hast Du das auch installiert auf dem server, oder nur local.
    nein nur kleinbuchstaben machwen keinen sinn s.o.

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Unter Linux ist haus nicht Haus und nicht HAUS, unter Windows schon.

    Einen Kommentar schreiben:


  • hellbringer
    antwortet
    Zitat von RobertRW Beitrag anzeigen
    Ich habe nur überlegt ob der Webserver damit irgendwie Problem haben kann und der Aufwand alle Pfade in Kleinbuchstaben umzuschreiben sich mal lohnt denn sonst kann ich keine signifikante Fehlerquelle erkennen.
    Nein, ob du Groß- oder Kleinbuchstaben in Datei- oder Verzeichnisnamen verwendest, ist egal. Wichtig ist nur, dass sie in den Pfadangaben gleich sind.

    Einen Kommentar schreiben:

Lädt...
X