Anzeige:
Ergebnis 1 bis 13 von 13

Thema: http verbindung schließen

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657

    http verbindung schließen

    Hallo,

    ich suche eine Möglichkeit um die Ausgabe zum Browser zu beenden.
    (Also konkret die TCP Verbindung zu schließen)
    Das PHP Script soll allerdings noch weiterlaufen.

    Jemand ne Idee?

    Gruß Markus

  2. #2
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von msi Beitrag anzeigen
    Hallo,

    ich suche eine Möglichkeit um die Ausgabe zum Browser zu beenden.
    (Also konkret die TCP Verbindung zu schließen)
    Das PHP Script soll allerdings noch weiterlaufen.

    Jemand ne Idee?

    Gruß Markus
    fclose( $ilu );
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    Zitat Zitat von Romanday Beitrag anzeigen
    fclose( $ilu );
    was soll denn $ilu sein. Bei mir geht das jedenfalls nicht $ilu kennt er nicht.
    bist du sicher, dass PHP die Verbindung zum Webbrowser auch in so einer
    Stream Ressource ablegt, die man mit fclose schließen kann? Gefunden habe ich dazu jedenfalls nichts

  4. #4
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von msi Beitrag anzeigen
    was soll denn $ilu sein.
    Iluminaten

    Ne, dein Filepointer. Kannst auch $pumpe schreiben.
    Den Namen kanst Du dir selber aussuchen.

    fopen() binds a named resource, specified by filename, to a stream. If filename is of the form "scheme://...", it is assumed to be a URL and PHP will search for a protocol handler (also known as a wrapper) for that scheme. If no wrappers for that protocol are registered, PHP will emit a notice to help you track potential problems in your script and then continue as though filename specifies a regular file.

    http://www.php.net/manual/en/function.fopen.php
    Geändert von Romanday (07-12-2006 um 20:05 Uhr)
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  5. #5
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    Zitat Zitat von Romanday Beitrag anzeigen
    Iluminaten

    Ne, dein Filepointer. Kannst auch $pumpe schreiben.
    Den Namen kanst Du dir selber aussuchen.

    fopen() binds a named resource, specified by filename, to a stream. If filename is of the form "scheme://...", it is assumed to be a URL and PHP will search for a protocol handler (also known as a wrapper) for that scheme. If no wrappers for that protocol are registered, PHP will emit a notice to help you track potential problems in your script and then continue as though filename specifies a regular file.

    http://www.php.net/manual/en/function.fopen.php
    das Problem ist halt, dass ich keinen Filepointer für die HTTP Verbindung habe.
    Die macht ja nicht PHP auf, sondern der Browser zu dem Webserver. Der Webserver führt dann PHP aus und schließt die Verbindung wenn das PHP Script sich beendet.

    Ich suche nun eben eine Möglichkeit diese Verbindung zu schließen OHNE dabei das PHP Script zu beenden.

  6. #6
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von msi Beitrag anzeigen
    Ich suche nun eben eine Möglichkeit diese Verbindung zu schließen OHNE dabei das PHP Script zu beenden.
    Verstehe zwar nicht den Sinn wozu man so braucht? Aber gut.
    Das passiert normalerweise alles automatisch.

    Du kannst ja mal den bisheriges Script posten.
    Ansonsten mußt du die Seite per Script per PHP anfordern, dann
    kannst Du auch an jeder beliebigen Stelle deine Anforderung schließen.

    Sprich du mußt dir deinen eigenen Header Schreiben.
    Dann gibt auch bestimmt irgendeine close o. ä. Anweisung, mit der Du die
    Verbindung schließen kannst. Mußt dir mal das HTTP Protokoll anschauen.

    (In Perl, Python ist da viel mehr Zeck, Meck. Das ist doch gerade
    das Schöne das du dich in PHP um solche Dinge nicht kümmern mußt.?)
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  7. #7
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Vielleicht hilft dir der http-header content-lenght?
    Wenn du den inhalt nur vorzeitig ausgeben willst, hilft dir auch ein @ob_flush(). Der Inhalt wird dann schon an den Client gesendet, während das script noch läuft. Allerdings: Der Ladebalken im Browser wird angezeigt, bis das Script vollständig durch ist.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  8. #8
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von Turbohummel Beitrag anzeigen
    Vielleicht hilft dir der http-header content-lenght?
    Dann muß er ja vorher wissen, wieviel er haben will.

    Msi soll mal ein Beispiel nennen, wozu man soetwas braucht!
    Gibt bestimmt eine Lösung, ohne das man in die Übertragung
    der Daten eingreifen muß.

    Auf TCP Ebene müßte man die Sitzung per Packet beenden.
    Meines Wissens kann PHP solche Pakete nicht versenden.
    Geändert von Romanday (09-12-2006 um 10:23 Uhr)
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  9. #9
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    hallo,

    ich habe ein Script, welches sich um den Import von Excel Dateien in eine Datenbank kümmert (PHP Script).

    Damit die Anwender allerdings auch mehrere Dateien gleichzeitig importieren
    können, benutze ich das JUpload Formular, dort kann man mehrere Dateien
    auswählen. Wenn man absenden klickt, wird Datei für Datei (nacheinander) an das PHP Script geschickt (hochgeladne). Der JUpload wartet jedoch, bis
    die Verbindung vom Upload geschlossen wird und macht erst danach weiter.

    Da jedoch der Import länger dauert (es müssen noch aufwändige Überprüfungen durchgeführt werden), möchte ich, dass der JUpload
    nicht wartet, bis der Import fertig ist, sondern jede Datei gleich hochläd.

    Da ich kein Java beherrsche, und JUpload nicht umschreiben kann, bleibt mir
    nur diese Möglichkeit.

  10. #10
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von msi Beitrag anzeigen
    Da jedoch der Import länger dauert (es müssen noch aufwändige Überprüfungen durchgeführt werden), möchte ich, dass der JUpload
    nicht wartet, bis der Import fertig ist, sondern jede Datei gleich hochläd.
    Schwups da haben wir es doch. Das kann doch nicht funktionieren.
    A) Der Upload und Import ist abhängig von der Größe der Datei,
    Geschwindigkeit der Datenübertragung des Client + Einstellungen
    in der php.ini.
    Die größten Probleme treten auf wenn die Datei zu groß ist, und die
    Upload Geschwindigkeit de clients zu klein ist.

    Vorschlag: Verabschiede dich von deiner Idee.

    Mach ein vernünftiges
    Formular und verständlichen Fehlermeldungen. Wenn der Client
    mehrere Files hochladen soll, halte die noch Files welche noch hochzuladen
    sind in einer Session vorätig. Hat der erste Upload funktioniert,
    folgt der nächste usw. Ob alle Clients dabei mitspielen weiß ich nicht.
    Zur Sicherheit ein Logfile für die Aktion mitlaufen laufen, um zu wissen
    wo es wiederhohlt zu Abbrüchen oder Problemen kam.

    Viel Glück
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  11. #11
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    Zitat Zitat von Romanday Beitrag anzeigen
    Schwups da haben wir es doch. Das kann doch nicht funktionieren.
    A) Der Upload und Import ist abhängig von der Größe der Datei,
    Geschwindigkeit der Datenübertragung des Client + Einstellungen
    in der php.ini.
    Die größten Probleme treten auf wenn die Datei zu groß ist, und die
    Upload Geschwindigkeit de clients zu klein ist.

    Vorschlag: Verabschiede dich von deiner Idee.

    Mach ein vernünftiges
    Formular und verständlichen Fehlermeldungen. Wenn der Client
    mehrere Files hochladen soll, halte die noch Files welche noch hochzuladen
    sind in einer Session vorätig. Hat der erste Upload funktioniert,
    folgt der nächste usw. Ob alle Clients dabei mitspielen weiß ich nicht.
    Zur Sicherheit ein Logfile für die Aktion mitlaufen laufen, um zu wissen
    wo es wiederhohlt zu Abbrüchen oder Problemen kam.

    Viel Glück
    was soll da nicht funktionieren?
    im moment läufts halt so, dass der jupload die dateien nacheinander hochläd.
    nach jedem upload wartet er dann eben bis der import vollständig ist (da steht dann nur dran warte auf serverantwort). Erst wenn das PHP Script fertig ist, wird die nächste Datei hochgeladen.

    Das ganze funktioniert wunderbar, nur möchte ich halt, dass der JUpload nicht wartet bis der ganze import fertig ist, sondern gleich die nächste datei uploaded wenn die 1. oben ist. Dazu muss PHP die Verbindung schließen.

    die php.ini hab ich natürlich so angepasst, dass alle unsere XLS Dateien genommen werden. Auch die Geschwindigkeit des Uploads ist kein Flaschenhals, geschieht ja meistens im LAN. Nur die Überprüfungen sind
    halt ads Problem. Natürlich wird alles mitgeloggt, so dass die User sehen können, wenn Fehler aufgetreten sind, aber darum gehts hier nicht.



    Nachtrag:
    das PHP Script wird erst ausgeführt, wenn der Upload komplett ist. Deswegen kann das PHP Problem ohne Probleme gleich die Verbindung schließen (Datei ist ja da).

  12. #12
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Ich würde hier das Problem bei JUpload suchen. Sprich: Starte den Upload des 2. Scripts, wenn die erste File übertragen ist.

    Schreibe die Datei komplett in eine Datenbank.
    Ein Cron führt dannregelmäßig die Prüfungen durch und schreibt deine Daten.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  13. #13
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    Zitat Zitat von Turbohummel Beitrag anzeigen
    Ich würde hier das Problem bei JUpload suchen. Sprich: Starte den Upload des 2. Scripts, wenn die erste File übertragen ist.

    Schreibe die Datei komplett in eine Datenbank.
    Ein Cron führt dannregelmäßig die Prüfungen durch und schreibt deine Daten.
    wie bereits geschrieben will ich den JUpload nicht ändern, da ich kein Java beherrsche.
    Und nein die Überprüfung wird direkt durchgeführt, durch das PHP Script, welches es scho gibt, eben weil es auch Einzelimporte gibt. So dass die Nutzer dann gleich ihre Fehlermeldung kriegen.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •