\n"; print "
"; print "".__("Username").": | "; print "(".__("required").") | "; print "
".__("Account Type").": | "; print ""; print " |
".__("Account Suspended").": | "; print ""; } else { print " />"; } print " |
".__("Email Address").": | "; print "(".__("required").") | "; print "
".__("Password").": | "; print ""; if ($A != "UpdateAccount") { print " (".__("required").")"; } print " |
".__("Re-type password").": | "; print ""; if ($A != "UpdateAccount") { print " (".__("required").")"; } print " |
".__("Real Name").": | "; print ""; print " |
".__("IRC Nick").": | "; print ""; print " |
".__("Language").": | "; print ""; print " |
"; print " | "; if ($A == "UpdateAccount") { print " "; } else { print " "; } print ""; print " | "; print "
\n"; print __("Click on the Home link above to login."); print "
\n"; } } else { # no errors, go ahead and modify the user account $q = "UPDATE Users SET "; $q.= "Username = '".db_escape_string($U)."'"; if ($T) { $q.= ", AccountTypeID = ".intval($T); } if ($S) { $q.= ", Suspended = 1"; } else { $q.= ", Suspended = 0"; } $q.= ", Email = '".db_escape_string($E)."'"; if ($P) { $salt = generate_salt(); $hash = salted_hash($P, $salt); $q .= ", Passwd = '$hash', Salt = '$salt'"; } $q.= ", RealName = '".db_escape_string($R)."'"; $q.= ", LangPreference = '".db_escape_string($L)."'"; $q.= ", IRCNick = '".db_escape_string($I)."'"; $q.= " WHERE ID = ".intval($UID); $result = db_query($q, $dbh); if (!$result) { print __("Error trying to modify account, %s%s%s: %s.", "", htmlspecialchars($U,ENT_QUOTES), "", mysql_error($dbh)); } else { print __("The account, %s%s%s, has been successfully modified.", "", htmlspecialchars($U,ENT_QUOTES), ""); } } } return; } # search existing accounts # function search_accounts_form() { include("search_accounts_form.php"); return; } # search results page # function search_results_page($UTYPE,$O=0,$SB="",$U="",$T="", $S="",$E="",$R="",$I="") { # UTYPE: what account type the user belongs to # O: what row offset we're at # SB: how to sort the results # U: value to display for username # T: value to display for account type # S: value to display for account suspended # E: value to display for email address # R: value to display for RealName # I: value to display for IRC nick $HITS_PER_PAGE = 50; if ($O) { $OFFSET = intval($O); } else { $OFFSET = 0; } if ($OFFSET < 0) { $OFFSET = 0; } $search_vars = array(); $q = "SELECT Users.*, AccountTypes.AccountType "; $q.= "FROM Users, AccountTypes "; $q.= "WHERE AccountTypes.ID = Users.AccountTypeID "; if ($T == "u") { $q.= "AND AccountTypes.ID = 1 "; $search_vars[] = "T"; } elseif ($T == "t") { $q.= "AND AccountTypes.ID = 2 "; $search_vars[] = "T"; } elseif ($T == "d") { $q.= "AND AccountTypes.ID = 3 "; $search_vars[] = "T"; } if ($S) { $q.= "AND Users.Suspended = 1 "; $search_vars[] = "S"; } if ($U) { $q.= "AND Username LIKE '%".db_escape_string($U)."%' "; $search_vars[] = "U"; } if ($E) { $q.= "AND Email LIKE '%".db_escape_string($E)."%' "; $search_vars[] = "E"; } if ($R) { $q.= "AND RealName LIKE '%".db_escape_string($R)."%' "; $search_vars[] = "R"; } if ($I) { $q.= "AND IRCNick LIKE '%".db_escape_string($I)."%' "; $search_vars[] = "I"; } switch ($SB) { case 't': $q.= "ORDER BY AccountTypeID, Username "; break; case 'r': $q.= "ORDER BY RealName, AccountTypeID "; break; case 'i': $q.= "ORDER BY IRCNick, AccountTypeID "; break; case 'v': $q.= "ORDER BY LastVoted, Username "; break; default: $q.= "ORDER BY Username, AccountTypeID "; break; } $search_vars[] = "SB"; $q.= "LIMIT " . $HITS_PER_PAGE . " OFFSET " . $OFFSET; $dbh = db_connect(); $result = db_query($q, $dbh); if (!$result) { print __("No results matched your search criteria."); } else { $num_rows = mysql_num_rows($result); if ($num_rows) { print ""; print "".__("Username")." | "; print ""; print "".__("Type")." | "; print ""; print "".__("Status")." | "; print ""; print "".__("Real Name")." | "; print ""; print "".__("IRC Nick")." | "; print ""; print "".__("Last Voted")." | "; print ""; print "".__("Edit Account")." | "; print "
---|---|---|---|---|---|---|
"; print "".$row["Username"]." | "; print ""; print "".$row["AccountType"]; print " | "; print ""; if ($row["Suspended"]) { print __("Suspended"); } else { print __("Active"); } print " | "; print ""; $row["RealName"] ? print htmlspecialchars($row["RealName"],ENT_QUOTES) : print " "; print " | "; print ""; $row["IRCNick"] ? print htmlspecialchars($row["IRCNick"],ENT_QUOTES) : print " "; print " | "; print ""; $row["LastVoted"] ? print date("Y-m-d", $row["LastVoted"]) : print __("Never"); print " | "; print ""; if ($UTYPE == "Trusted User" && $row["AccountType"] == "Developer") { # TUs can't edit devs # print " | "; } else { $edit_url = "account.php?Action=DisplayAccount&ID=".$row["ID"]; print ""; print "Edit"; } print "
"; print "\n"; print " | "; print ""; print "\n"; print " | "; print "
\n"; print __("No more results to display."); print "
\n"; } } return; } # Display non-editable account info # function display_account_info($U="", $T="", $E="", $R="", $I="", $LV="") { # U: value to display for username # T: value to display for account type # E: value to display for email address # R: value to display for RealName # I: value to display for IRC nick # LV: value to display for last voted global $SUPPORTED_LANGS; print "\n"; print " | |
".__("Username").": | \n"; print "".$U." | \n"; print "
".__("Account Type").": | \n"; print ""; if ($T == "User") { print __("User"); } elseif ($T == "Trusted User") { print __("Trusted User"); } elseif ($T == "Developer") { print __("Developer"); } print " | \n"; print "
".__("Email Address").": | \n"; print "".htmlspecialchars($E,ENT_QUOTES)." | \n"; print "
".__("Real Name").": | \n"; print "".htmlspecialchars($R,ENT_QUOTES)." | \n"; print "
".__("IRC Nick").": | \n"; print "".htmlspecialchars($I,ENT_QUOTES)." | \n"; print "
".__("Last Voted").": | \n"; print ""; print $LV ? date("Y-m-d", $LV) : __("Never"); print " | \n"; print "
".__("View this user's packages")." | \n"; print "