BUGFIX: got rid of double insert of notes.
[e-DoKo.git] / include / cancelgame.php
1 <?php
2 /* make sure that we are not called from outside the scripts, 
3  * use a variable defined in config.php to check this
4  */
5 if(!isset($HOST))
6   exit;
7
8 output_status();
9
10 if(!myisset("me"))
11   {
12     echo "Hmm, you really shouldn't mess with the urls.<br />\n";
13     return;
14   }
15
16 $me = $_REQUEST["me"];
17
18 /* test for valid ID */
19 $myid = DB_get_userid('hash',$me);
20 if(!$myid)
21   {
22     echo "Can't find you in the database, please check the url.<br />\n";
23     echo "perhaps the game has been canceled, check by login in <a href=\"$INDEX\">here</a>.";
24     return;
25   }
26
27 DB_update_user_timestamp($myid);
28
29 /* get some information from the DB */
30 $gameid   = DB_get_gameid_by_hash($me);
31 $myname   = DB_get_name('hash',$me);
32
33 /* check if game really is old enough to be canceled */
34 $r = DB_query_array("SELECT mod_date from Game WHERE id='$gameid' " );
35 if(time()-strtotime($r[0]) > 60*60*24*30) /* = 1 month */
36   {
37     $message = "Hello, \n\n".
38       "Game ".DB_format_gameid($gameid).
39       " has been canceled since nothing happend for a while and $myname requested it.\n";
40
41     $userids = DB_get_all_userid_by_gameid($gameid);
42     foreach($userids as $user)
43       {
44         $To = DB_get_email('userid',$user);
45         mymail($To,$EmailName."game ".DB_format_gameid($gameid)." canceled (timed out)",$message);
46       }
47
48     /* delete everything from the dB */
49     DB_cancel_game($me);
50
51     echo "<p style=\"background-color:red\";>Game ".DB_format_gameid($gameid).
52       " has been canceled.<br /><br /></p>";
53   }
54  else
55    echo "<p>You need to wait longer before you can cancel a game...</p>\n";
56 ?>