| 
				 
 
 
 
    
    
    
    
 
 
 
 
  
 
	
	
    	:: Anbieterverzeichnis ::
        Globale Branchen
        Informieren Sie sich über ausgewählte 
                        Unternehmen im 
                        Anbieterverzeichnis von SELFPHP   
                        
  
     
	
      
	
	
    	:: SELFPHP Forum ::
        Fragen rund um die Themen PHP? In über 
                        120.000 Beiträgen finden Sie sicher die passende 
                        Antwort!   
	     
	
      
	
	
    	 :: Newsletter ::
        Abonnieren Sie hier den kostenlosen 
                        SELFPHP Newsletter!
 
 
   
	    
	
      
	
	
    	:: Qozido ::
        Die Bilderverwaltung mit Logbuch für 
                        Taucher und Schnorchler.    
	     
	
                           
 | 
  
    
      |   | 
      
        
          connection_status   | 
         
                           
         
        
   Befehl |   Version |   Beschreibung |   Inhalt der Datei zahlen.txt |   Beispiel 1 |   Ausgabe 1 |   Beispiel 2 |   Ausgabe 2 |   Inhalt der Datei zahlen.txt |   Beispiel 3 |   Ausgabe 3 |  
               
        
          
            
            	
 
     Befehl
 
 | int connection_status ( void $ ) |  
 
 
 
     Version
 
 
 
 
     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() |  
  
 
 
    Inhalt der Datei zahlen.txt 
 
 
Timeout - Monitore||17"-Monitor||Monday 30th of July 2001 10:32:38 PM 
 
 |  
  
 
 
    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; 
   } 
} 
?> 
 
 |  
  
 
 
    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 
 
 |  
  
 
 
    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; 
  } 
} 
?> 
 
 |  
  
       
 
    Ausgabe 2 
 
 
1 
2 
3 
4 
5 
Ein simpler Shop 
Alles OK - weiter gehts! 
 
 |  
  
 
 
    Inhalt der Datei zahlen.txt 
 
 
Monitore||17"-Monitor||Monday 30th of July 2001 10:30:15 PM 
 
 |  
  
 
 
    Beispiel 3 
 
 
<?PHP 
// Wie Beispiel 1, allerdings ein Browserabbruch durch den User 
// vor Verstreichen der 10 Sekunden 
?> 
 
 |  
  
 
 
    Ausgabe 3 
 
 
1 
2 
3 
. 
. 
. 
26926 
26927 
26928 
 
 |  
  | 
           
          
            | 
 | 
           
          | 
		  | 
       
   
   
   	             
                  | 
  
			  
			      
                
                
             
            
                   
                                  |