X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=index.php;h=7ca77d6947428efa631e6c73ca23cb7a60529a5c;hp=c8c88041558c6b2e14903b5cd599ffb4b7155a83;hb=a7ab5e63c5558a72d5ca56f96b406dc41108cce9;hpb=d7c42361bda4c64a0594a8640156a504fc334f11 diff --git a/index.php b/index.php index c8c8804..7ca77d6 100644 --- a/index.php +++ b/index.php @@ -33,8 +33,15 @@ if(myisset("logout")) } else if(myisset("new")) { - $names = DB_get_all_names(); - output_form_for_new_game($names); + if( isset($_SESSION["name"]) ) + { + $names = DB_get_all_names(); + output_form_for_new_game($names); + } + else + { + echo "Please log in."; + } } /*check if everything is ready to set up a new game */ else if( myisset("PlayerA", "PlayerB","PlayerC","PlayerD","dullen","schweinchen","call" )) @@ -78,6 +85,23 @@ else if(myisset("new")) $session = DB_get_session_by_gameid($followup); $ruleset = DB_get_ruleset_by_gameid($followup); /* just copy ruleset from old game, this way no manipulation is possible */ + + /* check if there is a game in pre or play mode, in that case do nothing */ + if( DB_is_session_active($session) > 0 ) + { + echo "
"; + output_footer(); + DB_close(); + exit(); + } + else if ( DB_is_session_active($session) < 0 ) + { + echo " "; + output_footer(); + DB_close(); + exit(); + } + if($session) mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1',NULL,'pre',". "'$ruleset','$session' ,NULL)"); @@ -102,9 +126,12 @@ else if(myisset("new")) DB_close(); exit(); }; + /* get max session */ + $max = DB_get_max_session(); + $max++; mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1',NULL,'pre', ". - "'$ruleset',NULL ,NULL)"); + "'$ruleset','$max' ,NULL)"); } $game_id = mysql_insert_id(); @@ -187,23 +214,75 @@ else if(myisset("cancle","me")) if(time()-strtotime($r[0]) > 60*60*24*30) /* = 1 month */ { $message = "Hello, \n\n". - "Game $gameid has been cancled since nothing happend for a while and $myname requested it.\n"; + "Game ".DB_format_gameid($gameid)." has been cancled since nothing happend for a while and $myname requested it.\n"; $userids = DB_get_all_userid_by_gameid($gameid); foreach($userids as $user) { $To = DB_get_email_by_userid($user); - mymail($To,$EmailName."game $gameid cancled (timed out)",$message); + mymail($To,$EmailName."game ".DB_format_gameid($gameid)." cancled (timed out)",$message); } /* delete everything from the dB */ DB_cancel_game($me); - echo "Game $gameid has been cancled.
Game ".DB_format_gameid($gameid)." has been cancled.
You need to wait longer before you can cancle a game...
\n"; } +/* send out a reminder */ +else if(myisset("remind","me")) + { + $me = $_REQUEST["me"]; + + /* test for valid ID */ + $myid = DB_get_userid_by_hash($me); + if(!$myid) + { + echo "Can't find you in the database, please check the url.An email has already been sent out.
\n"; + } + else + { + DB_set_reminder($r[1],$gameid); + mymail($To,$EmailName."Reminder: game ".DB_format_gameid($gameid)." it's your turn",$message); + + echo "Game ".DB_format_gameid($gameid).": an email has been sent out.
You need to wait longer before you can send out a reminder...
\n"; + } /* handle request from one specific player for one game, * (the hash is set on a per game base) */ else if(myisset("me")) @@ -275,63 +354,6 @@ else if(myisset("me")) /* put everyting in a form */ echo "\n"; output_footer(); DB_close(); @@ -1564,14 +1654,14 @@ else if( myisset("email","password") || isset($_SESSION["name"]) ) { $ok = 1; - $uid = DB_get_userid_by_email($email); - if(!$uid) + $myid = DB_get_userid_by_email($email); + if(!$myid) $ok = 0; if($ok) { /* check how many entries in recovery table */ - $number = DB_get_number_of_passwords_recovery($uid); + $number = DB_get_number_of_passwords_recovery($myid); /* if less than N recent ones, add a new one and send out email */ if( $number < 5 ) @@ -1595,7 +1685,7 @@ else if( myisset("email","password") || isset($_SESSION["name"]) ) " also still be valid until you set a new one\n"; mymail($email,$EmailName."recovery ",$message); - DB_set_recovery_password($uid,md5($newpw)); + DB_set_recovery_password($myid,md5($newpw)); } else { @@ -1622,13 +1712,13 @@ else if( myisset("email","password") || isset($_SESSION["name"]) ) $password = md5($password); $ok = 1; - $uid = DB_get_userid_by_email_and_password($email,$password); - if(!$uid) + $myid = DB_get_userid_by_email_and_password($email,$password); + if(!$myid) $ok = 0; if($ok) { - DB_get_PREF($uid); + DB_get_PREF($myid); if(myisset("setpref")) { @@ -1638,12 +1728,12 @@ else if( myisset("email","password") || isset($_SESSION["name"]) ) case "germancards": case "englishcards": $result = mysql_query("SELECT * from User_Prefs". - " WHERE user_id='$uid' AND pref_key='cardset'" ); + " WHERE user_id='$myid' AND pref_key='cardset'" ); if( mysql_fetch_array($result,MYSQL_NUM)) $result = mysql_query("UPDATE User_Prefs SET value=".DB_quote_smart($setpref). - " WHERE user_id='$uid' AND pref_key='cardset'" ); + " WHERE user_id='$myid' AND pref_key='cardset'" ); else - $result = mysql_query("INSERT INTO User_Prefs VALUES(NULL,'$uid','cardset',". + $result = mysql_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','cardset',". DB_quote_smart($setpref).")"); echo "Ok, changed you preferences for the cards.\n"; break; @@ -1680,7 +1770,7 @@ else if( myisset("email","password") || isset($_SESSION["name"]) ) case '1': echo "Changed the password.Session:
\n";
+ echo " p = pre-game phase ";
+ echo "P = game in progess ";
+ echo "F = game finished
";
+ echo "
These are your games that haven't started yet:
\n";
- $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date,Game.player from Hand".
- " LEFT JOIN Game On Hand.game_id=Game.id".
- " WHERE Hand.user_id='$uid' AND Game.status='pre'" );
+ $output = array();
+ $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date,Game.player,Game.status from Hand".
+ " LEFT JOIN Game ON Game.id=Hand.game_id".
+ " WHERE user_id='$myid'".
+ " ORDER BY Game.session,Game.create_date" );
+ $gamenrold = -1;
+ echo "
\n";
while( $r = mysql_fetch_array($result,MYSQL_NUM))
{
- echo "game #".$r[1]." ";
- if($r[3]==$uid || $r[3]==NULL)
- echo "(it's your turn)\n";
- else
+ $game = DB_format_gameid($r[1]);
+ $gamenr = (int) $game;
+ if($gamenrold < $gamenr)
{
- $name = DB_get_name_by_userid($r[3]);
- echo "(it's $name's turn)\n";
- };
-
- if(time()-strtotime($r[2]) > 60*60*24*30)
- echo " The game has been running for over a month.".
- " Do you want to cancel it? yes".
- " (clicking here is final and can't be restored)";
- echo " "; - } - echo "\n"; + if($gamenrold!=-1) + echo " | |||
$gamenr: | "; + else + echo "$gamenr: | ";
+ $gamenrold = $gamenr;
+ }
+ if($r[4]=='pre')
+ {
+ echo "\n p ";
- echo " These are the games you are playing in: | \n ";
+ if($r[3])
{
- $name = DB_get_name_by_userid($r[3]);
- echo "(it's $name's turn)\n";
- };
+ if($r[3]==$myid)
+ echo "(it's your turn)\n";
+ else
+ {
+ $name = DB_get_name_by_userid($r[3]);
+ $gameid = $r[1];
+ if(DB_get_reminder($r[3],$gameid)==0)
+ if(time()-strtotime($r[2]) > 60*60*24*7)
+ echo "".
+ "Send a reminder.";
+ echo "(it's $name's turn)\n";
+ };
+ }
+ if(time()-strtotime($r[2]) > 60*60*24*30)
+ echo "".
+ "Cancel?".
+ " (clicking here is final and can't be restored)";
+
}
- if(time()-strtotime($r[2]) > 60*60*24*30)
- echo " The game has been running for over a month.".
- " Do you want to cancel it? yes".
- " (clicking here is final and can't be restored)";
- echo " "; } - echo "\n"; - - - echo " And these are your games that are already done: |
Registered players:
\n";
+ echo "
\n"; echo implode(", ",$names)."\n"; - echo "
\n"; - - echo "Want to start a new game? Visit this page.
"; + echo "\n