<?php /* make sure that we are not called from outside the scripts, * use a variable defined in config.php to check this */ if(!isset($HOST)) exit; $name = $_SESSION["name"]; $email = DB_get_email('name',$name); $myid = DB_get_userid('email',$email); if(!$myid) return; /* track what got changed */ $changed_notify = 0; $changed_password = 0; $changed_cards = 0; $changed_timezone = 0; $changed_autosetup = 0; $changed_sorting = 0; $changed_openforgames = 0; $changed_vacation = 0; display_user_menu($myid); /* get old infos */ $PREF = DB_get_PREF($myid); $timezone = DB_get_user_timezone($myid); DB_update_user_timestamp($myid); /* does the user want to change some preferences? * update the database and track changes with a variable, so that * we can later highlight the changed value */ if(myisset('vacation_start','vacation_stop','vacation_comment') && ($_REQUEST['vacation_start']!='' || $_REQUEST['vacation_stop']!='') ) { $vacation_start = $_REQUEST['vacation_start'].' 00:00:00'; $vacation_stop = $_REQUEST['vacation_stop'].' 23:59:59'; $vacation_comment = $_REQUEST['vacation_comment']; /* check if everything is valid */ if(!strtotime($vacation_start)) $changed_vacation = -1; if(!strtotime($vacation_stop)) $changed_vacation = -1; /* test if we should delete the entry */ if($vacation_start == '- 00:00:00') { $result = DB_query("DELETE FROM User_Prefs". " WHERE user_id='$myid' AND pref_key='vacation start'" ); $result = DB_query("DELETE FROM User_Prefs". " WHERE user_id='$myid' AND pref_key='vacation stop'" ); $result = DB_query("DELETE FROM User_Prefs". " WHERE user_id='$myid' AND pref_key='vacation comment'" ); $changed_vacation = 1; } /* change in database if format is ok */ else if($changed_vacation>=0) { /* only change if different from current value */ if($vacation_start!=$PREF['vacation_start']) { $result = DB_query("SELECT * from User_Prefs". " WHERE user_id='$myid' AND pref_key='vacation start'" ); if( DB_fetch_array($result)) $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($vacation_start). " WHERE user_id='$myid' AND pref_key='vacation start'" ); else $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','vacation start',". DB_quote_smart($vacation_start).")"); $changed_vacation = 1; } /* same for the stop date */ if($vacation_stop!=$PREF['vacation_stop']) { $result = DB_query("SELECT * from User_Prefs". " WHERE user_id='$myid' AND pref_key='vacation stop'" ); if( DB_fetch_array($result)) $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($vacation_stop). " WHERE user_id='$myid' AND pref_key='vacation stop'" ); else $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','vacation stop',". DB_quote_smart($vacation_stop).")"); $changed_vacation = 1; } /* does the user want to add a comment? */ if($vacation_comment!=$PREF['vacation_comment']) { $result = DB_query("SELECT * from User_Prefs". " WHERE user_id='$myid' AND pref_key='vacation comment'" ); if( DB_fetch_array($result)) $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($vacation_comment). " WHERE user_id='$myid' AND pref_key='vacation comment'" ); else $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','vacation comment',". DB_quote_smart($vacation_comment).")"); $changed_vacation = 1; } } } if(myisset("timezone")) { $newtimezone = $_REQUEST['timezone']; if($newtimezone != $timezone) { DB_query("UPDATE User SET timezone=".DB_quote_smart($newtimezone). " WHERE id=".DB_quote_smart($myid)); $changed_timezone = 1; } } if(myisset("cards")) { $cards=$_REQUEST['cards']; if($cards != $PREF['cardset']) { /* check if we already have an entry for the user, if so change it, if not create new one */ $result = DB_query("SELECT * from User_Prefs". " WHERE user_id='$myid' AND pref_key='cardset'" ); if( DB_fetch_array($result)) $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($cards). " WHERE user_id='$myid' AND pref_key='cardset'" ); else $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','cardset',". DB_quote_smart($cards).")"); $changed_cards = 1; } } if(myisset("notify")) { $notify=$_REQUEST['notify']; if($notify != $PREF['email']) { /* check if we already have an entry for the user, if so change it, if not create new one */ $result = DB_query("SELECT * from User_Prefs". " WHERE user_id='$myid' AND pref_key='email'" ); if( DB_fetch_array($result)) $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($notify). " WHERE user_id='$myid' AND pref_key='email'" ); else $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','email',". DB_quote_smart($notify).")"); $changed_notify=1; } } if(myisset("autosetup")) { $autosetup = $_REQUEST['autosetup']; if($autosetup != $PREF['autosetup']) { /* check if we already have an entry for the user, if so change it, if not create new one */ $result = DB_query("SELECT * from User_Prefs". " WHERE user_id='$myid' AND pref_key='autosetup'" ); if( DB_fetch_array($result)) $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($autosetup). " WHERE user_id='$myid' AND pref_key='autosetup'" ); else $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','autosetup',". DB_quote_smart($autosetup).")"); $changed_autosetup=1; } } if(myisset("sorting")) { $sorting = $_REQUEST['sorting']; if($sorting != $PREF['sorting']) { /* check if we already have an entry for the user, if so change it, if not create new one */ $result = DB_query("SELECT * from User_Prefs". " WHERE user_id='$myid' AND pref_key='sorting'" ); if( DB_fetch_array($result)) $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($sorting). " WHERE user_id='$myid' AND pref_key='sorting'" ); else $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','sorting',". DB_quote_smart($sorting).")"); $changed_sorting=1; } } if(myisset("open_for_games")) { $openforgames = $_REQUEST['open_for_games']; if($openforgames != $PREF['open_for_games']) { /* check if we already have an entry for the user, if so change it, if not create new one */ $result = DB_query("SELECT * from User_Prefs". " WHERE user_id='$myid' AND pref_key='open for games'" ); if( DB_fetch_array($result)) $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($openforgames). " WHERE user_id='$myid' AND pref_key='open for games'" ); else $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','open for games',". DB_quote_smart($openforgames).")"); $changed_openforgames=1; } } if(myisset("password0") && $_REQUEST["password0"]!="" ) { $changed_password = 1; /* check if old password matches */ $oldpasswd = md5($_REQUEST["password0"]); $password = DB_get_passwd_by_userid($myid); if(!( ($password == $oldpasswd) || DB_check_recovery_passwords($oldpasswd,$email) )) $changed_password = -1; /* check if new password has been typed in correctly */ if($_REQUEST["password1"] != $_REQUEST["password2"] ) $changed_password = -2; /* check if new password is long enough */ if(strlen($_REQUEST["password1"])<4) $changed_password = -3; if($changed_password==1) { DB_query("UPDATE User SET password='".md5($_REQUEST["password1"]). "' WHERE id=".DB_quote_smart($myid)); } /* error output below */ } /* get infos again in case they have changed */ $PREF = DB_get_PREF($myid); $timezone = DB_get_user_timezone($myid); /* * output settings */ echo "<div class=\"user\">\n"; echo " <form action=\"index.php?action=prefs\" method=\"post\">\n"; echo " <h2>Your settings are</h2>\n"; echo " <fieldset>\n"; echo " <legend>Game-related</legend>\n"; echo " <table>\n"; echo " <tr><td>Vacation: </td>\n"; if($PREF['vacation_start']) $value = substr($PREF['vacation_start'],0,10); else $value = ''; echo " <td>start:<input type=\"text\" id=\"vacation_start\" name=\"vacation_start\" size=\"10\" maxlength=\"10\" value=\"$value\" /></td>\n"; if($PREF['vacation_stop']) $value = substr($PREF['vacation_stop'],0,10); else $value = ''; echo " <td>stop:<input type=\"text\" id=\"vacation_stop\" name=\"vacation_stop\" size=\"10\" maxlength=\"10\" value=\"$value\" /></td>\n"; if($PREF['vacation_comment']) $value = $PREF['vacation_comment']; else $value = ''; echo " <td>comment:<input type=\"text\" id=\"vacation_comment\" name=\"vacation_comment\" size=\"10\" maxlength=\"50\" value=\"$value\" />"; if($changed_vacation == 1) echo "changed"; if($changed_vacation == -1) echo "wrong date format"; echo "</td></tr>\n"; echo "<tr><td></td><td>use YYYY-MM-DD</td><td>use '-' in start field to unset vacation</td></tr>\n"; echo " <tr><td>Notification: </td><td>\n"; echo " <select id=\"notify\" name=\"notify\" size=\"1\">\n"; if($PREF['email']=="emailaddict") { echo " <option value=\"emailaddict\" selected=\"selected\">less emails</option>\n"; echo " <option value=\"emailnonaddict\">lots of emails</option>\n"; } else { echo " <option value=\"emailaddict\">less email</option>\n"; echo " <option value=\"emailnonaddict\" selected=\"selected\">lots of email</option>\n"; } echo " </select>"; if($changed_notify) echo "changed"; echo " </td></tr>\n"; echo " <tr><td>Autosetup: </td><td>\n"; echo " <select id=\"autosetup\" name=\"autosetup\" size=\"1\">\n"; if($PREF['autosetup']=="yes") { echo " <option value=\"yes\" selected=\"selected\">accept every game</option>\n"; echo " <option value=\"no\">ask for games</option>\n"; } else { echo " <option value=\"yes\">accept every game</option>\n"; echo " <option value=\"no\" selected=\"selected\">ask for games</option>\n"; } echo " </select>"; if($changed_autosetup) echo "changed"; echo " </td></tr>\n"; echo " <tr><td>Sorting: </td><td>\n"; echo " <select id=\"sorting\" name=\"sorting\" size=\"1\">\n"; if($PREF['sorting']=="high-low") { echo " <option value=\"high-low\" selected=\"selected\">high to low</option>\n"; echo " <option value=\"low-high\">low to high</option>\n"; } else { echo " <option value=\"high-low\">high to low</option>\n"; echo " <option value=\"low-high\" selected=\"selected\">low to high</option>\n"; } echo " </select>"; if($changed_sorting) echo "changed"; echo " </td></tr>\n"; echo " <tr><td>Open for new games: </td><td>\n"; echo " <select id=\"open_for_games\" name=\"open_for_games\" size=\"1\">\n"; if($PREF['open_for_games']=="no") { echo " <option value=\"yes\">yes</option>\n"; echo " <option value=\"no\" selected=\"selected\">no</option>\n"; } else /* default */ { echo " <option value=\"yes\" selected=\"selected\">yes</option>\n"; echo " <option value=\"no\">no</option>\n"; } echo " </select>"; if($changed_openforgames) echo "changed"; echo " </td></tr>\n"; echo " <tr><td>Card set: </td><td>\n"; echo " <select id=\"cards\" name=\"cards\" size=\"1\">\n"; if($PREF['cardset']=="altenburg") { echo " <option value=\"altenburg\" selected=\"selected\">German cards</option>\n"; echo " <option value=\"english\">English cards</option>\n"; } else { echo " <option value=\"altenburg\">German cards</option>\n"; echo " <option value=\"english\" selected=\"selected\">English cards</option>\n"; } echo " </select>"; if($changed_cards) echo "changed"; echo " </td></tr>\n"; echo " </table>\n"; echo " </fieldset>\n"; echo " <fieldset>\n"; echo " <legend>Personal</legend>\n"; echo " <table>\n"; echo " <tr><td>Email: </td><td> $email </td></tr>\n"; echo " <tr><td>Timezone: </td><td>\n"; output_select_timezone("timezone",$timezone); if($changed_timezone) echo "changed"; echo "</td></tr>\n"; echo " <tr><td>Password(old): </td><td>", "<input type=\"password\" id=\"password0\" name=\"password0\" size=\"20\" maxlength=\"30\" />"; switch($changed_password) { case '-3': echo "The new passwords is not long enough (you need at least 4 characters)."; break; case '-2': echo "The new passwords don't match."; break; case '-1': echo "The old password is not correct."; break; case '1': echo "changed"; break; } echo " </td></tr>\n"; echo " <tr><td>Password(new): </td><td>", "<input type=\"password\" id=\"password1\" name=\"password1\" size=\"20\" maxlength=\"30\" />", " </td></tr>\n"; echo " <tr><td>Password(new, retype): </td><td>", "<input type=\"password\" id=\"password2\" name=\"password2\" size=\"20\" maxlength=\"30\" />", " </td></tr>\n"; echo " </table>\n"; echo " </fieldset>\n"; echo " <fieldset><legend>Submit</legend><input type=\"submit\" name=\"passwd\" value=\"set\" /></fieldset>\n"; echo " </form>\n"; echo "</div>\n"; return; ?>