Medallion Generator

Don Alexander Eckford's Medallion Reward System

Your Medallion:



Code for Goal Achievement FOLLOWS

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    
$percentage $_POST['percentage'];

    
// Determine the number of sides
    
if ($percentage 10)
    {
        
$sides 3;
    }
    elseif (
$percentage <= 20)
    {
        
$sides 3;
    }
    elseif (
$percentage <= 30)
    {
        
$sides 4;
    }
    elseif (
$percentage <= 40)
    {
        
$sides 4;
    }
    elseif (
$percentage <= 50)
    {
        
$sides 5;
    }
    elseif (
$percentage <= 60)
    {
        
$sides 6;
    }
    elseif (
$percentage <= 70)
    {
        
$sides 7;
    }
    elseif (
$percentage <= 80)
    {
        
$sides 8;
    }
    elseif (
$percentage <= 90)
    {
        
$sides 9;
    }
    else
    {
        
$sides 10;
    }

    
// Redirect to the drawing script with the calculated sides
    
header("Location: draw_medallion.php?sides=$sides");
    exit();
}
?>


SLAVE CODE for drawing medallion FOLLOWS

<?php
    
// Check if the number of sides is provided in the query string
    
if (!isset($_GET['sides']))
    {
        die(
"Error: No sides parameter provided."); // Stop execution if 'sides' is not set
    
}

    
// Get the number of sides from the query string
    
$sides = (int)$_GET['sides'];

    
// Define the image dimensions
    
$width 200;  // Image width
    
$height 200// Image height

    // Create a blank image with the specified width and height
    
$image imagecreate($width$height);

    
// Allocate colors
    
$background imagecolorallocate($image238238238); // Light gray background
    
$color imagecolorallocate($image00255);          // Blue color for the polygon

    // Initialize an empty array to store polygon points
    
$points = [];
    
$radius 70// Radius of the polygon
    
$centerX $width 2// Center X-coordinate of the polygon
    
$centerY $height 2// Center Y-coordinate of the polygon

    // Calculate the coordinates for each vertex of the polygon
    
for ($i 0$i $sides$i++)
    {
        
$angle pi() * $i $sides// Calculate the angle for this vertex
        
$x $centerX $radius cos($angle); // X-coordinate
        
$y $centerY $radius sin($angle); // Y-coordinate
        
$points[] = $x// Add X-coordinate to the points array
        
$points[] = $y// Add Y-coordinate to the points array
    
}

    
// Draw the outline of the polygon
    
imagepolygon($image$points$sides$color);

    
// Draw a filled polygon with the same points
    
imagefilledpolygon($image$points$sides$color);

    
// Optional: Create a red frame around the image
    // Define the coordinates for the frame
    
$frame = [
        
00,               // Top-left corner
        
$width 10,      // Top-right corner
        
$width 1$height 1// Bottom-right corner
        
0$height 1,     // Bottom-left corner
        
00                // Close the frame back at the top-left corner
    
];

    
// Set the color for the frame (red)
    
$frameColor imagecolorallocate($image25500);

    
// Draw the frame
    
imagepolygon($image$framecount($frame) / 2$frameColor);

    
// Directory to save the image
    
$imageDir "generated_images/";
    if (!
is_dir($imageDir))
    {
        
mkdir($imageDir0777true); // Create directory if it doesn't exist
    
}

    
// Unique filename for the image
    
$imageFile $imageDir "medallion_" $sides "_" time() . ".png";

    
// Save the image as a file
    
imagepng($image$imageFile);

    
// Free memory
    
imagedestroy($image);

    
// Redirect back to the main page with the image file path
    
header("Location: index_medallion.php?image=" urlencode($imageFile));
    exit();
?>

// Output the image as a PNG
//header("Content-Type: image/png");
//imagepng($image);

// Free memory used by the image
//imagedestroy($image);
//?>
 

CODE FOLLOWS

<?php
    
include('includes/header.php');

    
error_reporting(E_ALL);    // set error reporting to all
    
?>

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <title>Medallion Generator</title>
        <style>
            /* Optional CSS for the medallion container */
            .medallion-container
            {
                border: 2px solid #000;
                padding: 10px;
                display: inline-block;
                text-align: center;
                margin: 20px 0;
            }
            .medallion-caption
            {
                margin-top: 5px;
                font-style: italic;
                font-size: 14px;
            }
        </style>
    </head>
    <body>
    <h1>Don Alexander Eckford's Medallion Reward System</h1>

    <h2>Your Medallion:</h2>

<!--    <?php
//   // if (isset($_GET['sides']))
//   // {
//        $sides = $_GET['sides'];
//        //echo "<figure class='medallion-container'>";
//        //echo "<img src='draw_medallion.php?sides=$sides' alt='Your Medallion'>";
//       // echo "<figcaption class='medallion-caption'>Your Achievement Medallion</figcaption>";
//       // echo "</figure>";
//   // }
// <!--   
?>-->

    <?php
    
if (isset($_GET['image'])) {
        
$imageFile $_GET['image'];
        echo 
"<figure class='medallion-container'>";
        echo 
"<img src='$imageFile' alt='Your Medallion'>";
        echo 
"<figcaption class='medallion-caption'>Your Achievement Medallion</figcaption>";
        echo 
"</figure>";
    }
    
?>

    <form action="generate_medallion.php" method="post">
        <label for="percentage">Enter your achievement percentage:</label>
        <input type="number" id="percentage" name="percentage" min="0" max="100" step="5" required>
        <button type="submit">Generate Medallion</button>
    </form>
    </body>
    </html>

<?php

    
// list code for slave routine
    
echo('<hr><br>Code for Goal Achievement  FOLLOWS<br><br>');
    
highlight_file('generate_medallion.php');

    
// list code for slave routine
    
echo('<hr><br>SLAVE CODE for drawing medallion FOLLOWS<br><br>');
    
highlight_file('draw_medallion.php');

    include(
'includes/footer.php');
?>