SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.02.2009, 01:41:37
Small-Talk Small-Talk ist offline
Junior Member
 
Registriert seit: Jan 2004
Ort: Fredersdorf bei Berlin
Alter: 40
Beiträge: 184
HTTP-Status-Code ermitteln

hi,

habt ihr eine Idee, wie man den gesendeten HTTP-Status-Code ermitteln kann ?
Der Hintergrund ist der, dass ich ein Cache-Objekt habe, welches die gesamte Seite Cached und natürlich bei Status-Codes wie 304 Not Modified den Kontent nicht cachen soll bzw. bei anderen Status-Codes wieder den richtigen header mitschicken muss.

Gestartet wird der das Caching einfach mit "$cache->start()" und die methode aktiviert den outputbuffer mit callback auf eine weitere interne methode die wiederum den gesendeten kontent einfach in eine datei schreibt und zurück gibt und die gesendeten HTTP-Header abfragt. Nur leider fehlt mir bei der php-funktion headers_send der status-code :(

Mit den Streams php://stdout & php://output habe ich es auch schon probiert, aber ohne erfolg.

Geändert von Small-Talk (10.02.2009 um 01:53:00 Uhr)
Mit Zitat antworten
  #2  
Alt 10.02.2009, 10:08:53
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: HTTP-Status-Code ermitteln

wie wär's mit get_headers( ) ?

http://de.php.net/manual/de/function.get-headers.php

ansonsten ist der dienst HTTP auch sehr interessant:

http://de.php.net/manual/de/book.http.php

cx
Mit Zitat antworten
  #3  
Alt 10.02.2009, 21:36:34
Small-Talk Small-Talk ist offline
Junior Member
 
Registriert seit: Jan 2004
Ort: Fredersdorf bei Berlin
Alter: 40
Beiträge: 184
AW: HTTP-Status-Code ermitteln

hi cortex,

die links sind zwar gut gemeint, aber ich möchte nicht die http-header einer entfernten url ermitteln, sonder die, die das eigene php-skript an den Browser sendet/gesendet hat.

Da ich eine Bibliothek schreibe habe ich kein direkten zugriff über die Skripte, die diese dann einsetzen.

Hier mal ein mini-beispiel-skript:
PHP-Code:
<?php

require_once 'lib/page_cache';
$pageCache = new PageCache();

// Wenn Cache noch nicht existiert:
//    -> Startet den output-buffer mittels op_start inkl. callback
// Wenn cache existiert
//    -> sende die gecachten Header und das bild
//    -> stoppe das Skript
$pageCache->start();

try {
    
$img = new Image('test.jpg');
    
$img->fit(100100);
    
header('Content-Type: image/jpeg');
    echo 
$img;
} catch (
ImageNotFoundException $e) {
    
header('HTTP/1.1 404 Not found');
    
header('Content-Type: image/gif');
    
readfile('transparent.gif');
}

// am ende des Skripts wird automatisch der callback des output-buffers gestartet.
// dieser muss alle an den browser gesendeten daten inkl. die gesendeten http-header
// cachen.

Geändert von Small-Talk (10.02.2009 um 21:38:26 Uhr)
Mit Zitat antworten
  #4  
Alt 10.02.2009, 23:37:21
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: HTTP-Status-Code ermitteln

Will hier nicht erfahrenen Schreibern vorgreifen aber soweit ich das begriffen habe word doch der Status-Code selbst vom Server gesendet.
Somit sollte man nur einen Einfluss auf den Statuscode haben, wenn man ihn absichtlich ändern will.

Aller Falsche Anfrage an die seite sende Status 400
Mit Zitat antworten
  #5  
Alt 11.02.2009, 09:47:46
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: HTTP-Status-Code ermitteln

sorry, falls ich dein anliegen nicht korrekt interpretiere - aber:

die kontrolle über den status-header hast du doch bereits innerhalb deines eigenen skriptes durch die exception. du selbst bestimmst doch, welcher header gesendet wird - wozu willst du eine aktion, die du selbst auslöst (und selbst kontrollierst) nochmal prüfen?

stehe ich evtl. auf dem schlauch ?

cx
Mit Zitat antworten
  #6  
Alt 11.02.2009, 20:02:56
Small-Talk Small-Talk ist offline
Junior Member
 
Registriert seit: Jan 2004
Ort: Fredersdorf bei Berlin
Alter: 40
Beiträge: 184
AW: HTTP-Status-Code ermitteln

@cortex:
Wie schon gesagt, ich scheibe ne kleine Bibliothek, die in anderen Skripten möglichst einfach eingebunden werden soll. Das heißt nicht, dass die lib in eines von meinen Skripten eingebunden wird.

@urvater:
Stimmt schon, das der httpd die header schickt, aber wenn er mit PHP läuft kann man die header mit php ändern ( header('HTTP/1.1 [CODE] [MSG]') ). PHP schickt die heder dann weiter an den httpd und dieser gibt sie letztendlich aus.
Trotzdem hält php die header vor und schickt sie erst beim ende des scripts bzw. beim ersten output an den httpd weiter. Nach der php-doku kann man mit headers_list die header abfragen die php weitergibt, aber in dem array fehlt der http status code :(

PHP-Code:
<?php

headers_list
(); // -> leeres array

header('Content-Type: text/html');
headers_list(); // -> array(1) { [0]=>  string(23) "Content-Type: text/html" } 

header('HTTP/1.1 404 Not Found');
headers_list(); // -> array(1) { [0]=>  string(23) "Content-Type: text/html" } 
                // erwartet: array(2) { [0]=>  string(23) "HTTP/1.1 404 Not Found", [1]=>  string(23) "Content-Type: text/html" }
Ich hoffe das war jetzt verständlich

Geändert von Small-Talk (11.02.2009 um 20:07:17 Uhr)
Mit Zitat antworten
  #7  
Alt 11.02.2009, 22:55:55
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: HTTP-Status-Code ermitteln

Zitat:
aber in dem array fehlt der http status code :(
Weil der httpd die Header komplettiert.
Mit Zitat antworten
  #8  
Alt 11.02.2009, 23:48:11
Small-Talk Small-Talk ist offline
Junior Member
 
Registriert seit: Jan 2004
Ort: Fredersdorf bei Berlin
Alter: 40
Beiträge: 184
AW: HTTP-Status-Code ermitteln

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Weil der httpd die Header komplettiert.
aber php selbst weiß doch was es schickt, wenn das skript keinen gesonderten status code schicken würde ich es ja verstehen.

Geändert von Small-Talk (11.02.2009 um 23:48:39 Uhr)
Mit Zitat antworten
  #9  
Alt 12.02.2009, 11:03:50
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: HTTP-Status-Code ermitteln

Zitat:
Zitat von Small-Talk Beitrag anzeigen
aber php selbst weiß doch was es schickt, wenn das skript keinen gesonderten status code schicken würde ich es ja verstehen.
PHP schickt standardmäßig aber keinen entsprechend Header, wenn du diesen nicht mit header() o.ä. modifizierst.
Mit Zitat antworten
  #10  
Alt 12.02.2009, 11:16:07
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: HTTP-Status-Code ermitteln

ich glaube, wir drehen uns im kreis...

cx
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Redundanten PHP Code auslagern Donnar PHP Grundlagen 2 13.08.2008 00:36:24
Problem mit Code im Gästebuch Dark-Jay PHP Grundlagen 5 12.07.2007 17:59:12
Code einfügen Mormakil PHP Grundlagen 1 20.06.2006 17:54:08
BB Code mad-boy PHP für Fortgeschrittene und Experten 3 20.01.2004 09:18:17
Code zum Frame erzwingen fehlerhaft? sHaDoW-CaStLe PHP für Fortgeschrittene und Experten 1 20.09.2003 00:24:04


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt