ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
1372
1372
EMPFEHLEN
-
02.11.09 15:10 #1
Hallo Leute,
konnte meinen Titel leider nicht besser wählen.
Also was mache ich.
Ich habe ein Newsletterscript geschrieben welches über SMTP Mails jeweils einzeln an die Empfänger senden (persönliche Anrede im Newsletter).
Dazu sende ich, damit ich vom Server keinen Timeout bekomme, immer noch "Blöcke" mit z.Zt. 500 Mails gleichzeitig und rufe dann das Script mit einem Zeiger neu auf. Das funktioniert bestens.
Jetzt wollte ich einfach bei jedem Scriptdurchlauf auch einen Fortschritt angeben - dazu habe ich mal das Beispiel (ziemlich weit unten) von dieser Seite genommen und daraus folgendes Testscript gemacht:Jetzt würde ich ja erwarten, dass er alle 5 Sekunden einen neuen Fortschritt ausgibt - selbiges tut er aber nicht. Er ruft zwar die "Schleife" auf und sendet jeweils den neuen Header - eine Ausgabe erhalte ich aber erst nach dem letzten Durchlauf - also wenn die IF-Abfrage falsch (oder richtig - je nachdem wie man es sieht) wird.PHP-Code:<?php
ob_start();
echo "Fortschritt: ".$_GET['fortschritt']."%";
sleep(5); // Pause zum simulieren von größeren Operationen
if($_GET['fortschritt'] != 100) {
$fort = $_GET['fortschritt']+10;
header('Location: http://192.168.222.9/fortschritt.php?fortschritt='.$fort);
}
ob_end_flush();
?>
Hat jemand von euch eine Idee und kann mir auf die Sprünge helfen - gerne auch mit einem völlig anderen Lösungsansatz.Geändert von dwex (02.11.09 um 15:13 Uhr)
Ich würde mich über die Bewertung meiner Beiträge mit Kurzkommentar sehr freuen!
Die "dumme Frage" ist gewöhnlich das erste Anzeichen einer völlig neuen Entwicklung!
-------------------
Es ist immer Zeit etwas zu verändern ....
.... das alles so bleibt wie es ist!
-------------------
Homepage Landshut
-------------------
/voodoo.css
#meinFeind {position: absolute; bottom: -6ft;}
-
02.11.09 15:18 #2
- Registriert seit
- Nov 2007
- Beiträge
- 94
Das liegt auch daran das dein header nach 0 sekunden standart wert sich sezt.
versuch es mal hiermit damit gibst du das delay an. Musst du aber experimentieren mit den werten das es zufriedenstellend ist.PHP-Code:header('Location: http://192.168.222.9/fortschritt.php?fortschritt='.$fort , 5);
Oder du gehst über die "refresh" function:
letzter Code ist ungetestet sollte aber genauso funktionieren.PHP-Code:header('Refresh: 5; URL=http://192.168.222.9/fortschritt.php?fortschritt='.$fort);
Geändert von NoUse4aNick (02.11.09 um 15:21 Uhr)
-
02.11.09 15:31 #3
Hallo,
vielen Dank für deine schnelle Antwort.
Also erstere Variante funktioniert nicht bei mir - ich bekomme wieder keine Ausgabe (ausser am Schluss 100%)
Die zweite Variante funktioniert (auch mit Refresh: 0) - hierzu jedoch noch eine Frage:
Ist das gleichzusetzen mit der Meat-Refresh-Variante?
Wenn ja - SelfHTML schreibt ja das man sich auf Meta-Refresh nicht verlassen darf, da es vom Benutzer ggf. deaktiviert werden kann bzw. das dies evtl. nicht alle Browser unterstützten?Ich würde mich über die Bewertung meiner Beiträge mit Kurzkommentar sehr freuen!
Die "dumme Frage" ist gewöhnlich das erste Anzeichen einer völlig neuen Entwicklung!
-------------------
Es ist immer Zeit etwas zu verändern ....
.... das alles so bleibt wie es ist!
-------------------
Homepage Landshut
-------------------
/voodoo.css
#meinFeind {position: absolute; bottom: -6ft;}
-
02.11.09 15:51 #4
- Registriert seit
- Nov 2007
- Beiträge
- 94
Ja über die Header funktion bindest du meta tags ein. Allerdings nicht in HTML format sondern als HTTP rohform header.
Wie das ganze in der Praxis aussieht kann ich dir leider nicht sagen, da ich für solche ich nenne es jetzt mal "visuelle effekte" nicht php/html statisch auf animiert schummelein benutze sondern gleich auf Flash bzw Ajax zurückgreife.
Edit:
Ich glaube im ersten code ist ein syntax fehler:
versuch es am besten nochmal mit diesem Code, und poste das Ergebniss bitte würde mich interessieren =)PHP-Code:header('Location: http://192.168.222.9/fortschritt.php?fortschritt='.$fort.' , 5');
Geändert von NoUse4aNick (02.11.09 um 15:54 Uhr)
-
@NoUse4aNick: bist du dir sicher das du nicht das meta tag meinst
Hab jedenfalls noch nie von der Möglichkeit eines delays in der header funktion gehört. Zumal das auch nichts hilft.
Und selbst wenn es geht dann wird PHP Serverseitig ausgeführt. das heisst er wartet auch Serverseitig 5 Sekunden.
@dwex: Mit ob_start wartest du ausserdem bis zum Ende des Scripts bis er den Buffer ausgibt.
PHP wird Serverseitig ausgeführt und dann an den Clienten geschickt und zwar immer erst am Ende des Skripts.
Das was du umsetzen willst erfordert Ajax.Google und die Forensuche beantworten 50% aller Fragen!
Pflichtlektüre: Das PHP Handbuch als Windows Help Datei
Bitte Benutzt für Source-Code immer die richtigen Formatierungstags:
[PHP]Für PHP diese Tags[\PHP] ... [HTML]Für HTML diese Tags[\HTML] ... [SQL]Für SQL diese Tags[\SQL] ... [CODE]Für sonstigen Code[\CODE]
Wenn mein Beitrag hilfreich war bitte ich um eine positive Bewertung.
-
02.11.09 20:23 #6
- Registriert seit
- Nov 2007
- Beiträge
- 94
@ DaChris: Das ist was ich per Google gefunden habe. Ich benutze wie schon oben beschrieben solche Funktionen zum Animations Schummeln mit PHP nicht.
-
Mh ich weis nicht was du da gefunden hast aber wie gesagt ist es technisch schon garnicht möglich da PHP Serverseitig ausgeführt wird und dann der Content an den Client weitergeleitet wird.
Beide Inhalte die du gezeigt hast funktionieren höchstens in einem html metatag so wie du es beschreibst ist es nicht möglich das Problem zu lösen.Google und die Forensuche beantworten 50% aller Fragen!
Pflichtlektüre: Das PHP Handbuch als Windows Help Datei
Bitte Benutzt für Source-Code immer die richtigen Formatierungstags:
[PHP]Für PHP diese Tags[\PHP] ... [HTML]Für HTML diese Tags[\HTML] ... [SQL]Für SQL diese Tags[\SQL] ... [CODE]Für sonstigen Code[\CODE]
Wenn mein Beitrag hilfreich war bitte ich um eine positive Bewertung.
-
02.11.09 20:37 #8
- Registriert seit
- Nov 2007
- Beiträge
- 94
Ts meinte es funktoniert ich geb dir morgen den Suchbegriff den ich benutz habe der ist leider aufm Arbeitsrechner und nicht aufm Homerechner
-
Selbst wenn du eine Seite über googel gefunden hast die sagt es geht heisst es nicht das es gehen muss.
Es geht einfach nicht weil die Technik es nicht zulässt.
In meinem Beitrag habe ich hoffentlich doch verständlich und genau erklärt warum es nicht gehen kann....
Vielleicht hilft ein Bild weiter?
http://www.problem-hilfe.de/linux/im...tionsweise.gifGoogle und die Forensuche beantworten 50% aller Fragen!
Pflichtlektüre: Das PHP Handbuch als Windows Help Datei
Bitte Benutzt für Source-Code immer die richtigen Formatierungstags:
[PHP]Für PHP diese Tags[\PHP] ... [HTML]Für HTML diese Tags[\HTML] ... [SQL]Für SQL diese Tags[\SQL] ... [CODE]Für sonstigen Code[\CODE]
Wenn mein Beitrag hilfreich war bitte ich um eine positive Bewertung.
Ähnliche Themen
-
Übliches header:location Problem
Von Dörti.Hermi im Forum PHPAntworten: 28Letzter Beitrag: 11.10.09, 12:59 -
IE Problem mit header-location
Von Hattrix im Forum PHPAntworten: 6Letzter Beitrag: 11.07.07, 15:02 -
header("location... Problem
Von Katzehuhn im Forum PHPAntworten: 7Letzter Beitrag: 19.06.05, 13:15 -
header, ob_start und ob_end_flush
Von Eaden im Forum PHPAntworten: 6Letzter Beitrag: 19.04.05, 15:16 -
ob_start() und header() ?
Von Funjoy im Forum PHPAntworten: 12Letzter Beitrag: 12.11.04, 17:10





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren