SELFPHP
SELFPHP / Function Reference / Miscellaneous Functions / Connection Status


connection_status

Springe zu Command Command | Springe zu Version Version | Springe zu Description Description | Springe zu Inhalt der Datei zahlen.txt Inhalt der Datei zahlen.txt | Springe zu Example 1 Example 1 | Springe zu Output 1 Output 1 | Springe zu Example 2 Example 2 | Springe zu Output 2 Output 2 | Springe zu Inhalt der Datei zahlen.txt Inhalt der Datei zahlen.txt | Springe zu Example 3 Example 3 | Springe zu Output 3 Output 3 | 


nach unten nach oben Command

int connection_status ( void )


nach unten nach oben Version

(PHP 3 >= 3.0.7, PHP 4, PHP 5)


nach unten nach oben Description

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 Example 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 - next 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 Output 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 Example 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 - next 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 Output 2


1
2
3
4
5
Ein simpler Shop
Alles OK - next 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 Example 3


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



nach unten nach oben Output 3


1
2
3
.
.
.
26926
26927
26928