Jul 31

I am excited to announce the launch of Starting 11 | Free Fantasy Football, my latest work at SANIsoft. The project was done for a client based in UK who happens to be a football fanatic. Starting 11 is a fantasy game based on English Premier League where users can create their fantasy (virtual) team consisting of real life players playing in the EPL. The players (and fantasy teams) are awarded points based on real life performances in the matches. Users can create their own leagues and compete with their friends.

It took us around 4 months of hard work to create the application. The project is entirely built on LAMP (Linux, Apache, MySQL, PHP) technologies. We have also used jQuery at few places.We have used a popular php framework in the backend. We have tried to optimized the application as much as possible and hope that it will handle high loads at peak time (which will be the weekly deadline to select one’s team).

S11 got around 1300 members on the first day of the launch and more will be registering in the coming days as the word spreads. Many of the Yahoo Fantasy Football’s top players (user’s) have already registered on s11. If you are a football fanatic then don’t wait…get going and register on starting11.

Apr 24

Coppermine Photo Gallery is again taking part as a mentoring organization in GSoC and i will be mentoring for coppermine organization for the second year straight in a row. It took us around a month to decide on project ideas and students.

Finally on April 21st 2008 the final student allocation list was published by google. I will be mentoring the project called AJAX functionality for core of Coppermine which will be done by Nuwan Sameera Hettiarachchi from Sri Lanka. After the completion of this project coppermine will be an Ajax rich application. Ofcourse every ajax functionality will gracefully degrade if javascript is not supported by the client browser. We intend to put following main features :

  • Filmstrip carousel
  • Ajax slideshow with transition effects
  • New upload form to reduce the number of steps required to upload files
  • Ajax sorting of pictures/albums/categories
  • And many more cool small features…

The coding period will start on May 26th and will last till August 18th 2008. I am really looking forward for a great summer of code ahead and hope that coppermine interface gets better with student contributions.

Sep 28

On many banking sites you will find that when back or refresh button is pressed the session expires and it shows you a custom page. Well below is a simple PHP code which will do the same. The code is very basic and illustrates just the logic.

Include the below given code in all your scripts.

PHP:
  1. // First make sure that the page is not cached
  2. header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
  3. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
  4.  
  5. // Start the session
  6.  
  7. // If there is a key in session and there is no key in GET then exit with error.
  8. if (isset($_SESSION['key']) && !isset($_GET['key'])) {
  9.   echo "SESSION expired";
  10.   exit;
  11. }
  12.  
  13. // If there is a key in GET then validate the key against the key stored in session
  14. if (isset($_GET['key']) && isset($_SESSION['key'])) {
  15.   // Compare the key passed with the one stored in session
  16.   if ($_GET['key'] != $_SESSION['key']) {
  17.     echo "SESSION expired";exit;
  18.   }
  19. }
  20.  
  21. // Generate a key for next page and store it in session.
  22. $next_key = md5(time());
  23. $_SESSION['key'] = $next_key;
  24.  
  25. // Now $next_key is the key which should be passed in all links
  26. // Something like <a href="second_page.php?key=$next_key">Secon page</a>
  27. // If no key is passed or invalid key is passed then session expire error will be shown

$next_key should be passed in the URL to all scripts.