Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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:

Geschrieben

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.

Geschrieben

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);

Geschrieben

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.

Geschrieben

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.

  • 2 Wochen später...
Geschrieben

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 ...

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...