- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 07-10-2002, 13:31
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.776
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard header Umleitung

Hallo,

wie ist das eigentlich mit dem
header() Befehl?
Werden die Befehle nach header(...) in
einem Script auf jeden Fall noch abgearbeitet,
oder ist das wieder mal eine PHP-Einstellung.

Wird die Ausgabe von header, sofort an den Browser
geschickt, oder auch erst gepuffert, und am Ende
des Scriptes geschickt?

Grund:
In meinen Scripten soll er einiges noch machen,
nachdem der User per header("Location: ...")
auf eine andere Seite verwiesen wurde.
Insbesondere sollen log-Einträge geschrieben,
Mails gesendet, ... werden ohne das der User
erst auf deren Abarbeitung warten muß
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllGoogle Spam CheckOnline Sitemap Check
.
Mit Zitat antworten
  #2 (permalink)  
Alt 07-10-2002, 13:34
Campus
 PHP Junior
Links : Onlinestatus : Campus ist offline
Registriert seit: Jul 2002
Ort: D
Beiträge: 842
Campus ist zur Zeit noch ein unbeschriebenes Blatt
Campus eine Nachricht über ICQ schicken
Standard

hmm, also ich hab auch nachm header immer onch n paar mysql anweisungen, und die werden eigentlich auch immer abgearbeitet, ich weiss aber nicht, ob wenn man flush() oder sowas macht, dann danach immer noch gearbeitet wird..
Mit Zitat antworten
  #3 (permalink)  
Alt 07-10-2002, 13:44
MoRtAlAn
 PHP Master
Links : Onlinestatus : MoRtAlAn ist offline
Registriert seit: Jan 2002
Ort: Mühlheim am Main
Beiträge: 5.934
MoRtAlAn ist zur Zeit noch ein unbeschriebenes Blatt
Standard

normalerweise mache ich nach der Umleitung ein exit();

also:
header("location:bla.de");
exit();

wenn noch sachen vor der umleitung gemacht werden sollen, dann setz sie vor den header (mails versenden sollte gehen), es darf halt nur keine Ausgabe an den Client erfolgen, alles andere ist egal!

gruss
Mit Zitat antworten
  #4 (permalink)  
Alt 07-10-2002, 13:51
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.776
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

zur Zeit habe ich auch einiges so:

header("Location: ...");
// einige SQL Abfragen
// Mails senden
exit();

nun ist aber meine Frage, ob das immer
funktioniert und der User bereits
weitergeleitet ist, oder ob da noch ein flush()
rein sollte.

Auch wenn der Code dadurch nicht schneller wird,
ist die Abarbeitung für den User schneller,
da er nicht immer warten muß.
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllGoogle Spam CheckOnline Sitemap Check
.
Mit Zitat antworten
  #5 (permalink)  
Alt 07-10-2002, 13:56
Rob K
 Junior Member
Links : Onlinestatus : Rob K ist offline
Registriert seit: Oct 2002
Ort: Dresden
Beiträge: 148
Rob K ist zur Zeit noch ein unbeschriebenes Blatt
Rob K eine Nachricht über ICQ schicken
Standard

also ich glaube, eine garantie gibt es für die ausführung nach dem header() nicht!

im manual wird empfohlen, nach dem header() ein exit; zu setzen, um das eventuelle ausführen weiteren codes zu verhindern!

Zitat:
wenn noch sachen vor der umleitung gemacht werden sollen, dann setz sie vor den header
ganz genau!
__________________
GNU/LINUX
Mit Zitat antworten
  #6 (permalink)  
Alt 07-10-2002, 13:57
MoRtAlAn
 PHP Master
Links : Onlinestatus : MoRtAlAn ist offline
Registriert seit: Jan 2002
Ort: Mühlheim am Main
Beiträge: 5.934
MoRtAlAn ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und das funktioniert so ?

flush bringt dir nichts, du willst ja nichts ausgeben, sondern weiterleiten.

erledige alles vor dem Redirect.

exit übrigens ohne ()! sorry

laut manual.
header ("Location: http://www.example.com"); // Umleitung des Browsers
exit; // Sicher stellen, dass nicht trotz Umleitung nachfolgender Code ausgeführt wird.

und vorher alle bearbeitungen. Wie lange aber der User warten muß, kommt darauf an, wie schnell der Server ist, aber theoretisch sollte er davon nichts merken, außer du erstellst riesige Textdateien, etc.

gruss
Mit Zitat antworten
  #7 (permalink)  
Alt 07-10-2002, 14:00
Campus
 PHP Junior
Links : Onlinestatus : Campus ist offline
Registriert seit: Jul 2002
Ort: D
Beiträge: 842
Campus ist zur Zeit noch ein unbeschriebenes Blatt
Campus eine Nachricht über ICQ schicken
Standard

leider isses nicht immer möglich den code vor der header zu setzen, bei mir kommt oft darauf an, wie die _get parameter gesetzt sind..
aber ich mal oft mail usw verschickt und user in die DB eingetragen nach dem header, und bisher hat sich keiner beschwert

TBT: der code im der datei mit der weiterleitung wird eigentlich VOR dem aufbau der neuen seite gemacht, sprich, eigentlich direkt machdem klick auf den link,(darum wird auch oft gesagt " nur einmal auf den reply knopf drücken, weil es vorkommt, das es etwas dauer, bis die daten gespeichert werden.)

BTW: 400 posting

Geändert von Campus (07-10-2002 um 14:03 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 07-10-2002, 14:18
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.776
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

@MoRtAlan:

Sorry
Zitat:
www.php.net

The exit() function terminates execution of the script. It prints status just before exiting
eine Funktion, also mit ()

Ich will einfach die Wartezeit für den User verkürzen
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllGoogle Spam CheckOnline Sitemap Check
.
Mit Zitat antworten
  #9 (permalink)  
Alt 07-10-2002, 14:20
Campus
 PHP Junior
Links : Onlinestatus : Campus ist offline
Registriert seit: Jul 2002
Ort: D
Beiträge: 842
Campus ist zur Zeit noch ein unbeschriebenes Blatt
Campus eine Nachricht über ICQ schicken
Standard

was hast du denn bisher ?
content=0.... ?
Mit Zitat antworten
  #10 (permalink)  
Alt 07-10-2002, 14:24
Rob K
 Junior Member
Links : Onlinestatus : Rob K ist offline
Registriert seit: Oct 2002
Ort: Dresden
Beiträge: 148
Rob K ist zur Zeit noch ein unbeschriebenes Blatt
Rob K eine Nachricht über ICQ schicken
Standard

Zitat:
eine Funktion, also mit ()
stimmt,!

funzt aber auch ohne () und hat sich irgendwie so eingebürgert ... komisch!
__________________
GNU/LINUX
Mit Zitat antworten
  #11 (permalink)  
Alt 07-10-2002, 14:28
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.776
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von Campus
was hast du denn bisher ?
content=0.... ?
wie jetzt, was meinst du
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllGoogle Spam CheckOnline Sitemap Check
.
Mit Zitat antworten
  #12 (permalink)  
Alt 07-10-2002, 14:37
Campus
 PHP Junior
Links : Onlinestatus : Campus ist offline
Registriert seit: Jul 2002
Ort: D
Beiträge: 842
Campus ist zur Zeit noch ein unbeschriebenes Blatt
Campus eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von TBT

Ich will einfach die Wartezeit für den User verkürzen
was meinst du damit verkürzen ? wie has du es jetzt ?
Mit Zitat antworten
  #13 (permalink)  
Alt 07-10-2002, 14:39
MoRtAlAn
 PHP Master
Links : Onlinestatus : MoRtAlAn ist offline
Registriert seit: Jan 2002
Ort: Mühlheim am Main
Beiträge: 5.934
MoRtAlAn ist zur Zeit noch ein unbeschriebenes Blatt
Standard

irgendwie herrscht hier gerade ein bisschen Chaos

@tbt: ich hatte ja zuerst exit() geschrieben und dann sah ich das gepostete Beispiel aus dem Manual ohne das (). Da hab ich mir halt gedacht, die werden schon recht haben

gruss
Mit Zitat antworten
  #14 (permalink)  
Alt 07-10-2002, 14:42
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.776
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

Beispiel:

- das Script wird abgearbeitet
- am Ende des Scriptes schreibt er noch nen bissel Logdateien
- außerdem werden 2 Emails versendet
- dann kommt die Headerumleitung header();
- exit();


nun will ich aber, das der User schneller auf die neue Seite kommt,
und der Rest (Log und Emails) abgearbeitet wird,
ohne das der User drauf warten muß

also:

- das Script wird abgearbeitet
- dann kommt die Headerumleitung header();
=> hier soll der User schon weg sein (neue Seite sehen)
- am Ende des Scriptes schreibt er noch nen bissel Logdateien
- außerdem werden 2 Emails versendet
- exit();

die Frage ist, klappt das immer, oder gibt es andere
Möglichkeiten was zu abzuarbeiten, ohne das
der User drauf warten muß
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllGoogle Spam CheckOnline Sitemap Check
.
Mit Zitat antworten
  #15 (permalink)  
Alt 07-10-2002, 14:47
Rob K
 Junior Member
Links : Onlinestatus : Rob K ist offline
Registriert seit: Oct 2002
Ort: Dresden
Beiträge: 148
Rob K ist zur Zeit noch ein unbeschriebenes Blatt
Rob K eine Nachricht über ICQ schicken
Standard

Zitat:

nun will ich aber, das der User schneller auf die neue Seite kommt,
und der Rest (Log und Emails) abgearbeitet wird,
ohne das der User drauf warten muß
entsteht dadurch tatsächlich eine merkliche verzögerung?
kann ich mir nicht vorstellen, es sei denn die log's sind riesig ....
__________________
GNU/LINUX
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:50 Uhr.