-
Gesamte Inhalte
110 -
Benutzer seit
-
Letzter Besuch
Alle Inhalte von Quoth
-
Danke an Crash, DingsDa und Jusky *mit Cola in der Kuschelecke einmummel* @Jusky: Könnte gut sein ... und Schlafentzug spielt auch mit rein, denke ich ... erst bin ich so müde, dass ich ins Bett gehe und dann bin ich hellwach sobald das Licht ausgeht ... *nerv* @Pinhead Solang es nur eine Maus und keine Ratte ist, geht's ja noch ...
-
ja nee - is gut - ist noch zu früh - thread-übergreifende Zusammenhänge sind noch nicht möglich ... BIMEIs Zitat meinte ich natürlich ... *aaargh*
-
@Gandalf: Oder "shawshank redemption" - aber sehr richtig! Toller Film! @Saga: hast du für dein Zitat vielleicht nen Tip? :confused:
-
Bayern-Fi: Plätzchen-Back-Aktion
Quoth antwortete auf sissle's Thema in Fachinformatiker.de Treffen's regionale Treffen
*freu* das wär schon nett! Nur wie komm ich da hin? Fahrgemeinschaft? Oder schaff ich das auch mit der Bahn, oder so? -
Bayern-Fi: Plätzchen-Back-Aktion
Quoth antwortete auf sissle's Thema in Fachinformatiker.de Treffen's regionale Treffen
wer darf denn da kommen? :confused: -
*freu* ja - in Blödelfilmen kenn ich mich aus "Die Mauern hier sind schon komisch. Anfangs hasst du sie, nach 'ner gewissen Zeit gewöhnst du dich dran und wenn noch mehr vergangen ist, kannst du ohne sie nicht mehr leben."
-
Robin Hood - Helden in Strumpfhosen?
-
hi hi hi - dann bin wohl ich dran *grins* "Wir sind alle Individuen!" "Ich nicht!"
-
Das ist aus "email for dich" oder "you've got mail"
-
Stimmt! Ich hab auch schon die ganze Zeit gedacht, dass das von der Augsburger Puppenkiste oder so ist ... aber auf das Urmel wär ich nicht gekommen ...
-
Hast Recht ... ich blick da irgendwie nicht (mehr) durch ...
-
Versteh deine Frage nicht ganz - die Variable "site" speichert doch bloß WELCHE Seite jetzt gerade Daten übertragen hat. Was im Moment übrig ist und funktioniert sieht so aus: /*#define _GNU_SOURCE*/ #include <stdlib.h> #include <string.h> #include <malloc.h> #include <stdio.h> #include <signal.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <kommun.h> #include <sys/types.h> #include <sys/stat.h> char translateHex(char hex); void ParseFormParameters(char * inp); const char * FindParameterValue(const char * name); const char * GetEnv(const char * what); struct Parameter_s { char * name; char * value; }; typedef struct Parameter_s Parameter; static Parameter * FormParameters = 0; static int NumFormParameters = 0; char translateHex(char hex) { if(hex >= 'A') return (hex & 0xdf) - 'A' + 10; else return hex - '0'; } void ParseFormParameters(char * inp) { static char * result; int tp,i; int num_par = 1; char * rp, * gp; int len = strlen(inp); if (len == 0) { NumFormParameters = 0; } result = 0; if (result != 0) free(result); result = (char *) malloc(len); tp=0; for(i = 0; i < len; i++) { if(inp[i] == '+') result[tp++] = ' '; else if(inp[i] == '%') { result[tp++] = translateHex(inp[i + 1]) * 16 + translateHex(inp[i + 2]); i += 2; /* Move past hex code */ } else /* An ordinary character */ result[tp++] = inp[i]; } len = tp; for (i = 0; i<len; i++) { if (result[i] == '&') num_par++; } if (FormParameters != 0) free(FormParameters); FormParameters = (Parameter *) malloc(sizeof(Parameter) * num_par); NumFormParameters = num_par; rp = result; for (i=0; i< num_par; i++) { FormParameters[i].name = ""; gp = strchr(rp, '='); if (gp == 0) break; /* error missing assignment */ *gp = 0; FormParameters[i].name = rp; gp++; rp = gp; gp = strchr(rp, '&'); if (gp != 0) *gp = 0; FormParameters[i].value = rp; if (gp!=0) rp = gp+1; else break; } } const char * FindParameterValue(const char * name) { int i; for (i=0; i< NumFormParameters; i++) { if (strcmp(name, FormParameters[i].name) == 0) { return FormParameters[i].value; break; } } return ""; } const char * GetEnv(const char * what) { char * r = getenv(what); if (!r) return ""; else return r; } int main(int argc, char *argv[]) { int prog; int par; int lang; int unit; char site[20]; FILE * param; FILE * test; FILE * dynp; FILE * dynp_in; FILE * setup; FILE * s_temp; FILE * s_temp_in; int kom_handle; /* Lesen der Umgebungsparameter */ const char * rm = GetEnv("REQUEST_METHOD"); const char * cl = GetEnv("CONTENT_LENGTH"); int len = atoi(cl); char * buffer = malloc(len+1); if (strcmp(rm, "POST") == 0) { fread(buffer,1, len, 0); buffer[len+1] = 0; } else if (strcmp(rm,"GET")==0) { buffer = getenv("QUERY_STRING"); } /* Lesen aller Form Parameter */ ParseFormParameters(buffer); /* Zugriff auf ausgewaehlte Parameter */ prog = atoi(FindParameterValue("program")); par = atoi(FindParameterValue("parameter")); lang = atoi(FindParameterValue("language")); unit = atoi(FindParameterValue("torqueunit")); /* Ablage der Daten in einer "Parameterdatei" */ test = fopen("test.dat", "w"); fprintf(test, "%i\n", prog); fprintf(test, "%i\n", par); fprintf(test, "%i\n", lang); fprintf(test, "%i\n", unit); /* Erzeugen der Antwort an den Browser */ printf("content-type: text/html\n\n"); /* Oeffnen des Templates */ param = fopen("/home/httpd/ohne_frames/test.html", "r"); if (!param) return 0; dynp = fopen("/home/httpd/test.html", "w"); 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)) { /* Einfuegen einer Funktion, welche die neu eingestellten Werte setzt */ fprintf(dynp, "<script> function loaded(){document.forms[0].parameter.value=\"%i\";\n", par); fprintf(dynp, "document.forms[0].program[%d].checked=true;\n", prog-1); fprintf(dynp, "}</script>\n"); } fputs(line, dynp); } fclose(dynp); dynp_in = fopen("/home/httpd/test.html", "r"); while (!feof(dynp_in)) { char buf[1024]; len = fread(&buf, 1, 1024, dynp_in); fwrite(buf, 1, len, stdout); } fclose(dynp_in); umask(~0666); /* Erzeugen einer benannten Fifo Datei */ mknod("/tmp/deprag_simul_cgicom.pipe", 0666 | S_IFIFO, 0); kom_handle = open("/tmp/deprag_simul_cgicom.pipe", O_RDWR | O_NONBLOCK); if (kom_handle != -1) { KommunikationsStruktur ks; ks.ProgrammNummer = prog; ks.Parameter = par; ks.Sprache = lang; ks.Momenteinheit = unit; write(kom_handle, &ks, sizeof(ks)); close(kom_handle); } return 0; } [/PHP]
-
Naja - im Moment mache ich ja keine Abfrage von der Variablen "site" mehr ...