404 per php header() senden

Hi,
ich habe eine verarbeitungsseite, zb für logins, gästebucheinträge, etcetc
nun möchte ich allerdings, dass wenn man diese seite einfach aufruft, ohne von einer “event”-seite zu kommen, also ohne dass per post zb gästebuch-parameter mitgeliefert werden, ein 404-header gesendet wird.

meine idee war bis jetzt recht simpel: einfach folgenden code ganz am anfang. jede aktion sendet ein “todo” per post mit, womit ich dann entscheide ob ich einen eintrag mache oder den user einlogge - wenner nicht gesetzt ist gibts die seite auch nicht.

if(!isset($_POST['todo'])) { //TODO send 404 header('HTTP/1.0 404 Not Found'); die(); }

allerdings funktioniert das scheinbar nicht so wie ich mir das vorgestellt habe, wenn ich mir ansehe was für header gesendet werden kommt eine leere seite und

[quote]Server Apache/2.2.14 (Ubuntu)
Content-Location contra.php
Vary negotiate,Accept-Encoding
TCN choice
X-Powered-By PHP/5.3.2-1ubuntu4.9
Content-Encoding gzip
Content-Length 20
Connection close
Content-Type text/html[/quote]

  • standard-header halt…

was habe ich falsch gemacht?

gruß

In deinem Header-Ausschnitt fehlt der Statusheader. Das ist immer die erste Zeile der Antwort, der an der von dir gewählten Übersicht nicht angezeigt wird. Probiere z.B. mal deinklick.de/request.php

Die Seite ist übrigens weiß, weil du einfach per die() abgebrochen hast und keine Fehlerseite ausgibst. Das musst du auch machen.

joap, das is aber alles was firebug ausspuckt. ich werd die seite mal hochladen und mit deiner seite testen.

edit: yes, i see… der sagt 404… passt. danke. (warum zur hölle zeigt das firebug nich an oO?

Firebug zeigt den HTTP Header sicher auch in irgendeiner Form an^^ Die Ausgabe die du genannt hast ist sowieso eine geänderte und nicht 1zu1…
Ich nutze für meinen teil immer die Developer Toolbar. Firebug habe ich auch aktuell gar nicht xD War mir wie zu aufgebläht außerdem brauch ich dat nicht :stuck_out_tongue: [size=85](hab bisher immer alles gefunden was ich finden wollte etc.)[/size]

Ggf. könnte dich auch das hier interessieren: php.net/manual/en/function.header.php#92305
[size=85](dazu sei noch gesagt das heute eig. HTTP 1.1 aktuell/Standard ist…)[/size]

hm? nene is direkt aus firebug kopiert, oder wie meinst du?

weiß ich, hab nur beide gelesen und testeshalber mal das 1.0er ausprobiert, obs da “funktioniert” bzw angezeigt wird.

Das Net-Panel vom Firebug zeigt dir den Statuscode direkt neben der Requestadresse an, noch bevor du mit dem Plus-Zeichen was aufklappst … steht auch sinnigerweise „Status“ als Überschrift über der Spalte (zumindest in der englischen Version, in der deutschen aber vermutlich ähnlich) - sofern du diese Spalte nicht zufällig ausgeblendet hast, dann lässt sie sich aber per Rechtsklick auf die Überschriften auch wieder hinzu nehmen.

Du solltest echt mal lernen, die Augen aufzumachen … gefühlte (mindestens) 50% deiner Fragen hier wären eigentlich überflüssig :unamused:

don’t ask me y, aber ich hatte die spalte tatsächlich ausgeblendet :ps:

Habe eine Frage diesbezüglich.
Hatte zuvor auch das Problem, dass ich keine 404 Header abgesendet bekommen habe.

Nun habe ich Test weise error_report usw. ausgemacht. Plötzlich scheint das setzen des Headers zu funktionieren.
Warum aber ?

[quote=“danny77”]Nun habe ich Test weise error_report usw. ausgemacht. Plötzlich scheint das setzen des Headers zu funktionieren.
Warum aber ?[/quote]
Vermutlich weil du Fehler in deinem Script hast, die bereits vor dem header-Aufruf Meldungen produzieren …

[quote=“chrisb”][quote=“danny77”]Nun habe ich Test weise error_report usw. ausgemacht. Plötzlich scheint das setzen des Headers zu funktionieren.
Warum aber ?[/quote]
Vermutlich weil du Fehler in deinem Script hast, die bereits vor dem header-Aufruf Meldungen produzieren …[/quote]
Nein hatte kein Fehler Output. Bzw. es wurde mir keine Meldung/Fehler angezeigt.
//Edit: habe auch keine Meldung bekommen von wegen head already set.