no game in progress, please input 4 names and email addresses, please make sure that the addresses are correct!
-
-\n";
- echo "perhaps the game has been cancled.";
- exit();
- }
-
- $myname = DB_get_name_by_hash($me);
- $mystatus = DB_get_status_by_hash($me);
-
- /* get game id */
- $gameid = DB_get_gameid_by_hash($me);
-
- switch($mystatus)
- {
- case 'start':
- check_want_to_play($me);
- DB_set_hand_status_by_hash($me,'init');
- break;
-
- case 'init':
- if( !isset($_REQUEST["in"]) || !isset($_REQUEST["update"]))
- {
- DB_set_hand_status_by_hash($me,'start');
- echo "you need to answer both question";
- }
- else
- {
- if($_REQUEST["in"] == "no")
- {
- echo "TODO: email everyone that the game has been canceld ";
- /*something like
- for($i=0;$i<4;$i++)
- {
- $message = "Hello ".$player[$hash[$i]]["name"].",\n\n".
- "the game has been canceled due to the request of one of the players.\n";
- mymail($player[$hash[$i]]["email"],"[DoKo-Debug] the game has been canceled",$message);
- }
- */
- DB_cancel_game($me);
- }
- else
- {
- echo "thanks for joining the game... please scroll down";
- echo "TODO: make this page nicer ";
- echo "TODO: set card pref ";
-
- $mycards = DB_get_hand($me);
- sort($mycards);
- echo "
your cards are: \n";
- foreach($mycards as $card)
- display_card($card);
- echo "
\n";
-
- check_for_sickness($me,$mycards);
-
- DB_set_hand_status_by_hash($me,'check');
- }
- }
- break;
-
- case 'check':
- echo "no checking at the moment... you need to play a normal game";
- if(!isset($_REQUEST["solo"]) ||
- !isset($_REQUEST["wedding"]) ||
- !isset($_REQUEST["poverty"]) ||
- !isset($_REQUEST["nines"]) )
- {
- DB_set_hand_status_by_hash($me,'init');
- /* problem: by setting it back to init, variables "in" and "update" are
- * not set, so the player will be send back to the start, after seeing his hand
- */
- echo "you need to fill out the form";
- }
- else
- {
- if( $_REQUEST["solo"]!="No")
- {
- DB_set_solo_by_hash($me,$_REQUEST["solo"]);
- DB_set_sickness_by_hash($me,"solo");
- }
- else if($_REQUEST["wedding"] == "yes")
- {
- echo "wedding was chosen \n";
- DB_set_sickness_by_hash($me,"wedding");
- }
- else if($_REQUEST["poverty"] == "yes")
- {
- echo "poverty was chosen \n";
- DB_set_sickness_by_hash($me,"poverty");
- }
- else if($_REQUEST["nines"] == "yes")
- {
- echo "nines was chosen \n";
- DB_set_sickness_by_hash($me,"nines");
- }
- }
- DB_set_hand_status_by_hash($me,'poverty');
-
- /* check all players and set game to final result, e.g. solo, wedding, povert, redeal */
-
- /* reset solo, etc from players who did say something, but it didn't matter? */
- break;
- case 'poverty':
- echo " poverty not handeled at the moment... you need to play a normal game ";
-
- /* only set this after all poverty, etc. are handeled*/
- DB_set_hand_status_by_hash($me,'play');
-
- /* check if the game can start */
- $userids = DB_get_all_userid_by_gameid($gameid);
- $done=1;
- foreach($userids as $user)
- if(DB_get_hand_status_by_userid($user)!='play')
- $done=0;
-
- if($done)
- DB_set_game_status_by_gameid($gameid,'play');
-
- break;
- case 'play':
- case 'gameover': /* gameover and play, so that the tricks are visible for both */
- display_news();
- display_status();
-
- /* get trick ids */
- $result = mysql_query("SELECT Hand_Card.card_id as card,".
- " User.fullname as name,".
- " Hand.position as position,".
- " Play.sequence as sequence, ".
- " Hand.hash as hash, ".
- " Trick.id ".
- "FROM Trick ".
- "LEFT JOIN Play ON Trick.id=Play.trick_id ".
- "LEFT JOIN Hand_Card ON Play.hand_card_id=Hand_Card.id ".
- "LEFT JOIN Hand ON Hand_Card.hand_id=Hand.id ".
- "LEFT JOIN User ON User.id=Hand.user_id ".
- "WHERE Trick.game_id='".$gameid."' ".
- "ORDER BY Trick.id,sequence ASC");
-
-
- $trickNR = 1;
-
- $lasttrick = DB_get_max_trickid($gameid);
-
- $play = array(); /* needed to calculate winner later */
- $seq=1;
- $pos=0;
-
- echo "\n
\n"; /* end div card */
-
- /* end of trick? */
- if($seq==4)
- {
- $trickNR++;
- echo "
\n
\n"; /* end div table, end li table */
- }
- }
- if($seq!=4)
- echo "
\n
\n"; /* end div table, end li table */
-
- echo "
\n";
-
- /* whos turn is it? */
- if($seq==4)
- {
- $winner = get_winner($play); /* returns the position */
- $next = $winner;
- }
- else
- {
- $next = $pos+1;
- }
- if($next==5) $next=1;
-
- /* my turn?, display cards as links, ask for comments*/
- if(DB_get_pos_by_hash($me) == $next)
- $myturn = 1;
- else
- $myturn = 0;
-
- /* do we want to play a card? */
- if(isset($_REQUEST["card"]) && $myturn)
- {
- $card = $_REQUEST["card"];
- $handid = DB_get_handid_by_hash($me);
-
- /* check if we have card and that we haven't played it yet*/
- /* set played in hand_card to true where hand_id and card_id*/
- $result = mysql_query("SELECT id FROM Hand_Card WHERE played='false' and ".
- "hand_id='$handid' AND card_id=".DB_quote_smart($card));
- $r = mysql_fetch_array($result,MYSQL_NUM);
- $handcardid = $r[0];
-
- if($handcardid)
- {
- mysql_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".DB_quote_smart($card));
-
- /* get trick id or start new trick */
- $a = DB_get_current_trickid($gameid);
- $trickid = $a[0];
- $sequence = $a[1];
-
- DB_play_card($trickid,$handcardid,$sequence);
- echo "
";
- echo " you played ";
- display_card($card);
- echo "
\n";
-
-
- /*check if we still have cards left, else set status to gameover */
- if(sizeof(DB_get_hand($me))==0)
- {
- DB_set_hand_status_by_hash($me,'gameover');
- $mystatus='gameover';
- }
-
- /* if all players are done, set game status also to game over */
- $userids = DB_get_all_userid_by_gameid($gameid);
- $done=1;
- foreach($userids as $user)
- if(DB_get_hand_status_by_userid($user)!='gameover')
- $done=0;
+ output_header();
+ echo "Database error, can't connect... Please wait a while and try again. ".
+ "If the problem doesn't go away feel free to contact $ADMIN_NAME at $ADMIN_EMAIL.";
+ output_footer();
+ exit();
+ }
- if($done)
- DB_set_game_status_by_gameid($gameid,"gameover");
-
- /* email next player */
- if(DB_get_game_status_by_gameid($gameid)=='play')
- {
- if($sequence==4)
- {
- $play = DB_get_cards_by_trick($trickid);
- $winner = get_winner($play); /* returns the position */
- $next = $winner;
- }
- else
- {
- $next = DB_get_pos_by_hash($me)+1;
- }
- if($next==5) $next=1;
+/* start a session, if it is not already running.
+ * This way people don't have to log in all the times.
+ * The session variables can also be read out from different
+ * php scripts, so that the code can be easily split up across several files
+ */
+session_start();
- echo "TODO: email next player at pos $next ";
- if($debug)
- echo "DEBUG: next player \n";
+/* done major error checking, output header of HTML page */
+output_header();
- }
- }
- else
- {
- echo "couldn't find card \n";
- }
- }
- else if(isset($_REQUEST["card"]) && !$myturn )
- {
- echo "please wait until it is your turn! \n";
- }
-
- $mycards = DB_get_hand($me);
- sort($mycards);
- echo "
\n";
+/* The rest of the file consists of handling user input.
+ * The user sends information via html GET and POST variables,
+ * and the action variable tells the prog what the user wants to do
+ */
+if(myisset("action"))
+ $action=$_REQUEST['action'];
+else
+ $action=""; /* so that we can use a default option below */
- /* check if we need to set status to 'gameover' is done during playing of the card */
- if($mystatus=='play')
- break;
- /* the following happens only when the gamestatus is 'gameover' */
- /* check if game is over, display results */
- if(DB_get_game_status_by_gameid($gameid)=='play')
- {
- echo "the game is over for you.. other people still need to play though";
- }
- else
- {
- echo "the game is over now... guess the final score should be displayed here... \n";
-
- /* suggest a new game with the same people in it, just rotated once */
- $names = DB_get_all_names_by_gameid($gameid);
-
- echo "Do you want to continue playing?(This will start a new game, with the next person as dealer.)\n";
- echo "\n";
- }
- break;
- default:
- echo "error in testing the status";
- }
- exit();
- }
- else if(isset($_REQUEST["email"]) && isset($_REQUEST["password"]))
+switch($action)
{
- $ok=1;
- $uid = DB_get_userid_by_email($_REQUEST["email"]);
- if(!$uid)
- $ok=0;
- if(!DB_get_userid_by_passwd(md5($_REQUEST["password"])))
- $ok=0;
-
- if($ok)
- {
- echo "ok. your logged in, now what? :) ";
-
- }
+ case 'new':
+ require './include/newgame.php';
+ break;
+ case 'cancel':
+ require './include/cancelgame.php';
+ break;
+ case 'reminder':
+ require './include/reminder.php';
+ break;
+ case 'logout':
+ require './include/logout.php';
+ require './include/welcome.php';
+ break;
+ case 'login':
+ require './include/login.php';
+ require './include/user.php';
+ break;
+ case 'game':
+ require './include/game.php';
+ break;
+ default:
+ if(isset($_SESSION["name"]))
+ require './include/user.php';
else
- {
- echo "sorry email and password don't match ";
- }
- exit();
+ require './include/welcome.php';
}
-else if(isset($_REQUEST["register"]) )
- {
- echo "TODO: convert timezone into a menu \n";
- echo "TODO: figure out a way to handle passwrods \n";
-?>
-
-";
- $ok=0;
- }
- if(DB_get_userid_by_email($_REQUEST["Remail"]))
- {
- echo "this email address is already used ?! ";
- $ok=0;
- }
- if($ok)
- {
- $r=mysql_query("INSERT INTO User VALUES(NULL,".DB_quote_smart($_REQUEST["Rfullname"]).
- ",".DB_quote_smart($_REQUEST["Remail"]).
- ",".DB_quote_smart(md5($_REQUEST["Rpassword"])).
- ",".DB_quote_smart($_REQUEST["Rtimezone"]).",NULL)");
-
- if($r)
- echo " added you to the database";
- else
- echo " something went wrong";
- }
- }
-else
- { /* no new game, not in a game */
-?>
-
If you want to play a game of Doppelkopf, you found the right place ;)
-
Please register, in case you haven't done yet
- or login with you email-address or name and password here:
-