says it's needed
* Established that a one-to-one WebCit/Citadel correspondence will
be required. No big deal due to shared code segments.
+ * Added "change password"
Thu Dec 31 21:53:20 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
* Final cvs commit for 1998 (an awful year, I'm glad to see it over).
display_error("Registration information has been saved.");
}
}
+
+
+
+
+
+/*
+ * display form for changing your password
+ */
+void display_changepw(void) {
+ char buf[256];
+
+ printf("HTTP/1.0 200 OK\n");
+ output_headers(1);
+
+ wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
+ wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
+ wprintf("<B>Change your password</B>\n");
+ wprintf("</FONT></TD></TR></TABLE>\n");
+
+ wprintf("<CENTER>");
+ serv_puts("MESG changepw");
+ serv_gets(buf);
+ if (buf[0]=='1') fmout(NULL);
+
+ wprintf("<FORM ACTION=\"changepw\" METHOD=\"POST\">\n");
+ wprintf("<CENTER><TABLE border><TR><TD>Enter new password:</TD>\n");
+ wprintf("<TD><INPUT TYPE=\"password\" NAME=\"newpass1\" VALUE=\"\" MAXLENGTH=\"20\"></TD></TR>\n");
+ wprintf("<TR><TD>Enter it again to confirm:</TD>\n");
+ wprintf("<TD><INPUT TYPE=\"password\" NAME=\"newpass2\" VALUE=\"\" MAXLENGTH=\"20\"></TD></TR>\n");
+ wprintf("</TABLE>\n");
+ wprintf("<INPUT type=\"submit\" NAME=\"action\" VALUE=\"Change\">\n");
+ wprintf("<INPUT type=\"submit\" NAME=\"action\" VALUE=\"Cancel\">\n");
+ wprintf("</CENTER></BODY></HTML>\n");
+ wDumpContent();
+ }
+
+/*
+ * change password
+ */
+void changepw(void) {
+ char buf[256];
+ char newpass1[32], newpass2[32];
+
+ if (strcmp(bstr("action"),"Change")) {
+ display_error("Cancelled. Password was not changed.");
+ return;
+ }
+
+ strcpy(newpass1, bstr("newpass1"));
+ strcpy(newpass2, bstr("newpass2"));
+
+ if (strcasecmp(newpass1, newpass2)) {
+ display_error("They don't match. Password was not changed.");
+ return;
+ }
+
+ serv_printf("SETP %s", newpass1);
+ serv_gets(buf);
+ if (buf[0]=='2') display_success(&buf[4]);
+ else display_error(&buf[4]);
+ }
void zapped_list(void);
void display_zap(void);
void zap(void);
-void display_error(char *errormessage);
+void display_error(char *);
+void display_success(char *);
void display_entroom(void);
void entroom(void);
void display_editroom(void);
void select_floor_to_edit_pic(void);
void display_reg(int);
void register_user(void);
+void display_changepw(void);
+void changepw(void);
serv_puts("UCLS 1");
serv_gets(buf);
- /* FIX display something other than an error if it's ok */
if (buf[0] != 'x') {
- display_error(&buf[4]);
+ display_success(&buf[4]);
return;
}
}
/*
- * Convenience function to display a page containing only an error string
+ * Convenience functions to display a page containing only a string
*/
-void display_error(char *errormessage) {
+void convenience_page(char *titlebarcolor, char *titlebarmsg, char *messagetext) {
printf("HTTP/1.0 200 OK\n");
output_headers(1);
- wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=770000><TR><TD>");
+ wprintf("<TABLE WIDTH=100% BORDER=0 BGCOLOR=%s><TR><TD>", titlebarcolor);
wprintf("<FONT SIZE=+1 COLOR=\"FFFFFF\"");
- wprintf("<B>Error</B>\n");
+ wprintf("<B>%s</B>\n", titlebarmsg);
wprintf("</FONT></TD></TR></TABLE><BR>\n");
- escputs(errormessage);
+ escputs(messagetext);
wprintf("</BODY></HTML>\n");
wDumpContent();
}
+void display_error(char *errormessage) {
+ convenience_page("770000", "Error", errormessage);
+ }
+
+void display_success(char *successmessage) {
+ convenience_page("007700", "OK", successmessage);
+ }
}
}
- /* FIX unfix etc. here's where the addurls() WAS... */
if (!strcasecmp(action, "static")) {
strcpy(buf, &cmd[12]);
for (a=0; a<strlen(buf); ++a) if (isspace(buf[a])) buf[a]=0;
register_user();
}
+ else if (!strcasecmp(action, "display_changepw")) {
+ display_changepw();
+ }
+
+ else if (!strcasecmp(action, "changepw")) {
+ changepw();
+ }
+
/* When all else fails... */
else {
printf("HTTP/1.0 200 OK\n");