account.php 17.8 KB
Newer Older
Dries's avatar
Dries committed
1
<?
Dries's avatar
 
Dries committed
2

Dries's avatar
Dries committed
3
include "includes/theme.inc";
Dries's avatar
Dries committed
4

Dries's avatar
Dries committed
5 6

function account_get_user($uname) {
Dries's avatar
 
Dries committed
7 8 9 10
  $result = db_query("SELECT * FROM users WHERE userid = '$uname'");
  return db_fetch_object($result);
}

Dries's avatar
Dries committed
11 12 13 14 15 16 17 18
function account_login($userid = "") {
  $output .= "<FORM ACTION=\"account.php\" METHOD=\"post\">\n";
  $output .= " <TABLE BORDER=\"0\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n";
  $output .= "  <TR><TH>User ID:</TH><TD><INPUT NAME=\"userid\" VALUE=\"$userid\"></TD></TR>\n";
  $output .= "  <TR><TH>Password:</TH><TD><INPUT NAME=\"passwd\" TYPE=\"password\"></TD></TR>\n";
  $output .= "  <TR><TD ALIGN=\"center\"><INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Login\"></TD></TR>\n";
  $output .= "  <TR><TD ALIGN=\"center\"><A HREF=\"account.php?op=new\">Register</A> as new user.</A></TD></TR>\n";
  $output .= "  <TR><TD COLSPAN=\"2\">$user->ublock</TD></TR>\n";
Dries's avatar
 
Dries committed
19 20 21
  $output .= " </TABLE>\n";
  $output .= "</FORM>\n";
  return $output;
22
}
Dries's avatar
 
Dries committed
23

Dries's avatar
Dries committed
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
function account_session_start($userid, $passwd) {
  global $user;
  session_start();
  $user = new User($userid, $passwd);
  if ($user && user_valid()) {
    session_register("user");
    watchdog(1, "session opened for user `$user->userid'.");
  }
  else {
    watchdog(2, "failed login for user `$userid'.");
  }
}

function account_session_close() {
  global $user;  
  watchdog(1, "session closed for user `$user->userid'.");
  session_unset();
  session_destroy();
  unset($user);
}

function account_user_edit() {
  global $theme, $user;

  if ($user->id && user_valid()) {
    ### Generate output/content:
    $output .= "<FORM ACTION=\"account.php\" METHOD=\"post\">\n";
    $output .= "<B>Real name:</B><BR>\n";
    $output .= "<INPUT NAME=\"edit[name]\" MAXLENGTH=\"55\" SIZE=\"30\" VALUE=\"$user->name\"><BR>\n";
    $output .= "<I>Optional.</I><P>\n";
    $output .= "<B>Real e-mail address:</B><BR>\n";
    $output .= "<INPUT NAME=\"edit[email]\" MAXLENGTH=\"55\" SIZE=\"30\" VALUE=\"$user->email\"><BR>\n";
    $output .= "<I>Required, but never displayed publicly: needed in case you lose your password.</I><P>\n";
    $output .= "<B>Fake e-mail address:</B><BR>\n";
    $output .= "<INPUT NAME=\"edit[femail]\" MAXLENGTH=\"55\" SIZE=\"30\" VALUE=\"$user->femail\"><BR>\n";
    $output .= "<I>Optional, and displayed publicly by your comments. You may spam proof it if you want.</I><P>\n";
    $output .= "<B>URL of homepage:</B><BR>\n";
    $output .= "<INPUT NAME=\"edit[url]\" MAXLENGTH=\"55\" SIZE=\"30\" VALUE=\"$user->url\"><BR>\n";
    $output .= "<I>Optional, but make sure you enter fully qualified URLs only. That is, remember to include \"http://\".</I><P>\n";
    $output .= "<B>Bio:</B> (255 char. limit)<BR>\n";
    $output .= "<TEXTAREA NAME=\"edit[bio]\" COLS=\"35\" ROWS=\"5\" WRAP=\"virtual\">$user->bio</TEXTAREA><BR>\n";
    $output .= "<I>Optional. This biographical information is publicly displayed on your user page.</I><P>\n";
    $output .= "<B>Singature:</B> (255 char. limit)<BR>\n";
    $output .= "<TEXTAREA NAME=\"edit[signature]\" COLS=\"35\" ROWS=\"5\" WRAP=\"virtual\">$user->signature</TEXTAREA><BR>\n";
    $output .= "<I>Optional. This information will be publicly displayed at the end of your comments. </I><P>\n";
    $output .= "<B>Password:</B><BR>\n";
    $output .= "<INPUT TYPE=\"password\" NAME=\"edit[pass1]\" SIZE=\"10\" MAXLENGTH=\"20\"><INPUT TYPE=\"password\" NAME=\"edit[pass2]\" SIZE=\"10\" MAXLENGTH=\"20\"><BR>\n";
    $output .= "<I>Enter your new password twice if you want to change your current password or leave it blank if you are happy with your current password.</I><P>\n";
    $output .= "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save user information\"><BR>\n";
    $output .= "</FORM>\n";

    ### Display output/content:
    $theme->header();
    $theme->box("Edit your information", $output);
    $theme->footer();
  }
  else {
    $theme->header();
    $theme->box("Login", account_login($userid)); 
    $theme->footer();
  }
}

function account_user_save($edit) {
  global $user;
  if ($user && user_valid()) {
    $data[name] = $edit[name];
    $data[email] = $edit[email];
    $data[femail] = $edit[femail];
    $data[url] = $edit[url];
    $data[bio] = $edit[bio];
    $data[signature] = $edit[signature];
    if ($edit[pass1] == $edit[pass2] && !empty($edit[pass1])) { $data[passwd] = $edit[pass1]; }
    dbsave("users", $data, $user->id);
    user_rehash();
  }
}

function account_page_edit() {
  global $theme, $themes, $user;

  if ($user && user_valid()) {
    ### Generate output/content:
    $output .= "<FORM ACTION=\"account.php\" METHOD=\"post\">\n";
    $output .= "<B>Theme:</B><BR>\n";

    ### Loop (dynamically) through all available themes:
    foreach ($themes as $key=>$value) { 
      $options .= "<OPTION VALUE=\"$key\"". (($user->theme == $key) ? " SELECTED" : "") .">$key - $value[1]</OPTION>";
    }

    $output .= "<SELECT NAME=\"edit[theme]\">$options</SELECT><BR>\n";
    $output .= "<I>Selecting a different theme will change the look and feel of the site.</I><P>\n";
    $output .= "<B>Maximum number of stories:</B><BR>\n";
    $output .= "<INPUT NAME=\"edit[storynum]\" MAXLENGTH=\"3\" SIZE=\"3\" VALUE=\"$user->storynum\"><P>\n";
    $output .= "<I>The maximum number of stories that will be displayed on the main page.</I><P>\n";
    $options  = "<OPTION VALUE=\"nested\"". ($user->umode == "nested" ? " SELECTED" : "") .">Nested</OPTION>";
    $options .= "<OPTION VALUE=\"flat\"". ($user->umode == "flat" ? " SELECTED" : "") .">Flat</OPTION>";
    $options .= "<OPTION VALUE=\"threaded\"". ($user->umode == "threaded" ? " SELECTED" : "") .">Threaded</OPTION>";
    $output .= "<B>Comment display mode:</B><BR>\n";
    $output .= "<SELECT NAME=\"edit[umode]\">$options</SELECT><P>\n";
    $options  = "<OPTION VALUE=\"0\"". ($user->uorder == 0 ? " SELECTED" : "") .">Oldest first</OPTION>";
    $options .= "<OPTION VALUE=\"1\"". ($user->uorder == 1 ? " SELECTED" : "") .">Newest first</OPTION>";
    $options .= "<OPTION VALUE=\"2\"". ($user->uorder == 2 ? " SELECTED" : "") .">Highest scoring first</OPTION>";
    $output .= "<B>Comment sort order:</B><BR>\n";
    $output .= "<SELECT NAME=\"edit[uorder]\">$options</SELECT><P>\n";
    $options  = "<OPTION VALUE=\"-1\"". ($user->thold == -1 ? " SELECTED" : "") .">-1: Display uncut and raw comments.</OPTION>";
    $options .= "<OPTION VALUE=\"0\"". ($user->thold == 0 ? " SELECTED" : "") .">0: Display almost all comments.</OPTION>";
    $options .= "<OPTION VALUE=\"1\"". ($user->thold == 1 ? " SELECTED" : "") .">1: Display almost no anonymous comments.</OPTION>";
    $options .= "<OPTION VALUE=\"2\"". ($user->thold == 2 ? " SELECTED" : "") .">2: Display comments with score +2 only.</OPTION>";
    $options .= "<OPTION VALUE=\"3\"". ($user->thold == 3 ? " SELECTED" : "") .">3: Display comments with score +3 only.</OPTION>";
    $options .= "<OPTION VALUE=\"4\"". ($user->thold == 4 ? " SELECTED" : "") .">4: Display comments with score +4 only.</OPTION>";
    $options .= "<OPTION VALUE=\"5\"". ($user->thold == 5 ? " SELECTED" : "") .">5: Display comments with score +5 only.</OPTION>";
    $output .= "<B>Comment threshold:</B><BR>\n";
    $output .= "<SELECT NAME=\"edit[thold]\">$options</SELECT><BR>\n";
    $output .= "<I>Comments that scored less than this setting will be ignored. Anonymous comments start at 0, comments of people logged on start at 1 and moderators can add and subtract points.</I><P>\n";
    $output .= "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Save page settings\"><BR>\n";
    $output .= "</FORM>\n";

    ### Display output/content:
    $theme->header();
    $theme->box("Customize your page", $output);
    $theme->footer();
  }
  else {
    $theme->header();
    $theme->box("Login", account_login($userid)); 
    $theme->footer();
  }
}

function account_page_save($edit) {
  global $user;
  if ($user && user_valid()) {
    $data[theme] = $edit[theme];
    $data[storynum] = $edit[storynum];
    $data[umode] = $edit[umode];
    $data[uorder] = $edit[uorder];
    $data[thold] = $edit[thold];
    dbsave("users", $data, $user->id);
    user_rehash();
  }
166
}
Dries's avatar
 
Dries committed
167

Dries's avatar
Dries committed
168
function account_user($uname) {
Dries's avatar
 
Dries committed
169
  global $user, $theme;
Dries's avatar
 
Dries committed
170 171 172
  
  if ($user && $uname && $user->userid == $uname) {
    $output .= "<P>Welcome $user->userid! This is <B>your</B> user info page. There are many more, but this one is yours. You are probably most interested in editing something, but if you need to kill some time, this place is as good as any other place.</P>\n";
Dries's avatar
 
Dries committed
173
    $output .= "<TABLE BORDER=\"0\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n";
174 175 176 177 178 179
    $output .= " <TR><TD ALIGN=\"right\"><B>User ID:</B></TD><TD>$user->userid</TD></TR>\n";
    $output .= " <TR><TD ALIGN=\"right\"><B>Name:</B></TD><TD>". format_data($user->name) ."</TD></TR>\n";
    $output .= " <TR><TD ALIGN=\"right\"><B>E-mail:</B></TD><TD>". format_email_address($user->femail) ."</A></TD></TR>\n";
    $output .= " <TR><TD ALIGN=\"right\"><B>URL:</B></TD><TD>". format_url($user->url) ."</TD></TR>\n";
    $output .= " <TR><TD ALIGN=\"right\" VALIGN=\"top\"><B>Bio:</B></TD><TD>". format_data($user->bio) ."</TD></TR>\n";
    $output .= " <TR><TD ALIGN=\"right\" VALIGN=\"top\"><B>Signature:</B></TD><TD>". format_data($user->signature) ."</TD></TR>\n";
Dries's avatar
 
Dries committed
180
    $output .= "</TABLE>\n";
Dries's avatar
 
Dries committed
181 182

    ### Display account information:
Dries's avatar
 
Dries committed
183
    $theme->header();
184
    $theme->box("Your user information", $output);
Dries's avatar
 
Dries committed
185 186
    $theme->footer();
  }
Dries's avatar
Dries committed
187
  elseif ($uname && $account = account_get_user($uname)) {
Dries's avatar
 
Dries committed
188
    $box1 .= "<TABLE BORDER=\"0\" CELLPADDING=\"1\" CELLSPACING=\"1\">\n";
189
    $box1 .= " <TR><TD ALIGN=\"right\"><B>Username:</B></TD><TD>$account->userid</TD></TR>\n";
190 191 192
    $box1 .= " <TR><TD ALIGN=\"right\"><B>E-mail:</B></TD><TD>". format_email_address($account->femail) ."</TD></TR>\n";
    $box1 .= " <TR><TD ALIGN=\"right\"><B>URL:</B></TD><TD>". format_url($account->url) ."</TD></TR>\n";
    $box1 .= " <TR><TD ALIGN=\"right\"><B>Bio:</B></TD><TD>". format_data($account->bio) ."</TD></TR>\n";
193 194 195 196
    $box1 .= "</TABLE>\n";

    $result = db_query("SELECT c.cid, c.pid, c.sid, c.subject, c.timestamp, s.subject AS story FROM comments c LEFT JOIN users u ON u.id = c.author LEFT JOIN stories s ON s.id = c.sid WHERE u.userid = '$uname' AND c.timestamp > ". (time() - 1209600) ." ORDER BY cid DESC LIMIT 10");
    while ($comment = db_fetch_object($result)) {
Dries's avatar
 
Dries committed
197 198 199 200 201 202
      $box2 .= "<TABLE BORDER=\"0\" CELLPADDING=\"1\" CELLSPACING=\"1\">\n";
      $box2 .= " <TR><TD ALIGN=\"right\"><B>Comment:</B></TD><TD><A HREF=\"discussion.php?id=$comment->sid&cid=$comment->cid&pid=$comment->pid\">$comment->subject</A></TD></TR>\n";
      $box2 .= " <TR><TD ALIGN=\"right\"><B>Date:</B></TD><TD>". format_date($comment->timestamp) ."</TD></TR>\n";
      $box2 .= " <TR><TD ALIGN=\"right\"><B>Story:</B></TD><TD><A HREF=\"discussion.php?id=$comment->sid\">$comment->story</A></TD></TR>\n";
      $box2 .= "</TABLE>\n";
      $box2 .= "<BR><BR>\n";
203 204
      $comments++;
    }
Dries's avatar
 
Dries committed
205

206 207
    $result = db_query("SELECT d.* FROM diaries d LEFT JOIN users u ON u.id = d.author WHERE u.userid = '$uname' AND d.timestamp > ". (time() - 1209600) ."  ORDER BY id DESC LIMIT 2");
    while ($diary = db_fetch_object($result)) {
Dries's avatar
 
Dries committed
208
      $box3 .= "<DL><DT><B>". date("l, F jS", $diary->timestamp) .":</B></DT><DD><P>". check_output($diary->text) ."</P><P>[ <A HREF=\"diary.php?op=view&name=$uname\">more</A> ]</P></DD></DL>\n";
209 210 211
      $diaries++;
    }
    
Dries's avatar
 
Dries committed
212
    ### Display account information:
Dries's avatar
 
Dries committed
213
    $theme->header();
214 215 216
    if ($box1) $theme->box("User information for $uname", $box1);
    if ($box2) $theme->box("$uname has posted ". format_plural($comments, "comment", "comments") ." recently", $box2);
    if ($box3) $theme->box("$uname has posted ". format_plural($diaries, "diary entry", "diary entries") ." recently", $box3);
Dries's avatar
 
Dries committed
217 218 219
    $theme->footer();
  }
  else { 
Dries's avatar
 
Dries committed
220
    ### Display login form:
Dries's avatar
 
Dries committed
221
    $theme->header();
Dries's avatar
Dries committed
222
    $theme->box("Login", account_login($userid)); 
Dries's avatar
 
Dries committed
223
    $theme->footer();
Dries's avatar
Dries committed
224 225
  }
}
Dries's avatar
 
Dries committed
226

Dries's avatar
Dries committed
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
function account_register() {
  if ($rval = account_validate($new)) { 
    account_new($new, "<B>Error: $rval</B>");
  }
  else {
    ### Generate new password:
    $new[passwd] = account_password();
    dbsave("users", $new);

    if ($mail == 1) {
      ### Display account information:
      $theme->header();
      $theme->box("Account details", "Your password is: <B>$new[passwd]</B><BR><A HREF=\"account.php?op=Login&userid=$new[userid]&passwd=$new[passwd]\">Login</A> to change your personal settings.");
      $theme->footer();
    } 
    else {
      ### Send e-mail with account details:
      mail($new[email], "Account details for $sitename", "$new[userid],\n\nyour $sitename member account has been created succesfully.  To be able to use it, you must login using the information below.  Please save this mail for further reference.\n\n   username: $new[userid]\n     e-mail: $new[email]\n   password: $new[passwd]\n\nThis password is generated by a randomizer.  It is recommended that you change this password immediately.\n\n$contact_signature", "From: $contact_email\nX-Mailer: PHP/" . phpversion());

      ### Display account information:
      $theme->header();
      $theme->box("Account details", "Your member account has been created and the details necessary to login have been sent to your e-mail account <B>$new[email]</B>.  Once you received the account confirmation, hit <A HREF=\"account.php\">this link</A> to login.");
      $theme->footer();
    }
    watchdog(1, "new user `$new[userid]' registered with e-mail address `$new[email]'");
  }
}

function account_new($user = "", $error = "") {
256 257
  global $theme;

Dries's avatar
 
Dries committed
258 259 260 261 262 263 264 265 266 267
  $output .= "<FORM ACTION=\"account.php\" METHOD=post>\n";
  $output .= "<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=2>\n";
  if (!empty($error)) $output .= "<TR><TD COLSPAN=2>$error</TD></TR>\n";
  $output .= "<TR><TH>Name:</TH><TD><INPUT NAME=\"new[name]\" VALUE=\"$new[name]\"></TD></TR>\n";
  $output .= "<TR><TH>User ID:</TR><TD><INPUT NAME=\"new[userid]\" VALUE=\"$new[userid]\"></TD></TR>\n";
  $output .= "<TR><TH>E-mail:</TH><TD><INPUT NAME=\"new[email]\" VALUE=\"$new[email]\"></TD></TR>\n";
  $output .= "<TR><TD ALIGN=right COLSPAN=2><INPUT NAME=op TYPE=submit VALUE=\"Register\"></TD></TR>\n";
  $output .= "</TABLE>\n";
  $output .= "</FORM>\n";

Dries's avatar
Dries committed
268
  $theme->header();
Dries's avatar
 
Dries committed
269
  $theme->box("Register as new user", $output);
Dries's avatar
Dries committed
270 271
  $theme->footer();
}
Dries's avatar
 
Dries committed
272

Dries's avatar
Dries committed
273 274
function account_validate($user) {
  include "includes/ban.inc";
Dries's avatar
 
Dries committed
275

276 277 278
  ### Verify username and e-mail address:
  $user[userid] = trim($user[userid]);
  if (empty($user[email]) || (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $user[email]))) $rval = "the specified e-mail address is not valid.<BR>";
Dries's avatar
 
Dries committed
279
  if (empty($user[userid]) || (ereg("[^a-zA-Z0-9_-]", $user[userid]))) $rval = "the specified username '$new[userid]' is not valid.<BR>";
280
  if (strlen($user[userid]) > 15) $rval = "the specified username is too long: it must be less than 15 characters.";
Dries's avatar
 
Dries committed
281 282

  ### Check to see whether the username or e-mail address are banned:
Dries's avatar
 
Dries committed
283 284
  if ($ban = ban_match($user[userid], $type2index[usernames])) $rval = "the specified username is banned  for the following reason: <I>$ban->reason</I>.";
  if ($ban = ban_match($user[email], $type2index[addresses])) $rval = "the specified e-mail address is banned for the following reason: <I>$ban->reason</I>.";
Dries's avatar
Dries committed
285

Dries's avatar
 
Dries committed
286
  ### Verify whether username and e-mail address are unique:
Dries's avatar
 
Dries committed
287 288
  if (db_num_rows(db_query("SELECT userid FROM users WHERE LOWER(userid)=LOWER('$user[userid]')")) > 0) $rval = "the specified username is already taken.";
  if (db_num_rows(db_query("SELECT email FROM users WHERE LOWER(email)=LOWER('$user[email]')")) > 0) $rval = "the specified e-mail address is already registered.";
Dries's avatar
 
Dries committed
289

290
  return($rval);
Dries's avatar
Dries committed
291
}
Dries's avatar
 
Dries committed
292

Dries's avatar
Dries committed
293
function account_password($min_length=6) {
294
  mt_srand((double)microtime() * 1000000);
Dries's avatar
 
Dries committed
295
  $words = array("foo","bar","guy","neo","tux","moo","sun","asm","dot","god","axe","geek","nerd","fish","hack","star","mice","warp","moon","hero","cola","girl","fish","java","perl","boss","dark","sith","jedi","drop","mojo");
Dries's avatar
 
Dries committed
296
  while(strlen($password) < $min_length) $password .= $words[mt_rand(0, count($words))];
297
  return $password;
Dries's avatar
Dries committed
298 299
}

Dries's avatar
Dries committed
300 301
function account_comments() {
  global $theme, $user;
Dries's avatar
 
Dries committed
302

Dries's avatar
 
Dries committed
303
  $output .= "<P>This page might be helpful in case you want to keep track of your most recent comments in any of the discussions.  You are given an overview of your comments in each of the stories you participates in along with the number of replies each comment got.\n<P>\n"; 
Dries's avatar
 
Dries committed
304 305 306 307 308

  ### Perform query:
  $sresult = db_query("SELECT s.id, s.subject, COUNT(s.id) as count FROM comments c LEFT JOIN stories s ON c.sid = s.id WHERE c.author = $user->id GROUP BY s.id DESC LIMIT 5");
  
  while ($story = db_fetch_object($sresult)) {
Dries's avatar
 
Dries committed
309
    $output .= "<LI>". format_plural($story->count, comment, comments) ." in story `<A HREF=\"discussion.php?id=$story->id\">$story->subject</A>`:</LI>\n";
Dries's avatar
 
Dries committed
310 311 312 313
    $output .= " <UL>\n";
   
    $cresult = db_query("SELECT * FROM comments WHERE author = $user->id AND sid = $story->id");
    while ($comment = db_fetch_object($cresult)) {
Dries's avatar
 
Dries committed
314
      $output .= "  <LI><A HREF=\"discussion.php?id=$story->id&cid=$comment->cid&pid=$comment->pid\">$comment->subject</A> (<B>". format_plural(discussion_num_replies($comment->cid), "reply", "replies") ."</B>)</LI>\n";
Dries's avatar
 
Dries committed
315 316 317
    }
    $output .= " </UL>\n";
  }
Dries's avatar
Dries committed
318 319 320 321
     
  $theme->header();
  $theme->box("Track your comments", $output);
  $theme->footer();
Dries's avatar
 
Dries committed
322 323
}

324
switch ($op) {
Dries's avatar
Dries committed
325
  case "Login":
Dries's avatar
Dries committed
326 327
    account_session_start($userid, $passwd);
    header("Location: account.php?op=info");
Dries's avatar
Dries committed
328
    break;
329
  case "new":
Dries's avatar
Dries committed
330
    account_new();
Dries's avatar
Dries committed
331
    break;
Dries's avatar
 
Dries committed
332
  case "view":
Dries's avatar
Dries committed
333
    account_user($name);
Dries's avatar
 
Dries committed
334
    break;
335
  case "info":
Dries's avatar
Dries committed
336
    account_user($user->userid);
337
    break;
Dries's avatar
 
Dries committed
338
  case "discussion":
Dries's avatar
Dries committed
339
    account_comments();
Dries's avatar
 
Dries committed
340
    break;
natrak's avatar
natrak committed
341
  case "logout":
Dries's avatar
Dries committed
342 343
    account_session_close();
    header("Location: account.php");
Dries's avatar
Dries committed
344
    break;
345
  case "Register":
Dries's avatar
Dries committed
346
    account_register($new);
Dries's avatar
Dries committed
347
    break;
Dries's avatar
 
Dries committed
348
  case "user":
Dries's avatar
Dries committed
349
    account_user_edit();
Dries's avatar
Dries committed
350
    break;
Dries's avatar
 
Dries committed
351
  case "page":
Dries's avatar
Dries committed
352
    account_page_edit();
Dries's avatar
Dries committed
353
    break;
354
  case "Save user information":
Dries's avatar
Dries committed
355 356
    account_user_save($edit);
    account_user($user->userid);
Dries's avatar
Dries committed
357
    break;
358
  case "Save page settings":
Dries's avatar
Dries committed
359
    account_page_save($edit);
360
    header("Location: account.php?op=info");
Dries's avatar
Dries committed
361
    break;
Dries's avatar
 
Dries committed
362
  default: 
Dries's avatar
Dries committed
363
    account_user($user->userid);
Dries's avatar
Dries committed
364
}
Dries's avatar
 
Dries committed
365

Dries's avatar
Dries committed
366
?>