Browse code

Add language field (hidden) in the subscribe form

Dario Rodriguez authored on 20/05/2015 14:47:40
Showing 4 changed files
... ...
@@ -5,3 +5,4 @@ res/gen_res.c
5 5
 res/gen_res.h
6 6
 src/newslettersan.conf
7 7
 src/newslettersan.log
8
+src/emails.txt
... ...
@@ -3,8 +3,9 @@
3 3
 <head><title>Newsletter</title></head>
4 4
 <body>
5 5
 <form action="/~/addemail" method="post">
6
+	<input type="hidden" name="language" value="eng">
6 7
 	<input id="email" name="email" placeholder="e-mail">
7 8
 	<input type="submit" value="subscribe">
8
-<form>
9
+</form>
9 10
 </body>
10 11
 </html>
... ...
@@ -1,6 +1,7 @@
1 1
 WEBKERNEL=../../webkernel/src
2 2
 CC=gcc
3
-CFLAGS=-g -Wall -I$(WEBKERNEL) -I../res -DWK_DEBUG_IO -DWK_DEBUG_CONN -DBUFSIZE=16384
3
+#CFLAGS=-g -Wall -I$(WEBKERNEL) -I../res -DWK_DEBUG_IO -DWK_DEBUG_CONN -DBUFSIZE=16384
4
+CFLAGS=-g -Wall -I$(WEBKERNEL) -I../res -DBUFSIZE=16384
4 5
 LDFLAGS=
5 6
 
6 7
 all: newslettersan
... ...
@@ -144,6 +144,7 @@ callback_post(wk *web, int connid, wk_uri *uri, void *userptr)
144 144
         /* to be able to retrieve them in callback_http */
145 145
         if(strcmp(partialpath,"/addemail")==0) {
146 146
                 wk_post_addvalid(web,connid,"email",NULL);
147
+                wk_post_addvalid(web,connid,"language",NULL);
147 148
         }
148 149
         return(wkact_finished);
149 150
 }
... ...
@@ -189,13 +190,27 @@ callback_http(wk *web, int connid, wk_uri *uri, void *userptr)
189 190
                 newsl_serve_buffer_with_rootdir(newsl,web,connid,(char *) res->data,res->len,mime_getdefault(res->name,"application/octet-stream"));
190 191
                 return(wkact_finished);
191 192
         } else if(strcmp(partialpath,"/addemail")==0) {
192
-                char *email;
193
-                if((email=wk_post_get(web,connid,"email",NULL))==NULL) {
193
+                char *email,*language;
194
+                if((email=wk_post_get(web,connid,"email",NULL))==NULL || (language=wk_post_get(web,connid,"language",NULL))==NULL) {
194 195
                         wk_serve_error(web,connid,wkerr_internal);
195 196
                         return(wkact_finished);
196 197
                 }
197 198
                 #warning TODO: do something with the email
198
-                wk_serve_buffer_as_file(web,connid,email,strlen(email),"text/plain");
199
+		{
200
+			FILE *f;
201
+			if((f=fopen("emails.txt","a"))==NULL) {
202
+        			wk_serve_error(web,connid,wkerr_internal);
203
+                        	return(wkact_finished);
204
+			}
205
+			fprintf(f,"%s %s\n",language,email);
206
+			fclose(f);
207
+		}
208
+        	if((res=res_find(resindexdata,"success.html"))!=NULL) {
209
+                	wk_serve_buffer_as_file(web,connid,(char *) res->data,res->len,mime_getdefault(res->name,"application/octet-stream"));
210
+		} else {
211
+			char success[]={"The email has been saved.\n"};
212
+                	wk_serve_buffer_as_file(web,connid,success,strlen(success),"text/plain");
213
+		}
199 214
                 return(wkact_finished);
200 215
         }
201 216
         wk_serve_error(web,connid,wkerr_notfound);