working on the accounts stuff

This commit is contained in:
eric 2004-06-21 19:36:54 +00:00
parent 84e15d0463
commit 38eda65735
11 changed files with 809 additions and 16 deletions

View file

@ -22,6 +22,7 @@ CREATE TABLE Users (
ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
AccountTypeID TINYINT UNSIGNED NOT NULL DEFAULT 1, AccountTypeID TINYINT UNSIGNED NOT NULL DEFAULT 1,
Suspended TINYINT UNSIGNED NOT NULL DEFAULT 0, Suspended TINYINT UNSIGNED NOT NULL DEFAULT 0,
Username CHAR(32) NOT NULL,
Email CHAR(64) NOT NULL, Email CHAR(64) NOT NULL,
Passwd CHAR(32) NOT NULL, Passwd CHAR(32) NOT NULL,
RealName CHAR(64) NOT NULL DEFAULT '', RealName CHAR(64) NOT NULL DEFAULT '',
@ -30,6 +31,7 @@ CREATE TABLE Users (
LastVoted BIGINT UNSIGNED NOT NULL DEFAULT 0, LastVoted BIGINT UNSIGNED NOT NULL DEFAULT 0,
NewPkgNotify TINYINT UNSIGNED NOT NULL DEFAULT 0, NewPkgNotify TINYINT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (ID), PRIMARY KEY (ID),
UNIQUE (Username),
UNIQUE (Email), UNIQUE (Email),
INDEX (AccountTypeID), INDEX (AccountTypeID),
INDEX (NewPkgNotify), INDEX (NewPkgNotify),

View file

@ -1,3 +1,48 @@
Setup on ArchLinux:
===================
1) Install Apache, MySQL, PHP, and Subversion
# pacman -Sy apache mysql php subversion
2) Set a local 'hostname' of 'aur'
- Edit /etc/hosts and append 'aur' to loopback address
127.0.0.1 localhost aur
3) Configure Apache
- Edit /etc/httpd/conf/httpd.conf and append the following:
Replace MYUSER with your username.
<VirtualHost aur:80>
Servername aur
DocumentRoot /home/MYUSER/aur/web/html
ErrorLog /var/log/httpd/aur-error.log
CustomLog /var/log/httpd/aur-access.log combined
<Directory /home/MYUSER/aur/web/html>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
4) Configure PHP
- Edit /etc/php.ini and uncomment the mysql extension line:
extension=mysql.so
5) Configure MySQL
- Connect to the mysql client
# mysql -uroot
- Issue the following commands to the mysql client
mysql> create database AUR;
mysql> grant all privileges on AUR.* to aur@localhost identified by 'aur';
mysql> flush privileges;
mysql> quit
6) Check out the AUR project (using the MYUSER from above)
$ cd
$ svn co https://xentac.net/svn/aur/trunk aur
7) Point your browser to http://aur
Web Interface: Web Interface:
============== ==============

View file

@ -5,12 +5,412 @@ set_lang(); # this sets up the visitor's language
check_sid(); # see if they're still logged in check_sid(); # see if they're still logged in
html_header(); # print out the HTML header html_header(); # print out the HTML header
# Display the standard Account form
# SID: the session id cookie value (if any)
# A: what "form" name to use
# 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
# P: password value
# C: confirm password value
# R: value to display for RealName
# L: value to display for Language preference
# I: value to display for IRC nick
# N: new package notify value
function display_account_form($SID,$A,$U="",$T="",$S="",$E="",$P="",$C="",$R="",$L="",$I="",$N="") {
global $SUPPORTED_LANGS;
# Any text you print out to the visitor, use the __() function print "<form action='/account.php' method='post'>\n";
# for i18n support. See 'testpo.php' for more details. print "<input type='hidden' name='Action' value='".$A."'>\n";
print "<center>\n";
print "<table border='0' cellpadding='0' cellspacing='0' width='80%'>\n";
print "<tr><td colspan='2'>&nbsp;</td></tr>\n";
# figure out what account type the visitor is
#
if ($SID) {
$atype = account_from_sid($SID);
} else {
$atype = "";
}
print "<tr>";
print "<td align='left'>".__("Username:")."</td>";
print "<td align='left'><input type='text' size='30' maxlength='64'";
print " name='U' value='".$U."'> (".__("required").")</td>";
print "</tr>\n";
if ($atype == "Trusted User" || $atype == "Developer") {
# only TUs or Devs can promote/demote/suspend a user
#
print "<tr>";
print "<td align='left'>".__("Account Type:")."</td>";
print "<td align='left'><select name=T>\n";
print "<option value='u'> ".__("Normal user")."\n";
print "<option value='t'> ".__("Trusted user")."\n";
if ($atype == "Developer") {
# only developers can make another account a developer
#
print "<option value='d'> ".__("Developer")."\n";
}
print "</select></td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Account Suspended:")."</td>";
print "<td align='left'><input type='checkbox' name='S'";
if ($S) {
print " checked>";
} else {
print ">";
}
print "</tr>\n";
}
print "<tr>";
print "<td align='left'>".__("Email Address:")."</td>";
print "<td align='left'><input type='text' size='30' maxlength='64'";
print " name='E' value='".$E."'> (".__("required").")</td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Password:")."</td>";
print "<td align='left'><input type='password' size='30' maxlength='32'";
print " name='P' value='".$P."'> (".__("required").")</td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Re-type password:")."</td>";
print "<td align='left'><input type='password' size='30' maxlength='32'";
print " name='C' value='".$C."'> (".__("required").")</td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Real Name:")."</td>";
print "<td align='left'><input type='text' size='30' maxlength='32'";
print " name='R' value='".$R."'></td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("IRC Nick:")."</td>";
print "<td align='left'><input type='text' size='30' maxlength='32'";
print " name='I' value='".$I."'></td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Language:")."</td>";
print "<td align='left'><select name=L>\n";
while (list($code, $lang) = each($SUPPORTED_LANGS)) {
if ($L == $code) {
print "<option value=".$code." selected> ".$lang."\n";
} else {
print "<option value=".$code."> ".$lang."\n";
}
}
print "</select></td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("New Package Notify:")."</td>";
print "<td align='left'><input type='checkbox' name='N'";
if ($N) {
print " checked>";
} else {
print ">";
}
print "</tr>\n";
print "<tr><td colspan='2'>&nbsp;</td></tr>\n";
print "<tr>";
print "<td>&nbsp;</td>";
print "<td align='left'>";
if ($A == "ModifyAccount") {
print "<input type='submit' value='".__("Update")."'> &nbsp; ";
} else {
print "<input type='submit' value='".__("Create")."'> &nbsp; ";
}
print "<input type='reset' value='".__("Reset")."'>";
print "</td>";
print "</tr>\n";
print "</table>\n";
print "</center>\n";
print "</form>\n";
} # function display_account_form()
# Main page processing here
# #
print __("Under construction...")."<br/>\n"; if (isset($_COOKIE["AURSID"])) {
# visitor is logged in
#
$dbh = db_connect();
if ($_REQUEST["Action"] == "SearchAccounts") {
# the user has entered search criteria, find any matching accounts
#
$HITS_PER_PAGE = 50;
$OFFSET = 0;
$q = "SELECT Users.*, AccountTypes.AccountType ";
$q.= "FROM Users, AccountTypes ";
$q.= "WHERE AccountTypes.ID = Users.AccountTypeID ";
if ($_REQUEST["T"] == "u") {
$q.= "AND AccountTypes.ID = 1 ";
} elseif ($_REQUEST["T"] == "t") {
$q.= "AND AccountTypes.ID = 2 ";
} elseif ($_REQUEST["T"] == "d") {
$q.= "AND AccountTypes.ID = 3 ";
}
if ($_REQUEST["S"]) {
$q.= "AND Users.Suspended = 1 ";
}
if ($_REQUEST["U"]) {
$q.= "AND Username LIKE '%".mysql_escape_string($_REQUEST["U"])."%' ";
}
if ($_REQUEST["E"]) {
$q.= "AND Email LIKE '%".mysql_escape_string($_REQUEST["E"])."%' ";
}
if ($_REQUEST["R"]) {
$q.= "AND RealName LIKE '%".mysql_escape_string($_REQUEST["R"])."%' ";
}
if ($_REQUEST["I"]) {
$q.= "AND IRCNick LIKE '%".mysql_escape_string($_REQUEST["I"])."%' ";
}
$q.= "LIMIT ". $OFFSET . ", " . $HITS_PER_PAGE;
$result = db_query($q, $dbh);
if (!$result) {
print __("No results matched your search criteria.");
} else {
print "<center>\n";
print "<table border='0' cellpadding='0' cellspacing='0' width='90%'>\n";
print "<tr>";
print "<td colspan='2'>";
print "<table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
print "<th>".__("Username")."</th>";
print "<th>".__("Type")."</th>";
print "<th>".__("Status")."</th>";
print "<th>".__("Real Name")."</th>";
print "<th>".__("IRC Nick")."</th>";
print "<th>".__("Last Voted")."</th>";
print "</tr>\n";
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
if ($i % 2) {
print "<tr class='data1'>";
} else {
print "<tr class='data2'>";
}
print "<td align='center'>".$row["Username"]."</td>";
print "<td align='center'>".user_type($row["AccountType"])."</td>";
print "<td align='center'>";
if ($row["Suspended"]) {
print __("Suspended");
} else {
print __("Active");
}
print "</td>";
print "<td align='left'>";
$row["RealName"] ? print $row["RealName"] : print "&nbsp;";
print "</td>";
print "<td align='left'>";
$row["IRCNick"] ? print $row["IRCNick"] : print "&nbsp;";
print "</td>";
print "<td align='center'>";
$row["LastVoted"]
? print date("Ymd", $row["LastVoted"])
: print __("Never");
print "</td>";
print "</tr>\n";
$i++;
}
print "</table>\n";
print "</td></tr>\n";
print "<tr>";
print "<td align='left'>";
print "<form action='/account.php' method='post'>\n";
print "<input type='hidden' name='Action' value='SearchPackages'>\n";
print "<input type='hidden' name='offset' value='more'>\n";
print "<input type='submit' value='&lt;-- ".__("Less")."'>";
print "</form>\n";
print "</td>";
print "<td align='right'>";
print "<form action='/account.php' method='post'>\n";
print "<input type='hidden' name='Action' value='SearchPackages'>\n";
print "<input type='hidden' name='offset' value='more'>\n";
print "<input type='submit' value='".__("More")." --&gt;'>";
print "</form>\n";
print "</td>";
print "</tr>\n";
print "</table>\n";
print "</center>\n";
}
} elseif ($_REQUEST["Action"] == "DisplayAccount") {
# the user has clicked 'edit', display the account details in a form
#
} elseif ($_REQUEST["Action"] == "UpdateAccount") {
# user is submitting their modifications to an existing account
#
} else {
# display the search page
#
print "<form action='/account.php' method='post'>\n";
print "<input type='hidden' name='Action' value='SearchAccounts'>\n";
print "<center>\n";
print "<table border='0' cellpadding='0' cellspacing='0' width='80%'>\n";
print "<tr><td colspan='2'>&nbsp;</td></tr>\n";
print "<tr>";
print "<td align='left'>".__("Username:")."</td>";
print "<td align='left'><input type='text' size='30' maxlength='64'";
print " name='U'></td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Account Type:")."</td>";
print "<td align='left'><select name=T>\n";
print "<option value=''> ".__("Any type")."\n";
print "<option value='u'> ".__("Normal user")."\n";
print "<option value='t'> ".__("Trusted user")."\n";
print "<option value='d'> ".__("Developer")."\n";
print "</select></td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Account Suspended:")."</td>";
print "<td align='left'><input type='checkbox' name='S'>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Email Address:")."</td>";
print "<td align='left'><input type='text' size='30' maxlength='64'";
print " name='E'></td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("Real Name:")."</td>";
print "<td align='left'><input type='text' size='30' maxlength='32'";
print " name='R'></td>";
print "</tr>\n";
print "<tr>";
print "<td align='left'>".__("IRC Nick:")."</td>";
print "<td align='left'><input type='text' size='30' maxlength='32'";
print " name='I'></td>";
print "</tr>\n";
print "<tr>";
print "<td>&nbsp;</td>";
print "<td align='left'>";
print "<input type='submit' value='Search'> &nbsp; ";
print "<input type='reset' value='Reset'></td>";
print "</tr>\n";
print "</table>\n";
print "</center>\n";
print "</form>\n";
}
} else {
# visitor is not logged in
#
if ($_REQUEST["Action"] == "NewAccount") {
# error check and process request for a new account
#
$dbh = db_connect();
$error = "";
if (!isset($_REQUEST["E"]) || !isset($_REQUEST["P"]) ||
!isset($_REQUEST["C"])) {
$error = __("Missing a required field.");
}
if (!$error && ($_REQUEST["P"] != $_REQUEST["C"])) {
$error = __("Password fields do not match.");
}
if (!$error && !valid_email($_REQUEST["E"])) {
$error = __("The email address is invalid.");
}
if (!$error && !array_key_exists($_REQUEST["L"], $SUPPORTED_LANGS)) {
$error = __("Language is not currently supported.");
}
if (!$error) {
# check to see if this username is available
# NOTE: a race condition exists here if we care...
#
$q = "SELECT COUNT(*) AS CNT FROM Users ";
$q.= "WHERE Username = '".mysql_escape_string($_REQUEST["U"])."'";
$result = db_query($q, $dbh);
if ($result) {
$row = mysql_fetch_array($result);
if ($row[0]) {
$error = __("The username, %h%s%h, is already in use.",
array("<b>", $_REQUEST["U"], "</b>"));
}
}
}
if (!$error) {
# check to see if this email address is available
# NOTE: a race condition exists here if we care...
#
$q = "SELECT COUNT(*) AS CNT FROM Users ";
$q.= "WHERE Email = '".mysql_escape_string($_REQUEST["E"])."'";
$result = db_query($q, $dbh);
if ($result) {
$row = mysql_fetch_array($result);
if ($row[0]) {
$error = __("The address, %h%s%h, is already in use.",
array("<b>", $_REQUEST["E"], "</b>"));
}
}
}
if ($error) {
print "<span class='error'>".$error."</span><br/>\n";
display_account_form("", "NewAccount", "", "",
$_REQUEST["U"], $_REQUEST["E"], $_REQUEST["R"], $_REQUEST["L"],
$_REQUEST["I"], $_REQUEST["N"]);
} else {
# no errors, go ahead and create the unprivileged user
#
$q = "INSERT INTO Users (AccountTypeID, Suspended, Username, Email, ";
$q.= "Passwd, RealName, LangPreference, IRCNick, NewPkgNotify) ";
$q.= "VALUES (1, 0, '".mysql_escape_string($_REQUEST["U"])."'";
$q.= ", '".mysql_escape_string($_REQUEST["E"])."'";
$q.= ", '".mysql_escape_string($_REQUEST["P"])."'";
$q.= ", '".mysql_escape_string($_REQUEST["R"])."'";
$q.= ", '".mysql_escape_string($_REQUEST["L"])."'";
$q.= ", '".mysql_escape_string($_REQUEST["I"])."'";
if ($_REQUEST["N"] == "on") {
$q.= ", 1)";
} else {
$q.= ", 0)";
}
$result = db_query($q, $dbh);
if (!$result) {
print __("Error trying to create account, %h%s%h: %s.",
array("<b>", $_REQUEST["U"], "</b>", mysql_error($dbh)));
} else {
# account created, tell them so.
#
print __("The account, %h%s%h, has been successfully created.",
array("<b>", $_REQUEST["U"], "</b>"));
print "<p>\n";
print __("Click on the Home link above to login.");
print "</p>\n";
}
}
} else {
# display the account request form
#
display_account_form("", "NewAccount");
}
}
html_footer("\$Id$"); html_footer("\$Id$");
# vim: ts=2 sw=2 noet ft=php
?> ?>

View file

@ -76,6 +76,7 @@
{ {
background-color: #ffffff; background-color: #ffffff;
border-right: 1px solid #000; border-right: 1px solid #000;
border-left: 1px solid #000;
border-bottom: 1px solid #000; border-bottom: 1px solid #000;
text-align: center; text-align: center;
vertical-align: top; vertical-align: top;

View file

@ -11,7 +11,7 @@ if (isset($_REQUEST["user"]) || isset($_REQUEST["pass"])) {
# Attempting to log in # Attempting to log in
# #
if (!isset($_REQUEST['user'])) { if (!isset($_REQUEST['user'])) {
$login_error = __("You must supply a username."); $login_error = __("You must supply an email address.");
} }
if (!isset($_REQUEST['pass'])) { if (!isset($_REQUEST['pass'])) {
$login_error = __("You must supply a password."); $login_error = __("You must supply a password.");
@ -21,11 +21,11 @@ if (isset($_REQUEST["user"]) || isset($_REQUEST["pass"])) {
# #
$dbh = db_connect(); $dbh = db_connect();
$q = "SELECT ID, Suspended FROM Users "; $q = "SELECT ID, Suspended FROM Users ";
$q.= "WHERE Email = '" . mysql_escape_string($_REQUEST["user"]) . "' "; $q.= "WHERE Username = '" . mysql_escape_string($_REQUEST["user"]) . "' ";
$q.= "AND Passwd = '" . mysql_escape_string($_REQUEST["pass"]) . "'"; $q.= "AND Passwd = '" . mysql_escape_string($_REQUEST["pass"]) . "'";
$result = db_query($q, $dbh); $result = db_query($q, $dbh);
if (!$result) { if (!$result) {
$login_error = __("Incorrect password for username %s.", $login_error = __("Incorrect password for email address, %s.",
array($_REQUEST["user"])); array($_REQUEST["user"]));
} else { } else {
$row = mysql_fetch_row($result); $row = mysql_fetch_row($result);
@ -70,13 +70,16 @@ html_header();
print "<table border='0' cellpadding='0' cellspacing='3' width='90%'>\n"; print "<table border='0' cellpadding='0' cellspacing='3' width='90%'>\n";
print "<tr>\n"; print "<tr>\n";
print " <td align='left' valign='top'>&nbsp;<br/>"; print " <td align='left' valign='top'>";
print __("This is where the intro text will go."); print __("This is where the intro text will go.");
print __("For now, it's just a place holder."); print __("For now, it's just a place holder.");
print __("It's more important to get the login functionality finished."); print __("It's more important to get the login functionality finished.");
print __("After that, this can be filled in with more meaningful text."); print __("After that, this can be filled in with more meaningful text.");
print " </td>"; print " </td>";
print " <td align='right'>&nbsp;<br/>\n"; # XXX Is this the proper way to add some spacing between table cells?
#
print " <td>&nbsp;&nbsp;</td>";
print " <td align='right'>\n";
if (!isset($_COOKIE["AURSID"])) { if (!isset($_COOKIE["AURSID"])) {
# the user is not logged in, give them login widgets # the user is not logged in, give them login widgets
# #

View file

@ -16,4 +16,189 @@ $_t["en"]["Under construction..."] = "Under construction...";
# $_t["fr"]["Under construction..."] = "--> Traduction française ici. <--"; # $_t["fr"]["Under construction..."] = "--> Traduction française ici. <--";
# $_t["de"]["Under construction..."] = "--> Deutsche Übersetzung hier. <--"; # $_t["de"]["Under construction..."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Account Suspended:"] = "Account Suspended:";
# $_t["es"]["Account Suspended:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Account Suspended:"] = "--> Traduction française ici. <--";
# $_t["de"]["Account Suspended:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Notify:"] = "Notify:";
# $_t["es"]["Notify:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Notify:"] = "--> Traduction française ici. <--";
# $_t["de"]["Notify:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Trusted User"] = "Trusted User";
# $_t["es"]["Trusted User"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Trusted User"] = "--> Traduction française ici. <--";
# $_t["de"]["Trusted User"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Normal User"] = "Normal User";
# $_t["es"]["Normal User"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Normal User"] = "--> Traduction française ici. <--";
# $_t["de"]["Normal User"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Password:"] = "Password:";
# $_t["es"]["Password:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Password:"] = "--> Traduction française ici. <--";
# $_t["de"]["Password:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Email Address:"] = "Email Address:";
# $_t["es"]["Email Address:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Email Address:"] = "--> Traduction française ici. <--";
# $_t["de"]["Email Address:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Confirm:"] = "Confirm:";
# $_t["es"]["Confirm:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Confirm:"] = "--> Traduction française ici. <--";
# $_t["de"]["Confirm:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Real Name:"] = "Real Name:";
# $_t["es"]["Real Name:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Real Name:"] = "--> Traduction française ici. <--";
# $_t["de"]["Real Name:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Account Type:"] = "Account Type:";
# $_t["es"]["Account Type:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Account Type:"] = "--> Traduction française ici. <--";
# $_t["de"]["Account Type:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["IRC Nick:"] = "IRC Nick:";
# $_t["es"]["IRC Nick:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["IRC Nick:"] = "--> Traduction française ici. <--";
# $_t["de"]["IRC Nick:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Language:"] = "Language:";
# $_t["es"]["Language:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Language:"] = "--> Traduction française ici. <--";
# $_t["de"]["Language:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Developer"] = "Developer";
# $_t["es"]["Developer"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Developer"] = "--> Traduction française ici. <--";
# $_t["de"]["Developer"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["New Package Notify:"] = "New Package Notify:";
# $_t["es"]["New Package Notify:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["New Package Notify:"] = "--> Traduction française ici. <--";
# $_t["de"]["New Package Notify:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Password fields do not match."] = "Password fields do not match.";
# $_t["es"]["Password fields do not match."] = "--> Traducción española aquí. <--";
# $_t["fr"]["Password fields do not match."] = "--> Traduction française ici. <--";
# $_t["de"]["Password fields do not match."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Error trying to create account, %h%s%h: %s."] = "Error trying to create account, %h%s%h: %s.";
# $_t["es"]["Error trying to create account, %h%s%h: %s."] = "--> Traducción española aquí. <--";
# $_t["fr"]["Error trying to create account, %h%s%h: %s."] = "--> Traduction française ici. <--";
# $_t["de"]["Error trying to create account, %h%s%h: %s."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Missing a required field."] = "Missing a required field.";
# $_t["es"]["Missing a required field."] = "--> Traducción española aquí. <--";
# $_t["fr"]["Missing a required field."] = "--> Traduction française ici. <--";
# $_t["de"]["Missing a required field."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["This address is already in use."] = "This address is already in use.";
# $_t["es"]["This address is already in use."] = "--> Traducción española aquí. <--";
# $_t["fr"]["This address is already in use."] = "--> Traduction française ici. <--";
# $_t["de"]["This address is already in use."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Language is not currently supported."] = "Language is not currently supported.";
# $_t["es"]["Language is not currently supported."] = "--> Traducción española aquí. <--";
# $_t["fr"]["Language is not currently supported."] = "--> Traduction française ici. <--";
# $_t["de"]["Language is not currently supported."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["The email address is invalid."] = "The email address is invalid.";
# $_t["es"]["The email address is invalid."] = "--> Traducción española aquí. <--";
# $_t["fr"]["The email address is invalid."] = "--> Traduction française ici. <--";
# $_t["de"]["The email address is invalid."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Re-type password:"] = "Re-type password:";
# $_t["es"]["Re-type password:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Re-type password:"] = "--> Traduction française ici. <--";
# $_t["de"]["Re-type password:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["The account, %h%s%h, has been successfully created."] = "The account, %h%s%h, has been successfully created.";
# $_t["es"]["The account, %h%s%h, has been successfully created."] = "--> Traducción española aquí. <--";
# $_t["fr"]["The account, %h%s%h, has been successfully created."] = "--> Traduction française ici. <--";
# $_t["de"]["The account, %h%s%h, has been successfully created."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Click on the Home link above to login."] = "Click on the Home link above to login.";
# $_t["es"]["Click on the Home link above to login."] = "--> Traducción española aquí. <--";
# $_t["fr"]["Click on the Home link above to login."] = "--> Traduction française ici. <--";
# $_t["de"]["Click on the Home link above to login."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["The address, %h%s%h, is already in use."] = "The address, %h%s%h, is already in use.";
# $_t["es"]["The address, %h%s%h, is already in use."] = "--> Traducción española aquí. <--";
# $_t["fr"]["The address, %h%s%h, is already in use."] = "--> Traduction française ici. <--";
# $_t["de"]["The address, %h%s%h, is already in use."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Trusted user"] = "Trusted user";
# $_t["es"]["Trusted user"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Trusted user"] = "--> Traduction française ici. <--";
# $_t["de"]["Trusted user"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Normal user"] = "Normal user";
# $_t["es"]["Normal user"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Normal user"] = "--> Traduction française ici. <--";
# $_t["de"]["Normal user"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Any type"] = "Any type";
# $_t["es"]["Any type"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Any type"] = "--> Traduction française ici. <--";
# $_t["de"]["Any type"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["No results matched your search criteria."] = "No results matched your search criteria.";
# $_t["es"]["No results matched your search criteria."] = "--> Traducción española aquí. <--";
# $_t["fr"]["No results matched your search criteria."] = "--> Traduction française ici. <--";
# $_t["de"]["No results matched your search criteria."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Never"] = "Never";
# $_t["es"]["Never"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Never"] = "--> Traduction française ici. <--";
# $_t["de"]["Never"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Active"] = "Active";
# $_t["es"]["Active"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Active"] = "--> Traduction française ici. <--";
# $_t["de"]["Active"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Suspended"] = "Suspended";
# $_t["es"]["Suspended"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Suspended"] = "--> Traduction française ici. <--";
# $_t["de"]["Suspended"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["The username, %h%s%h, is already in use."] = "The username, %h%s%h, is already in use.";
# $_t["es"]["The username, %h%s%h, is already in use."] = "--> Traducción española aquí. <--";
# $_t["fr"]["The username, %h%s%h, is already in use."] = "--> Traduction française ici. <--";
# $_t["de"]["The username, %h%s%h, is already in use."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Type"] = "Type";
# $_t["es"]["Type"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Type"] = "--> Traduction française ici. <--";
# $_t["de"]["Type"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Status"] = "Status";
# $_t["es"]["Status"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Status"] = "--> Traduction française ici. <--";
# $_t["de"]["Status"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["IRC Nick"] = "IRC Nick";
# $_t["es"]["IRC Nick"] = "--> Traducción española aquí. <--";
# $_t["fr"]["IRC Nick"] = "--> Traduction française ici. <--";
# $_t["de"]["IRC Nick"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Last Voted"] = "Last Voted";
# $_t["es"]["Last Voted"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Last Voted"] = "--> Traduction française ici. <--";
# $_t["de"]["Last Voted"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Real Name"] = "Real Name";
# $_t["es"]["Real Name"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Real Name"] = "--> Traduction française ici. <--";
# $_t["de"]["Real Name"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Username:"] = "Username:";
# $_t["es"]["Username:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Username:"] = "--> Traduction française ici. <--";
# $_t["de"]["Username:"] = "--> Deutsche Übersetzung hier. <--";
?> ?>

View file

@ -61,4 +61,19 @@ $_t["en"]["Packages"] = "Packages";
# $_t["fr"]["Packages"] = "--> Traduction française ici. <--"; # $_t["fr"]["Packages"] = "--> Traduction française ici. <--";
# $_t["de"]["Packages"] = "--> Deutsche Übersetzung hier. <--"; # $_t["de"]["Packages"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Trusted user"] = "Trusted user";
# $_t["es"]["Trusted user"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Trusted user"] = "--> Traduction française ici. <--";
# $_t["de"]["Trusted user"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["User"] = "User";
# $_t["es"]["User"] = "--> Traducción española aquí. <--";
# $_t["fr"]["User"] = "--> Traduction française ici. <--";
# $_t["de"]["User"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Developer"] = "Developer";
# $_t["es"]["Developer"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Developer"] = "--> Traduction française ici. <--";
# $_t["de"]["Developer"] = "--> Deutsche Übersetzung hier. <--";
?> ?>

View file

@ -11,4 +11,59 @@
include_once("translator.inc"); include_once("translator.inc");
global $_t; global $_t;
$_t["en"]["Password"] = "Password";
# $_t["es"]["Password"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Password"] = "--> Traduction française ici. <--";
# $_t["de"]["Password"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Clear"] = "Clear";
# $_t["es"]["Clear"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Clear"] = "--> Traduction française ici. <--";
# $_t["de"]["Clear"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["required"] = "required";
# $_t["es"]["required"] = "--> Traducción española aquí. <--";
# $_t["fr"]["required"] = "--> Traduction française ici. <--";
# $_t["de"]["required"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Email Address"] = "Email Address";
# $_t["es"]["Email Address"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Email Address"] = "--> Traduction française ici. <--";
# $_t["de"]["Email Address"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Submit"] = "Submit";
# $_t["es"]["Submit"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Submit"] = "--> Traduction française ici. <--";
# $_t["de"]["Submit"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Reset"] = "Reset";
# $_t["es"]["Reset"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Reset"] = "--> Traduction française ici. <--";
# $_t["de"]["Reset"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Create"] = "Create";
# $_t["es"]["Create"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Create"] = "--> Traduction française ici. <--";
# $_t["de"]["Create"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Update"] = "Update";
# $_t["es"]["Update"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Update"] = "--> Traduction française ici. <--";
# $_t["de"]["Update"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Less"] = "Less";
# $_t["es"]["Less"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Less"] = "--> Traduction française ici. <--";
# $_t["de"]["Less"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["More"] = "More";
# $_t["es"]["More"] = "--> Traducción española aquí. <--";
# $_t["fr"]["More"] = "--> Traduction française ici. <--";
# $_t["de"]["More"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Username"] = "Username";
# $_t["es"]["Username"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Username"] = "--> Traduction française ici. <--";
# $_t["de"]["Username"] = "--> Deutsche Übersetzung hier. <--";
?> ?>

View file

@ -2,3 +2,14 @@
# in more than one PHP script. It only supports one line # in more than one PHP script. It only supports one line
# strings at the moment. # strings at the moment.
# #
Submit
Clear
Create
Reset
Update
required
Email Address
Username
Password
More
Less

View file

@ -81,4 +81,19 @@ $_t["en"]["Login"] = "Login";
# $_t["fr"]["Login"] = "--> Traduction française ici. <--"; # $_t["fr"]["Login"] = "--> Traduction française ici. <--";
# $_t["de"]["Login"] = "--> Deutsche Übersetzung hier. <--"; # $_t["de"]["Login"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Email Address:"] = "Email Address:";
# $_t["es"]["Email Address:"] = "--> Traducción española aquí. <--";
# $_t["fr"]["Email Address:"] = "--> Traduction française ici. <--";
# $_t["de"]["Email Address:"] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["You must supply an email address."] = "You must supply an email address.";
# $_t["es"]["You must supply an email address."] = "--> Traducción española aquí. <--";
# $_t["fr"]["You must supply an email address."] = "--> Traduction française ici. <--";
# $_t["de"]["You must supply an email address."] = "--> Deutsche Übersetzung hier. <--";
$_t["en"]["Incorrect password for email address, %s."] = "Incorrect password for email address, %s.";
# $_t["es"]["Incorrect password for email address, %s."] = "--> Traducción española aquí. <--";
# $_t["fr"]["Incorrect password for email address, %s."] = "--> Traduction française ici. <--";
# $_t["de"]["Incorrect password for email address, %s."] = "--> Deutsche Übersetzung hier. <--";
?> ?>

View file

@ -3,12 +3,12 @@ include_once("aur_po.inc");
# Define global variables # Define global variables
# #
$LOGIN_TIMEOUT = 10; # number of idle seconds before timeout $LOGIN_TIMEOUT = 1800; # number of idle seconds before timeout
$SUPPORTED_LANGS = array( # what languages we have translations for $SUPPORTED_LANGS = array( # what languages we have translations for
"en" => 1, # English "en" => "English",
"es" => 1, # Español "es" => "Español",
"de" => 1, # Deutsch "de" => "Deutsch",
"fr" => 1, # Français "fr" => "Français",
); );
# debugging variables # debugging variables
@ -71,6 +71,12 @@ function check_sid() {
return; return;
} }
# verify that an email address looks like it is legitimate
#
function valid_email($addy) {
return eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,3}$", $addy);
}
# a new seed value for mt_srand() # a new seed value for mt_srand()
# #
function make_seed() { function make_seed() {
@ -93,9 +99,41 @@ function new_sid() {
return strtoupper(md5($id)); return strtoupper(md5($id));
} }
# obtain the user type from its database ID
#
function user_type($id=0) {
if ($id == 3) {
return __("Developer");
} elseif ($id == 2) {
return __("Trusted user");
} else {
return __("User");
}
}
# obtain the username if given their current SID # obtain the username if given their current SID
# #
function username_from_sid($sid="") { function username_from_sid($sid="") {
if (!$sid) {
return "";
}
$dbh = db_connect();
$q = "SELECT Username ";
$q.= "FROM Users, Sessions ";
$q.= "WHERE Users.ID = Sessions.UsersID ";
$q.= "AND Sessions.SessionID = '" . mysql_escape_string($sid) . "'";
$result = db_query($q, $dbh);
if (!$result) {
return "";
}
$row = mysql_fetch_row($result);
return $row[0];
}
# obtain the email address if given their current SID
#
function email_from_sid($sid="") {
if (!$sid) { if (!$sid) {
return ""; return "";
} }
@ -103,7 +141,29 @@ function username_from_sid($sid="") {
$q = "SELECT Email "; $q = "SELECT Email ";
$q.= "FROM Users, Sessions "; $q.= "FROM Users, Sessions ";
$q.= "WHERE Users.ID = Sessions.UsersID "; $q.= "WHERE Users.ID = Sessions.UsersID ";
$q.= "AND SessionID = '" . mysql_escape_string($sid) . "'"; $q.= "AND Sessions.SessionID = '" . mysql_escape_string($sid) . "'";
$result = db_query($q, $dbh);
if (!$result) {
return "";
}
$row = mysql_fetch_row($result);
return $row[0];
}
# obtain the account type if given their current SID
# Return either "", "User", "Trusted User", "Developer"
#
function account_from_sid($sid="") {
if (!$sid) {
return "";
}
$dbh = db_connect();
$q = "SELECT AccountType ";
$q.= "FROM Users, AccountTypes, Sessions ";
$q.= "WHERE Users.ID = Sessions.UsersID ";
$q.= "AND AccountTypes.ID = Users.AccountTypesID ";
$q.= "AND Sessions.SessionID = '" . mysql_escape_string($sid) . "'";
$result = db_query($q, $dbh); $result = db_query($q, $dbh);
if (!$result) { if (!$result) {
return ""; return "";
@ -150,7 +210,7 @@ function db_query($query="", $db_handle="") {
fwrite($fp, $query . "\n"); fwrite($fp, $query . "\n");
fclose($fp); fclose($fp);
} }
$result = mysql_query($query, $db_handle); $result = @mysql_query($query, $db_handle);
return $result; return $result;
} }
@ -268,6 +328,7 @@ function html_header() {
print " </tr>"; print " </tr>";
print " <tr>\n"; print " <tr>\n";
print " <td class='contentDisplay'>\n"; print " <td class='contentDisplay'>\n";
print " &nbsp;<br/>\n";
print "<!-- Start of main content -->\n\n"; print "<!-- Start of main content -->\n\n";
return; return;
@ -277,7 +338,7 @@ function html_header() {
# common footer # common footer
# #
function html_footer($ver="") { function html_footer($ver="") {
print "\n\n<!-- End of main content -->"; print "\n\n<!-- End of main content -->\n";
print " </td>\n"; print " </td>\n";
print " </tr>\n"; print " </tr>\n";
print "</table>\n"; print "</table>\n";