ubuntuusers.de

Blog in C schreiben

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

jAIk

(Themenstarter)
Avatar von jAIk

Anmeldungsdatum:
7. Juni 2007

Beiträge: 254

Es geht ☺

Besten Dank und LG

Jan

Der Code, für alle, die es interessiert:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <stdio.h>

int main() {

printf("Content-Type: text/html\n\r");
printf("\n\r");
printf("<html>\n\r");
printf("<head><title>foo</title></head>\n\r");
printf("<body>\n\r");
printf("Hello, World!\n\r");
printf("</body>\n\r");
printf("</html>");

}

EDIT: @stfischr → DONE ☺

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

@jAIk Fein gemacht. Nutze doch für den C-Code nicht den normalen Codeblock, sondern den Button daneben, dann wird alles so schön bunt.

1
2
3
4
5
6
#include <beispiel.h>

int main()
{
  printf("So zum Beispiel.");
}

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4695

Wohnort: Berlin

Nur für den Fall, dass ich mich etwas missverständlich ausgedrückt haben sollte: Dass "\n\r" betrifft nur den Teil des HTTP-Protokolls, nicht den Inhalt der nach dem Header und der Leerzeile übertragen wird.

Und wenn die Fehlermeldung vom Server vorschlägt in das Log zu schauen, könnte man das natürlich auch tun. Wenn ich raten müsste, steht da so etwas wie "premature end of headers" oder so ähnlich.

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Das HTTP-Protokoll schreibt \r\n vor, nicht \n\r.

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Und HTTP verlangt eine Leerzeile zwischen den Headern und dem Inhalt. Ausserdem musst Du aufpassen wie Du das Zeilenende markierst, da will HTTP nämlich die Sequenz "\n\r", statt einem einzelnen "\n".

Du meintest wohl eher "\r\n", ansonsten ist das bei den meisten heutigen Webservern egal. Apache macht z.B. automatisch aus "\n" ⇒ "\r\n".

@jAIk Wenn du Internal Server Error bekommst, dann solltest du in der Datei "/var/log/apache2/error.log" schauen, dort sind dann genaue Fehler aufgelistet warum du einen Fehler bekommen hast. In deinem Fall war es wohl ein "Prematur End of script header"

Antworten |