The Chess Variant Pages
Custom Search



Game Courier Game Logs

This page shows logs for games played on Game Courier, a versatile web-based play-by-mail system that currently supports over 1100 Chess variants. By default, only publicly viewable unfinished games are shown. The form below lets you select various viewing options. To make a move in one of your own games, enter your userid in the form below, click Submit, then click on your name in the Next Move For column.

Game:
Age:
Status:
Log:
Tournament:
Sort by:
Userid:

It is Steven Streetman's turn in one game.

GameLogLast ModifiedLast Move byNext Move forTime Left*Delete
Grand Chess vs Grand Shat...joejoyce-streetman.sd-2010-323-919Thu, Apr 28, 2011 Steven Streetman has won.Game OverDelete
Spartan Chessjoejoyce-spartanchessonline-2010-324-176Wed, Apr 27, 2011 Steven Streetman has won.Game OverDelete

* To minimize server load, the Timeleft figure is calculated from values stored in the database. But when the site has been offline for a while, corrections are made to the Game Courier clock to make up for the lost time, and when this happens, the values in the database are no longer in sync with the actual time left. The last time that the site was offline was for nearly 5 hours on March 30, 2020. Game Courier has been modified to give 5 extra hours to any player in a timed game whose move was delayed by the site being offline during this time. But this is not reflected in the figures shown on this page.

MySQL

This script queried the GameLogs table with the following prepared query:

SELECT * FROM GameLogs WHERE (Player = :userid1 OR Opponent = :userid2) AND Priority != 1 AND (Privacy = :privacy OR Opponent = '' OR Opponent IS NULL) ORDER BY Lastmod DESC

To avoid SQL injection, most of the values are passed separately. The values in the query are determined by the values in your URL's query string or by what is entered into the form at top. When you leave a field blank, it normally means that it will leave that field out of the query, not that it will search for an empty value. Here is a recreation of what the SQL query would look like with the placeholders replaced by the values:

SELECT * FROM GameLogs WHERE (Player = 'streetmansd' OR Opponent = 'streetmansd') AND Priority != 1 AND (Privacy = 0 OR Opponent = '' OR Opponent IS NULL) ORDER BY Lastmod DESC

The underlying MySQL is handled by MariaDB. A few fields give you multiple options for how to use them. You can search for an exact string match, an exact non-match, a LIKE match, which allows the use of a few wildcards, and a REGEXP match, which allows for very complicated pattern matching. Since these may slow down the search, they should be avoided unless you have a special need for them.

Filtering by Userid

If you enter a userid, it will list only those games in which that id identifies one of the players. Under the Next Move for column, for each game in which it is that user's turn to move, it will include a link for him to go to the PBM and make his next move. If a given user is playing any games that are not open to public view, he will need to enter his password to view these games on this page. If all your games are publicly viewable, then you don't need to include your password on this page.

How to Delete a Log

To get links for deleting logs, you must first enter a userid. To delete a log, you must be one of the players listed in the log. When you click on the link to delete a log, you will be asked for your password. Enter it and click on the Delete button. If your userid matches one of the players, and if your password is correct, the log will be deleted.


Written by Fergus Duniho
WWW Page Created: 21 July 2017