PHP5 als CGI + Ajax = Fehlermeldung
Knusperklumpen
- webserver
0 wahsaga0 Knusperklumpen
Hi ... erstmal sorry für den doofen Titel, ich weiß nur nicht wie ich es kürzer beschreiben soll.
Ich habe auf dem Server PHP5 nicht als Modul im Apache laufen sondern "nur" als CGI. Im Apache läuft PHP 4.x.x.
Nun spiele ich derzeit etwas mit Ajax rum (Ajason-Framework) und bekomme nun eine Fehlermeldung, die ich nicht so ganz deuten kann, dazu fehlt mir das Wissen zum Server.
Error 500: malformed header from script. Bad header=Content-Type: php5
Interessanterweise funktioniert das was ich machen will (on-the-fly in eine Datenbank speichern), nur die Serverantwort scheint Ajason nicht zu gefallen und deswegen spuckt er o.g. Fehler noch aus. Liegt das an einer fehlerhaften Einstellung des PHP5 als CGI ?
Zumindest hat mir Google mehrer Antworten gegeben, die bei Error 500 auf ein fehlerhaftes CGI schließen lassen.
Kennt irgendwer von euch das Problem und hat eine Lösung parat?
Danke und mfg
Knusperklumpen
hi,
Nun spiele ich derzeit etwas mit Ajax rum (Ajason-Framework) und bekomme nun eine Fehlermeldung, die ich nicht so ganz deuten kann, dazu fehlt mir das Wissen zum Server.
Error 500: malformed header from script. Bad header=Content-Type: php5
Die Meldung sagt doch eigentlich schon alles:
Der Server liefert die Antwort unter dem eher unsinnigen Content-Type: php5 aus - ein AJAX-Script würde aber eher text/xml oder ggf. auch text/plain erwarten.
gruß,
wahsaga
Hi
Der Server liefert die Antwort unter dem eher unsinnigen Content-Type: php5 aus - ein AJAX-Script würde aber eher text/xml oder ggf. auch text/plain erwarten.
Das hab ich mir ja auch schon gedacht ... dooferweise weiß ich nicht wie und wo ich dem Server mitteilen kann was er denn zurückschicken soll.
mfg
Knusperklumpen
Hi,
dooferweise weiß ich nicht wie und wo ich dem Server mitteilen kann was er denn zurückschicken
mit PHP _setzen_?
http://de.php.net/manual/de/function.header.php
Gruesse, Joachim
Hi
mit PHP _setzen_?
Das funktioniert eben leider nicht
Mit Javascript wird eine Funktion aufgerufen.
Das Ganze veranlasst Ajax dann sich mit dem sogenannten Ajax-Server zu verbinden und dann dort auf dem Server eine PHP-Funktion auszuführen welche dann nur meine Datenbankeintragung macht. Das funktioniert auch.
Nur schickt der Server dann von sich aus irgendeine Antwort zurück und dabei aber wohl den falschen Content-Type. Ich kann das mit PHP nicht beeinflussen, zumindest nicht über das _setzen_ des Headers mittels PHP.
mfg
Knusperklumpen
echo $begrüßung;
Nur schickt der Server dann von sich aus irgendeine Antwort zurück und dabei aber wohl den falschen Content-Type. Ich kann das mit PHP nicht beeinflussen, zumindest nicht über das _setzen_ des Headers mittels PHP.
Warum nicht? Der 500er kommt doch vom Server. Das heißt, dass der Server oder ein von ihm verwendetes Programm einen Fehler verursacht hat. In dem Fall wird es das PHP-CGI sein, dass von sich aus oder vom Script angewiesen diesen fehlerhaften Header sendet.
echo "$verabschiedung $name";
Hat sich erledigt.
Ich hab einfach mal alle Dateien des Ajason-Frameworks durchgeschaut und in einer dann folgenden Header-Aufruf gefunden:
header( 'Content-Type', 'text/json' );
Nachdem ich den dann auskommentiert und durch folgenden ersetzt habe
header('Content-Type: text/xml');
funktioniert es nun auch ohne Fehlermeldung.
Was auch immer der erstere Header machen soll, es war zumindest Quell des Übels.
Danke und mfg
Knusperklumpen