Quoth Geschrieben 30. August 2004 Geschrieben 30. August 2004 Hallo! Ich habe ein Problem mit C und meiner HTML-Seite. Ich hatte zuerst eine Teilseite mit der Funktionalität index.html genannt um sie schneller testen zu können. Alles funktionierte einwandfrei. Jetzt ist aber meine index.html die Startseite und die Funktionsseite heißt nun "test.html" und befindet sich in /website/site (von index.html aus gesehen). Aber nun funktioniert die Interaktion mit der "Testseite" nicht mehr. Hier mal die Stelle an der es hapert: /* öffnen des Templates */ param = fopen("/home/httpd/website/site/test.html", "r"); /* war: param = fopen("/home/httpd/deprag/index.html", "r");*/ if (!param) return 0; dynp = fopen("/home/httpd/website/site/test.html", "w"); /* war: dynp = fopen("/home/httpd/index.html", "w");*/ if (!dynp) return 0; und: /* Ausgabe der neu erzeugten Datei an den Browser */ dynp_in = fopen("/home/httpd/website/site/test.html", "r"); /*war dynp_in = fopen("/home/httpd/index.html", "r");*/ Hab ich da einen Denkfehler drin? :confused: Zitieren
kLeiner_HobBes Geschrieben 30. August 2004 Geschrieben 30. August 2004 Seh ich das falsch, oder öffnest du im ersten Code-Teil die test.html einmal zum Lesen und dann zum Schreiben, ohne vorher einen Close() gemacht zu haben? Das hast du nämlich nicht bei der index gemacht, die hast du von deprag geholt und direkt in / geschrieben. Zitieren
Quoth Geschrieben 30. August 2004 Autor Geschrieben 30. August 2004 nee, das fclose(dynp); kommt erst noch ein Stück weiter unten aber bei der zweiten Pfadangabe ist mir ein Fehler unterlaufen, merk ich gerade. Aber das ändert nix daran, dass es nicht funktioniert. Hier nochmal der Code-Auszug: param = fopen("/home/httpd/website/site/test.html", "r"); /* war: param = fopen("/home/httpd/deprag/index.html", "r");*/ if (!param) return 0; dynp = fopen("/home/httpd/site/test.html", "w"); /* war: dynp = fopen("/home/httpd/index.html", "w"); site ist eine verknüpfung auf einen Ordner in einem anderen Verzeichnis, da es auf home/httpd/ schreibgeschützt wäre*/ if (!dynp) return 0; /* Kopieren des Templates als neues index file */ while (!feof(param)) { char * line = 0; size_t l = 0; getline(&line,&l, param); if ((strstr(line, "</BODY>") != 0) || (strstr(line, "</body>") != 0)) { /*Einfügen einer Funktion, welche die neu eingestellten Werte setzt */ fprintf(dynp, "<script> function loaded() {document.forms[0].parameter.value=\"%i\";\n", par); if (prog == 1) fprintf(dynp, "document.forms[0].program[0].checked=true;\n"); else if (prog == 2) fprintf(dynp, "document.forms[0].program[1].checked=true;\n"); else if (prog == 3) fprintf(dynp, "document.forms[0].program[2].checked=true;\n"); fprintf(dynp, "}</script>\n"); } fputs(line, dynp); } fclose(dynp); Zitieren
kLeiner_HobBes Geschrieben 30. August 2004 Geschrieben 30. August 2004 Was bringt er denn für ne Fehlermeldung? Ist in der erstellten test.html garnix drin? Wird sie überhaupt angelegt? Zitieren
Quoth Geschrieben 30. August 2004 Autor Geschrieben 30. August 2004 es kommt keine Fehlermeldung. Die auf der Testseite test.html eingegebenen und abgesandten Werte werden korrekt von cgiread.c in die Parameter-Datei test.dat rausgeschrieben. Allerdings wird nach Betätigen des Submit-Buttons eine leere Seite angezeigt und die Weiterverarbeitung der Werte "Programm" und "Parameter" über das Hauptprogramm funktioniert nicht mehr. Wenn ich aber diese Testseite wieder als index.html (ohne Frames etc) umwandle, klappt alles wie es soll. Zitieren
kLeiner_HobBes Geschrieben 30. August 2004 Geschrieben 30. August 2004 ja, ruft er dann überhaupt noch dein CGI-Programm auf? Ich kapiers glaub ich leider net ganz so :-/ Kannst ja mal ein Test-printf("Hier bin ich!"); oder so mitten im Code machen. Dann solltest du zumindest auf der Konsole sehen, wo du bist. Zitieren
Quoth Geschrieben 10. September 2004 Autor Geschrieben 10. September 2004 Vielleicht liegt das ja auch an irgendwelchen Freigaben oder Einstellungen ... kenn mich mit Suse und Linux allgemein nicht so aus ... "verwende" das erst seit knapp 4 Wochen ... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.