Categories
1semE14 MMD2 PHP

PHP: Cookie, Array, Loop

A cookie is saved locally. Therefore different browsers will display whatever the user has saved. At least as long as the cookie is alive.
A cookie is saved locally. Therefore different browsers will display whatever the user has saved. At least as long as the cookie is “alive”.

The complete code to this article is available here.

We use cookies in order to save information about or from the user input. If you compare my Firefox and Chrome browsers they will format the Microlite roleplaying web page according to random values, dates and saved input. Computergames use random values in stead of dice. First the character is saved in an associative array.

// ASSOCIATIVE ARRAY
// Define the character array.
// “key” => value
$character = array(
“strength” => rand(3,18),
“dexterity” => rand(3,18),
“mind” => rand(3,18),
“charisma” => rand(3,18),
“class” => $class[rand(0, $classes)],
“race” => $race[rand(0, $races)],
“address” => “Shire”,
“hitpoints” => rand(3,18),
“level” => 1,
);

Above you see the method in action. rand(3,18) is an imitation of the role playing “3d6” (throw 3 sixsided dices). The random generator will give a value between 3 and 18. If you read the rules of Microlite 84 it’s easy to add more character properties.

The cookie

In this case we’ll save the character data in a cookie in the client browser. However a cookie can only store a string. PHP can convert an array to a string:

$toCookie = serialize($character);

Now we can save the data in a cookie via setcookie:

setcookie(“character”, $toCookie, time()+ (60 * 60 * 60 * 24));

After the cookie has been set PHP can use the data. That is next time the page is read. PHP can check whether the cookie exists by isset($var):

if(isset( $_COOKIE[“character”] ) ) {

$charUnSer = unserialize($_COOKIE[“character”]); 

}

This will convert the cookie string to an array.

The Loop

In order to echo or print the values of the array to a table:

foreach ($charUnSer as $key => $value)
{
print ”
<tr>
<td> $key </td> <td> $value </td>
</tr>
“;
}

And this loop will then create the character table in the wbbage.

By Per Thykjaer Jensen

Per is the WordPress expert at Business Academy Aarhus. Senior Lecturer at the Multimedia Design Programme. His background is in the Arts: MA Literature History and BA Art History. Later he added a MA in IT, interaction and Multimedia. And he is a wicked Linux user.