X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=index.php;h=8e21ae620399c846c3e3716f35a7f01e6de9cfc5;hp=989a54716145cd2276b2228e2103da8ae4d9c0ed;hb=05c0e5ebd24477c861b06884e60db11672127569;hpb=3f0e64bb007762df358925569e980a7718ff033d diff --git a/index.php b/index.php index 989a547..8e21ae6 100644 --- a/index.php +++ b/index.php @@ -33,6 +33,7 @@ if(DB_open()<0) exit(); } +/* done major error checking, output header of HTML page */ output_header(); /* check if we want to start a new game */ @@ -109,23 +110,24 @@ if(myisset("new")) $game_id = mysql_insert_id(); /* create hash */ - $hashA = md5("AGameOfDoko".$game_id.$PlayerA.$EmailA); - $hashB = md5("AGameOfDoko".$game_id.$PlayerB.$EmailB); - $hashC = md5("AGameOfDoko".$game_id.$PlayerC.$EmailC); - $hashD = md5("AGameOfDoko".$game_id.$PlayerD.$EmailD); + $TIME = (string) time(); /* to avoid collisions */ + $hashA = md5("AGameOfDoko".$game_id.$PlayerA.$EmailA.$TIME); + $hashB = md5("AGameOfDoko".$game_id.$PlayerB.$EmailB.$TIME); + $hashC = md5("AGameOfDoko".$game_id.$PlayerC.$EmailC.$TIME); + $hashD = md5("AGameOfDoko".$game_id.$PlayerD.$EmailD.$TIME); /* create hands */ mysql_query("INSERT INTO Hand VALUES (NULL,".DB_quote_smart($game_id).",".DB_quote_smart($useridA). - ", ".DB_quote_smart($hashA).", 'start','1',NULL,NULL,NULL,'false','false',NULL)"); + ", ".DB_quote_smart($hashA).", 'start','1',NULL,NULL,NULL,NULL)"); $hand_idA = mysql_insert_id(); mysql_query("INSERT INTO Hand VALUES (NULL,".DB_quote_smart($game_id).",".DB_quote_smart($useridB). - ", ".DB_quote_smart($hashB).", 'start','2',NULL,NULL,NULL,'false','false',NULL)"); + ", ".DB_quote_smart($hashB).", 'start','2',NULL,NULL,NULL,NULL)"); $hand_idB = mysql_insert_id(); mysql_query("INSERT INTO Hand VALUES (NULL,".DB_quote_smart($game_id).",".DB_quote_smart($useridC). - ", ".DB_quote_smart($hashC).", 'start','3',NULL,NULL,NULL,'false','false',NULL)"); + ", ".DB_quote_smart($hashC).", 'start','3',NULL,NULL,NULL,NULL)"); $hand_idC = mysql_insert_id(); mysql_query("INSERT INTO Hand VALUES (NULL,".DB_quote_smart($game_id).",".DB_quote_smart($useridD). - ", ".DB_quote_smart($hashD).", 'start','4',NULL,NULL,NULL,'false','false',NULL)"); + ", ".DB_quote_smart($hashD).", 'start','4',NULL,NULL,NULL,NULL)"); $hand_idD = mysql_insert_id(); /* save cards */ @@ -149,7 +151,7 @@ if(myisset("new")) "$PlayerC\n". "$PlayerD\n\n". "If you want to join this game, please follow this link:\n\n". - " ".$host."?me="; + "".$host."?me="; mymail($EmailA,"You are invited to a game of DoKo","Hello $PlayerA,\n".$message.$hashA); mymail($EmailB,"You are invited to a game of DoKo","Hello $PlayerB,\n".$message.$hashB); @@ -191,7 +193,7 @@ else if(myisset("cancle","me")) foreach($userids as $user) { $To = DB_get_email_by_userid($user); - mymail($To,$EmailName."game cancled (timed out)",$message); + mymail($To,$EmailName."game $gameid cancled (timed out)",$message); } /* delete everything from the dB */ @@ -229,18 +231,8 @@ else if(myisset("me")) $myhand = DB_get_handid_by_hash($me); /* get prefs and save them */ - $result = mysql_query("SELECT value from User_Prefs". - " WHERE user_id='$myid' AND pref_key='cardset'" ); - $r = mysql_fetch_array($result,MYSQL_NUM); - if($r) - { - if($r[0]=="germancards" && (time()-strtotime( "2009-12-31 23:59:59")<0) ) /* licence only valid until then */ - $PREF["cardset"]="altenburg"; - else - $PREF["cardset"]="english"; - } - else - $PREF["cardset"]="english"; + DB_get_PREF($myid); + /* end set pref */ /* get rule set for this game */ @@ -324,7 +316,7 @@ else if(myisset("me")) foreach($userids as $user) { $To = DB_get_email_by_userid($user); - mymail($To,$EmailName."game canceled",$message); + mymail($To,$EmailName."game $gameid canceled",$message); } /* delete everything from the dB */ @@ -413,6 +405,30 @@ else if(myisset("me")) /* move on to the next stage*/ DB_set_hand_status_by_hash($me,'poverty'); + + /* check if everyone has reached this stage, send out email */ + $userids = DB_get_all_userid_by_gameid($gameid); + $ok=1; + foreach($userids as $user) + { + $userstat = DB_get_hand_status_by_userid_and_gameid($user,$gameid); + if($userstat!='poverty' && $userstat!='play') + $ok=0; + }; + if($ok) + foreach($userids as $user) + { + $To = DB_get_email_by_userid($user); + $userhash =DB_get_hash_from_gameid_and_userid($gameid,$user); + if($userhash!=$me) + { + $message = "Everyone finish the questionary in game $gameid, ". + "please visit this link now to continue: \n". + " ".$host."?me=".$userhash."\n\n" ; + mymail($To,$EmailName." finished setup",$message); + } + }; + break; case 'poverty': @@ -436,7 +452,9 @@ else if(myisset("me")) if(!$ok) { echo "This step can only be handled after everyone finished the last step. ". - "Seems like this is not the case, so you need to wait a bit... please check back later....
"; + "Seems like this is not the case, so you need to wait a bit... ". + "you will get an email once that is the case, please use the link in ". + "that email to continue the game.
"; } else { @@ -502,7 +520,7 @@ else if(myisset("me")) foreach($userids as $user) { $To = DB_get_email_by_userid($user); - mymail($To,$EmailName."game canceled",$message); + mymail($To,$EmailName."game $gameid canceled",$message); } /* delete everything from the dB */ @@ -550,6 +568,7 @@ else if(myisset("me")) else if($wedding> 0) { DB_set_gametype_by_gameid($gameid,"wedding"); + DB_set_sickness_by_gameid($gameid,'-1'); /* wedding not resolved yet */ $gametype = "wedding"; }; @@ -609,9 +628,11 @@ else if(myisset("me")) $usersick = DB_get_sickness_by_userid_and_gameid($myid,$gameid); if($usersick == "wedding") DB_set_party_by_hash($me,"re"); + else + DB_set_party_by_hash($me,"contra"); - echo "Don't know who will be Re and Contra, you need to ". - "figure that out at the end of the game yourself
\n"; + echo "Whoever will make the first trick will be on the re team.
\n"; + echo " Ok, the game can start now, please finish the setup.
"; DB_set_hand_status_by_hash($me,'play'); break; @@ -629,7 +650,7 @@ else if(myisset("me")) /* check if poverty resolved (e.g. DB.Game who set to NULL) * yes? =>trump was taken, start game; break; */ - $who=DB_get_sickness_by_gameid($gameid); + $who = DB_get_sickness_by_gameid($gameid); if($who<0) { /* trump has been taken */ DB_set_hand_status_by_hash($me,'play'); @@ -637,12 +658,12 @@ else if(myisset("me")) }; if($who>9) /*= two people still have trump on the table*/ - $add=10; + $add = 10; else - $add=1; + $add = 1; /* check if we are being asked now - * no, display wait message, e.g. player X is asked at the moment + * no? display wait message, e.g. player X is asked at the moment */ $usersick = DB_get_sickness_by_userid_and_gameid($myid,$gameid); if(myisset("trump") && $_REQUEST["trump"]=="no" && ($who==$mypos || $who==$mypos*10)) @@ -662,6 +683,20 @@ else if(myisset("me")) else DB_set_sickness_by_gameid($gameid,$who+$add); + /* email next player */ + $who = DB_get_sickness_by_gameid($gameid); + if($who>9) $who = $who/10; + + if($who<=4) + { + $To = DB_get_email_by_pos_and_gameid($who,$gameid); + $userhash = DB_get_hash_from_game_and_pos($gameid,$who); + + $message = "Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:". + " ".$host."?me=".$userhash."\n\n" ; + mymail($To,$EmailName." poverty",$message); + } + /* this user is done */ DB_set_hand_status_by_hash($me,'play'); break; @@ -672,23 +707,10 @@ else if(myisset("me")) $trump = $_REQUEST["trump"]; /* get hand id for user $trump */ - $userhand=DB_get_handid_by_gameid_and_userid($gameid,$trump); + $userhand = DB_get_handid_by_gameid_and_userid($gameid,$trump); /* copy trump from player A to B */ $result = mysql_query("UPDATE Hand_Card SET hand_id='$myhand' WHERE hand_id='$userhand' AND card_id<'27'" ); - /* set re/contra, if it is not already set */ - $party = DB_get_party_by_hash($me); - if(!$party) - { - foreach($userids as $user) - { - $hash = DB_get_hash_from_gameid_and_userid($gameid,$user); - if($user == $trump || $user == $myid) - DB_set_party_by_hash($hash,"re"); - else - DB_set_party_by_hash($hash,"contra"); - } - } /* add hidden button with trump in it to get to the next point */ echo "
\n"; echo " \n"; @@ -725,11 +747,13 @@ else if(myisset("me")) } else /* reduce poverty count by one, that is go to single digits $who */ { - $add=1; - $who=$who/10; + $add = 1; + $who = $who/10; + /* whom to ask next */ $firstsick = DB_get_sickness_by_pos_and_gameid($mypos+1,$gameid); $secondsick = DB_get_sickness_by_pos_and_gameid($mypos+2,$gameid); + if($firstsick!="poverty") DB_set_sickness_by_gameid($gameid,$who+$add); else @@ -739,6 +763,20 @@ else if(myisset("me")) else DB_set_sickness_by_gameid($gameid,$who+$add*3); }; + + /* email next player */ + $who = DB_get_sickness_by_gameid($gameid); + if($who<=4) + { + $To = DB_get_email_by_pos_and_gameid($who,$gameid); + $userhash = DB_get_hash_from_game_and_pos($gameid,$who); + + $message = "Someone has poverty, it's your turn to decide, ". + "if you want to take the trump. Please visit:". + " ".$host."?me=".$userhash."\n\n" ; + mymail($To,$EmailName." poverty",$message); + } + } /* this user is done */ @@ -747,6 +785,33 @@ else if(myisset("me")) $hash = DB_get_hash_from_gameid_and_userid($gameid,$trump); DB_set_hand_status_by_hash($hash,'play'); + /* set party to re, unless we had dpoverty, in that case check if we need to set re/contra*/ + $re_set=0; + foreach($userids as $user) + { + $userhash =DB_get_hash_from_gameid_and_userid($gameid,$user); + $party=DB_get_party_by_hash($userhash); + if($party=="re") + $re_set=1; + } + if($re_set) + { + DB_set_party_by_hash($me,"contra"); + DB_set_party_by_hash($hash,"contra"); + } + else + { + foreach($userids as $user) + { + $userhash =DB_get_hash_from_gameid_and_userid($gameid,$user); + if($userhash==$hash||$userhash==$me) + DB_set_party_by_hash($userhash,"re"); + else + DB_set_party_by_hash($userhash,"contra"); + } + } + + break; } else @@ -788,10 +853,22 @@ else if(myisset("me")) } echo "I don't want to take any trump: ". "yes
"; + + echo "Your cards are:
\n"; + $mycards = DB_get_hand($me); + sort($mycards); + echo "

your cards are:
\n"; + foreach($mycards as $card) + display_card($card,$PREF["cardset"]); + echo "

\n"; } else { - echo "it's not your turn yet to decide if you want to take the trump or not."; + $mysick = DB_get_sickness_by_userid_and_gameid($myid,$gameid); + if($mysick=="poverty") + echo "The others are asked if they want to take your trump, you have to wait (you'll get an email)."; + else + echo "it's not your turn yet to decide if you want to take the trump or not."; } /* * yes, display number of trump and user's hand, ask if he wants to take it @@ -802,8 +879,8 @@ else if(myisset("me")) */ }; } - /* check if noone wanted to take trump, in that case the gamesickness would be set to 5 or 50 */ - $who=DB_get_sickness_by_gameid($gameid); + /* check if no one wanted to take trump, in that case the gamesickness would be set to 5 or 50 */ + $who = DB_get_sickness_by_gameid($gameid); if($who==5 || $who==50) { $message = "Hello, \n\n". @@ -813,7 +890,7 @@ else if(myisset("me")) foreach($userids as $user) { $To = DB_get_email_by_userid($user); - mymail($To,$EmailName."game cancled (poverty not resolved)",$message); + mymail($To,$EmailName."game $gameid cancled (poverty not resolved)",$message); } /* delete everything from the dB */ @@ -843,7 +920,7 @@ else if(myisset("me")) if($hash!=$me) { /* email startplayer) */ - $message = "It's your turn now.\n". + $message = "It's your turn now in game $gameid.\n". "Use this link to play a card: ".$host."?me=".$hash."\n\n" ; mymail($email,$EmailName."ready, set, go... ",$message); } @@ -851,7 +928,7 @@ else if(myisset("me")) echo " Please, start the game.
"; } else - echo "You finished the setup, once everyone else has done the same you'll get an email when it is your turn..
"; + echo "\n
"; break; case 'play': @@ -894,7 +971,8 @@ else if(myisset("me")) /* has the game started? No, then just wait here...*/ if($gamestatus == 'pre') { - echo "You finished the setup, but not everyone else finished it...so you need to wait for the others...
"; + echo "You finished the setup, but not everyone else finished it... ". + "so you need to wait for the others. Just wait for the an email...
"; break; /* not sure this works... the idea is that you can * only play a card after everyone is ready to play */ } @@ -902,7 +980,11 @@ else if(myisset("me")) /* display the table and the names */ $result = mysql_query("SELECT User.fullname as name,". " Hand.position as position, ". - " User.id ". + " User.id, ". + " Hand.party as party, ". + " Hand.sickness as sickness, ". + " Hand.point_call, ". + " User.last_login ". "FROM Hand ". "LEFT JOIN User ON User.id=Hand.user_id ". "WHERE Hand.game_id='".$gameid."' ". @@ -912,17 +994,79 @@ else if(myisset("me")) " \"table\"\n"; while($r = mysql_fetch_array($result,MYSQL_NUM)) { - $name = $r[0]; - $pos = $r[1]; - $user = $r[2]; - + $name = $r[0]; + $pos = $r[1]; + $user = $r[2]; + $party = $r[3]; + $sickness = $r[4]; + $call = $r[5]; + $lastlogin = strtotime($r[6]); + $offset = DB_get_user_timezone($user); $zone = return_timezone($offset); date_default_timezone_set($zone); echo " \n"; - echo " $name
\n"; - echo " local time: ".date("Y-m-d H:i:s")."\n"; + echo " $name "; + /* add hints for poverty, wedding, solo, etc */ + if($GT=="poverty" && $party=="re") + if($sickness=="poverty") + { + $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user); + $cards = DB_get_all_hand($userhash); + $trumpNR = count_trump($cards); + if($trumpNR) + echo "(poverty < trump back)"; + else + echo "(poverty <)"; + } + else + echo "(poverty >)"; + + if($GT=="dpoverty") + if($party=="re") + if($sickness=="poverty") + { + $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user); + $cards = DB_get_all_hand($userhash); + $trumpNR = count_trump($cards); + if($trumpNR) + echo "(poverty A < trump back)"; + else + echo "(poverty A <)"; + } + else + echo "(poverty A >)"; + else + if($sickness=="poverty") + { + $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user); + $cards = DB_get_all_hand($userhash); + $trumpNR = count_trump($cards); + if($trumpNR) + echo "(poverty B < trump back)"; + else + echo "(poverty B <)"; + } + else + echo "(poverty B >)"; + + if($GT=="wedding" && $party=="re") + if($sickness=="wedding") + echo "(wedding +)"; + else + echo "(wedding)"; + + if(substr_compare($GT,"solo",0,4)==0 && $party=="re") + echo "($GT)"; + + /* add point calls */ + if($call!=NULL) + echo " $party $call "; + + echo "
\n"; + echo " local time: ".date("Y-m-d H:i:s")."
\n"; + echo " last login: ".date("Y-m-d H:i:s",$lastlogin)."
\n"; echo "
\n"; } @@ -933,7 +1077,9 @@ else if(myisset("me")) " Hand.position as position,". " Play.sequence as sequence, ". " Trick.id, ". - " Comment.comment ". + " Comment.comment, ". + " Play.create_date, ". + " Hand.user_id ". "FROM Trick ". "LEFT JOIN Play ON Trick.id=Play.trick_id ". "LEFT JOIN Hand_Card ON Play.hand_card_id=Hand_Card.id ". @@ -959,7 +1105,13 @@ else if(myisset("me")) $seq = $r[2]; $trick = $r[3]; $comment = $r[4]; - + $timeplayed = strtotime($r[5]); + $user = $r[6]; + + $offset = DB_get_user_timezone($user); + $zone = return_timezone($offset); + date_default_timezone_set($zone); + /* check if first schweinchen has been played */ if($r[0] == 19 || $r[0] == 20 ) $GAME["schweinchen"]++; @@ -1046,7 +1198,7 @@ else if(myisset("me")) $r = mysql_fetch_array($result,MYSQL_NUM); $handcardid = $r[0]; - if($handcardid) + if($handcardid) /* everything ok, play card */ { $comment = ""; @@ -1057,6 +1209,19 @@ else if(myisset("me")) /* update Game timestamp */ DB_update_game_timestamp($gameid); + /* check if a call was made */ + if(myisset("call120") && $_REQUEST["call120"] == "yes") + $result = mysql_query("UPDATE Hand SET point_call='120' WHERE hash='$me' "); + if(myisset("call90") && $_REQUEST["call90"] == "yes") + $result = mysql_query("UPDATE Hand SET point_call='90' WHERE hash='$me' "); + if(myisset("call60") && $_REQUEST["call60"] == "yes") + $result = mysql_query("UPDATE Hand SET point_call='60' WHERE hash='$me' "); + if(myisset("call30") && $_REQUEST["call30"] == "yes") + $result = mysql_query("UPDATE Hand SET point_call='30' WHERE hash='$me' "); + if(myisset("call0") && $_REQUEST["call0"] == "yes") + $result = mysql_query("UPDATE Hand SET point_call='0' WHERE hash='$me' "); + + /* check for schweinchen */ //echo "schweinchen = ".$GAME["schweinchen"]." --$card-
"; if($card == 19 || $card == 20 ) @@ -1066,16 +1231,53 @@ else if(myisset("me")) $comment="Schweinchen! "; if($RULES["schweinchen"]=="both" ) $comment="Schweinchen! "; - echo "schweinchen = ".$GAME["schweinchen"]." ---
"; + if ($debug) echo "schweinchen = ".$GAME["schweinchen"]." ---
"; } /* get trick id or start new trick */ $a = DB_get_current_trickid($gameid); $trickid = $a[0]; $sequence = $a[1]; + $tricknr = $a[2]; $playid = DB_play_card($trickid,$handcardid,$sequence); + /* if sequence == 4 check who one in case of wedding */ + if($sequence == 4 && $GT == "wedding") + { + /* is wedding resolve */ + $resolved = DB_get_sickness_by_gameid($gameid); + if($resolved<0) + { + /* who has wedding */ + $userids = DB_get_all_userid_by_gameid($gameid); + foreach($userids as $user) + { + $usersick = DB_get_sickness_by_userid_and_gameid($user,$gameid); + if($usersick == "wedding") + $whosick = $user; + } + /* who won the trick */ + $play = DB_get_cards_by_trick($trickid); + $winner = get_winner($play,$gametype); /* returns the position */ + $winnerid = DB_get_userid_by_gameid_and_position($gameid,$winner); + /* is tricknr <=3 */ + if($tricknr <=3 && $winnerid!=$whosick) + { + /* set resolved at tricknr*/ + $resolved = DB_set_sickness_by_gameid($gameid,$tricknr); + /* set partner */ + $whash = DB_get_hash_from_gameid_and_userid($gameid,$winnerid); + DB_set_party_by_hash($whash,"re"); + } + if($tricknr == 3 && $winnerid==$whosick) + { + /* set resolved at tricknr*/ + $resolved = DB_set_sickness_by_gameid($gameid,'3'); + } + } + } + /* check for coment */ if(myisset("comment")) { @@ -1145,11 +1347,27 @@ else if(myisset("me")) $message .= "\n"; while( $r = mysql_fetch_array($result,MYSQL_NUM)) $message .= " FINAL SCORE: ".$r[0]." ".$r[1]."\n"; - + + /* check who wants to be CC'ed on the email */ + $h = array(); + $header = ""; + foreach($userids as $user) + { + $result = mysql_query("SELECT value from User_Prefs". + " WHERE user_id='$user' AND pref_key='ccemail'" ); + $r = mysql_fetch_array($result,MYSQL_NUM); + if($r && $r[0]=="yes") + $h[] = DB_get_email_by_userid($user); + } + if(sizeof($h)) + $header = "CC: ".join(",",$h)."\r\n"; + foreach($userids as $user) { - $To = DB_get_email_by_userid($user); - mymail($To,$EmailName."game over",$message); + $To = DB_get_email_by_userid($user); + $hash = DB_get_hash_from_gameid_and_userid($gameid,$user); + $mymessage = $message."Use this link to have a look at the game: ".$host."?me=".$hash."\n\n" ; + mymail($To,$EmailName."game over (game $gameid)",$mymessage,$header); } } @@ -1190,14 +1408,10 @@ else if(myisset("me")) $next_hash = DB_get_hash_from_game_and_pos($gameid,$next); $email = DB_get_email_by_hash($next_hash); - $message = "It's your turn now.\n". + $message = "A card has been played in game $gameid.\n\n". + "It's your turn now.\n". "Use this link to play a card: ".$host."?me=".$next_hash."\n\n" ; - mymail($email,$EmailName."a card has been played",$message); - - if($debug) - echo "DEBUG: next player
\n"; - + mymail($email,$EmailName."a card has been played",$message); } } else @@ -1233,6 +1447,22 @@ else if(myisset("me")) display_link_card($card,$PREF["cardset"]); } + if( can_call(120,$me) ) + echo " re/contra (120):". + " "; + if( can_call(90,$me) ) + echo " 90:". + " "; + if( can_call(60,$me) ) + echo " 60:". + " "; + if( can_call(30,$me) ) + echo " 30:". + " "; + if( can_call(0,$me) ) + echo " 0:". + " "; + echo "
\nA short comments:\n"; echo "\n"; echo "\n"; @@ -1313,6 +1543,7 @@ else if(myisset("me")) /* test id and password, should really be done in one step */ $email = $_REQUEST["email"]; $password = $_REQUEST["password"]; + if(myisset("forgot")) { @@ -1349,6 +1580,8 @@ else if(myisset("me")) if($ok) { + DB_get_PREF($uid); + if(myisset("setpref")) { $setpref=$_REQUEST["setpref"]; @@ -1365,6 +1598,21 @@ else if(myisset("me")) $result = mysql_query("INSERT INTO User_Prefs VALUES(NULL,'$uid','cardset',".DB_quote_smart($setpref).")"); echo "Ok, changed you preferences for the cards.\n"; break; + case "ccemail": + $result = mysql_query("SELECT * from User_Prefs". + " WHERE user_id='$uid' AND pref_key='ccemail'" ); + if( mysql_fetch_array($result,MYSQL_NUM)) + if($PREF["ccemail"]=="yes") + $result = mysql_query("UPDATE User_Prefs SET value=".DB_quote_smart("no"). + " WHERE user_id='$uid' AND pref_key='ccemail'" ); + else + $result = mysql_query("UPDATE User_Prefs SET value=".DB_quote_smart("yes"). + " WHERE user_id='$uid' AND pref_key='ccemail'" ); + else + $result = mysql_query("INSERT INTO User_Prefs VALUES(NULL,'$uid','ccemail',".DB_quote_smart("yes").")"); + echo "Ok, changed you preferences for being CC'ed on emails.\n"; + break; + } } else /* output default user page */ @@ -1383,10 +1631,25 @@ else if(myisset("me")) DB_update_user_timestamp($uid); + echo "

these are your games that haven't started yet:
\n"; + $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date from Hand". + " LEFT JOIN Game On Hand.game_id=Game.id". + " WHERE Hand.user_id='$uid' AND Game.status='pre'" ); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + { + echo "game #".$r[1]." "; + 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 "

these are the games you are playing in:
\n"; $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date from Hand". " LEFT JOIN Game On Hand.game_id=Game.id". - " WHERE Hand.user_id='$uid' AND Game.status<>'gameover'" ); + " WHERE Hand.user_id='$uid' AND Game.status='play'" ); while( $r = mysql_fetch_array($result,MYSQL_NUM)) { echo "game #".$r[1]." "; @@ -1457,10 +1720,10 @@ else if(myisset("me")) /* default login page */ else { - $pre=0;$game=0;$done=0; + $pre[0]=0;$game[0]=0;$done[0]=0; $r=mysql_query("SELECT COUNT(id) FROM Game GROUP BY status"); if($r) { - $pre = mysql_fetch_array($r,MYSQL_NUM); + $pre = mysql_fetch_array($r,MYSQL_NUM); $game = mysql_fetch_array($r,MYSQL_NUM); $done = mysql_fetch_array($r,MYSQL_NUM); }