Don Alexander Eckford's Cookie Demo

This demonstrates how a COOKIE works.

The current value of the cookie is:


Cookie Variables


 

CODE FOLLOWS

<?php

// Enable error reporting for debugging (all errors and warnings will be displayed)
error_reporting(E_ALL);
ini_set('display_errors'1);  // Ensure errors are displayed during development

// Get the name of the current script (useful for form actions)
$self basename($_SERVER['SCRIPT_NAME']); // This retrieves the script's name, used to handle the form submission

// Initialize variables to hold form data and cookie values
$cook '';  // Will hold the cookie value if it exists
$first_variable '';  // Will hold the first variable from the form
$second_variable '';  // Will hold the second variable from the form

// Retrieve the value of the 'submit' button from the POST request, if it exists
$submit = isset($_POST['submit']) ? $_POST['submit'] : null;

// A switch statement to handle form submissions based on the button clicked
switch ($submit)
{
    case 
'Submit':  // If 'Submit' is clicked

        // Retrieve form data for the two variables
        
$first_variable = isset($_POST['first_variable']) ? $_POST['first_variable'] : null;
        
$second_variable = isset($_POST['second_variable']) ? $_POST['second_variable'] : null;

        
// If both variables are set, create a full variable and store it in a cookie
        
if (($first_variable != null && $second_variable != null))
        {
            
$full_variable $first_variable ' ' $second_variable;  // Concatenate the two variables
            
setcookie('variable'$full_variabletime() + 60);    // Create a cookie valid for 60 seconds
        
}
        break;

    case 
'Refresh':  // If 'Refresh' is clicked, no action is needed
        
break;

    case 
'Delete Cookie':  // If 'Delete Cookie' is clicked

        // Set the cookie expiration time to a past value, effectively deleting the cookie
        
setcookie('variable'''time() - 86400);    // Set the cookie to expire 1 day in the past
        
break;
}

// Check if the cookie 'variable' exists and retrieve its value
if (isset($_COOKIE['variable']))
{
    
$cook $_COOKIE['variable'];  // Store the cookie value in the $cook variable
}

// Include the header file (assumed to contain common HTML structure)
include('includes/header.php');
?>

<!-- HTML content starts here -->
<h1>Don Alexander Eckford's Cookie Demo</h1>

<h2>
    This demonstrates how a COOKIE works.
</h2>

<ul class="circle">
    <li>Submit will write a COOKIE to your computer using the first and second variables you provide below.</li>
    <li>Refresh will read the COOKIE from your computer and display contents below.</li>
    <li>Delete will delete the COOKIE from your computer.</li>
    <li>Additional note -- the COOKIE will automatically expire in 60 seconds. To see this happen, wait 60 seconds and Refresh</li>
</ul>

<!-- Display the current value of the cookie (if any) -->
<p>
    The current value of the cookie is: <span class="red"><?php echo htmlspecialchars($cook); ?> </span> <!-- Use htmlspecialchars() to prevent XSS -->
</p>

<hr>

<!-- A form for submitting the two variables and handling cookie actions -->
<form name="my_form" action="<?php echo htmlspecialchars($self); ?>" method="post"> <!-- htmlspecialchars() used for security -->
    <table>

        <fieldset>
            <legend>Cookie Variables</legend>
            <label for="first_variable">First Variable:</label>
            <input type="text" size="36" id="first_variable" name="first_variable" value="">
            <br>
            <label for="second_variable">Second Variable:</label>
            <input type="text" size="36" id="second_variable" name="second_variable" value="">
        </fieldset>

    </table>
    <br>
    <!-- Buttons to submit the form, refresh, or delete the cookie -->
    <input type="submit" name="submit" value="Submit">
    <input type="submit" name="submit" value="Refresh">
    <input type="submit" name="submit" value="Delete Cookie">
</form>

<br>

<?php
// Include the footer file (assumed to contain closing HTML and scripts)
include('includes/footer.php');
?>