SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/funktionsreferenz/sonstige_funktionen/connection_status.php
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de



connection_status


nach unten nach oben Befehl

int connection_status ( void $ )



nach unten nach oben Version

(PHP 4, PHP 5)



nach unten nach oben 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:

connevtion_aborted()
connection_timeout()
register_shutdown_function()



nach unten nach oben Inhalt der Datei zahlen.txt


Timeout - Monitore||17"-Monitor||Monday 30th of July 2001 10:32:38 PM




nach unten nach oben Beispiel 1


<?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 unten nach oben Ausgabe 1


1
2
3
.
.
.
51290
51291

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




nach unten nach oben Beispiel 2


<?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 unten nach oben Ausgabe 2


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




nach unten nach oben Inhalt der Datei zahlen.txt


Monitore||17"-Monitor||Monday 30th of July 2001 10:30:15 PM




nach unten nach oben Beispiel 3


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




nach unten nach oben Ausgabe 3


1
2
3
.
.
.
26926
26927
26928