Am Montag, 4. Februar 2002 22:00 schrieben Sie:
Ich hatte kürzlich ein ähnliches Problem. Wenn Du dem Script über die GET-Methode einen String übergibst - wie tust Du den auswerten? Kann es sein, dass sich Dein Programm beim Aus- werten schon aufhängt und irgenwelches Unbrauchbares Zeugs an den Apache liefert? Ganz am Anfang des Programmes sollte bedingungslos "Content-Type: text/html\n" ausgegeben werden, damit der Apache überhaupt weiß, was jetzt für Daten kommen.
Das könnte das Problem sein. Bei mir sieht es im Moment so aus:
int main() { ..... if((env=getenv("QUERY_STRING"))==0) env=""; ..... switch (env[0]) { case '1': vekTest(vek, anz, breite); ausgabe(vek, anz, breite, env); // (*1 initvek(vek, anz, tmpFile, "w", confFile); break; ..... } return 0; } (*1 erst hier erfolgt die Ausgabe:
void ausgabe(char *vek, int anz, int breite, char *env) { .... puts("Content-Type: text/html\n"); puts("<html><head>"); if (env[0]=='1') puts("<meta http-equiv="refresh" content="1; URL="http://www.htw-dresden.de/~s9247/cgi-bin/bionik.cgi?1%5C%22%3E"); puts("<title>Bionik CGI</title></head><body><center>\n"); if (env[0]=='f') puts("Konnte angegebene Datei nicht öffnen"); else { puts("<table border=1>"); for(i=0;i<anz;i++) { if(!((i+breite)%breite)) puts("<tr>"); if((i+1)%breite) { html=vek[i]; if (!(html=='*')) puts("<td> </td>"); else {puts("<td>");putchar(vek[i]);puts("</td>");} } else { html=vek[i]; if (!(html=='*')) { puts("<td> </td></tr>"); } else { puts("<td>"); putchar(vek[i]); puts("</td></tr>"); } } } } puts("</table>"); puts("</center></body></html>"); }
Ich werde wohl die Funktion teilen müssen und den Seitenkopf in eine extra Funktion packen die ich dann vor Auswertung der env Variable in die main Funktion eingliedere. Danke erst mal für den Tip ich meld mich wenns funktioniert oder auch nicht.
Grüsse Clemens