SEL.html

connection_status

Informationsseite

nach unten Befehl
nach unten Version
nach unten Beschreibung
nach unten Beispiel1
nach unten Ausgabe1
nach unten Beispiel2
nach unten Ausgabe2
nach unten Beispiel3
nach unten Ausgabe3

nach unten 

Befehl

int connection_status(void)

 

nach obennach unten 

Version

PHP 3>= 3.0.7, PHP 4 >= 4.0b4

 

nach obennach unten 

Beschreibung

Mit connection_status() kann man sich den internen Verbindungsstatus von PHP
zurückgeben lassen.

Folgende drei (bzw. vier - siehe unten) Zustandsmöglichkeiten können eintreten:
0 - NORMAL
1 - ABORTED
2 - TIMEOUT
3 - ABORTED und TIMEOUT

Ein aktives PHP-Skript hat normalerweise den Status NORMAL, es sei denn,
dass durch irgendein Vorkommnis dieser Status geändert wird. Dabei gibt es
mehrere Möglichkeiten. Zum einen kann der User das laufende Skript abbrechen
und somit den Status auf ABORTED setzen, oder es kann vorkommen, dass das
Skript länger läuft, als das eingestellte Zeitlimit zulässt (Standard-Timeout in der
Apache-Konfigurationsdatei ist 30 Sekunden, oder über set_time_limit() eine
vorgegebene Zeit). Bei Überschreiten dieses Limits wird der Verbindungsstatus
auf TIMEOUT gesetzt.
Anhand dieser drei Werte kann man nun entscheiden, wie man mit diesem Status
umgehen möchte. Oftmals will man gerade beim Abbruch durch den User noch
wichtige Daten retten.
Beachten Sie bitte, dass die Funktion connection_status() gleichzeitig den Staus
ABORTED und TIMEOUT besitzen kann. Dies geschieht gerade dann, wenn
man mit der Funkton ignore_user_abort() den Benutzerabbruch unterbindet.
Dennoch kann es zu einem TIMEOUT kommen. In diesem Fall gibt die Funktion
den Wert 3 (ABORTED + TIMEOUT) zurück, weil neben dem Timeout auch der
(folgenlose) Benutzerabbruch registriert wurde.

Siehe auch:

 

nach obennach unten 

Beispiel1

<?PHP
register_shutdown_function('countdown');
set_time_limit (10);
$produktseite = "Monitore";
$produkt = "17\"-Monitor";
$zeit = date("l dS of F Y h:i:s A");
for($x=1;$x<=55555555;$x++){
echo $x . "<br>";
}
echo "Ein simpler Shop<br>";
function countdown(){
$var = connection_status();
switch ($var) {
case 0:
echo "Alles OK - weiter gehts!";
break;
case 1:
global $produktseite , $produkt , $zeit;
$werte = "$produktseite||$produkt||$zeit\n";
$fp = fopen('statistik.txt','a');
fwrite($fp,$werte);
fclose($fp);
break;
case 2:
global $produktseite , $produkt , $zeit;
$werte = "Timeout - $produktseite||$produkt||$zeit\n";
$fp = fopen('timeout.txt','a');
fwrite($fp,$werte);
fclose($fp);
break;
}
}
?>

 

nach obennach unten 

Ausgabe1

1
2
3
.
.
.
51290
51291

Fatal error: Maximum execution time of 10 seconds exceeded in e:\apache\htdocs/php/index.php on line 9


/*Inhalt der Datei zahlen.txt:
Timeout - Monitore||17"-Monitor||Monday 30th of July 2001 10:32:38 PM*/

 

nach obennach unten 

Beispiel2

<?PHP
register_shutdown_function('countdown');
$produktseite = "Monitore";
$produkt = "17\"-Monitor";
$zeit = date("l dS of F Y h:i:s A");
for($x=1;$x<=5;$x++){
echo $x . "<br>";
}
echo "Ein simpler Shop<br>";
function countdown(){
$var = connection_status();
switch ($var) {
case 0:
echo "Alles OK - weiter gehts!";
break;
case 1:
global $produktseite , $produkt , $zeit;
$werte = "$produktseite||$produkt|| $zeit\n";
$fp = fopen('statistik.txt','a');
fwrite($fp,$werte);
fclose($fp);
break;
case 2:
global $produktseite , $produkt , $zeit;
$werte = "Timeout - $produktseite||$produkt||$zeit\n"; $fp = fopen('timeout.txt','a');
fwrite($fp,$werte);
fclose($fp);
break;
}
}
?>

 

nach obennach unten 

Ausgabe2

1
2
3
4
5
Ein simpler Shop
Alles OK - weiter gehts!

 

nach obennach unten 

Beispiel3

<?PHP
// Wie Beispiel 1, allerdings ein Browserabbruch durch den User //vor Verstreichen der 10 Sekunden
?>

 

nach obennach unten 

Ausgabe3

1
2
3
.
.
.
26926
26927
26928


/*Inhalt der Datei zahlen.txt:
Monitore||17"-Monitor||Monday 30th of July 2001 10:30:15 PM*/

 

nach oben
weiter:weiter Seite connection_timeout
zurück:zurück Seite connection_aborted
 

© 2001, 2002 E-Mail Damir Enseleit, mail@selfphp3.de