I have a script that allows a user to selecta phrase, a font, and a colour of that font and see it previewed in a window below the form.
I cant seemt o gett he colour selection to work at all, at the moment it just keeps showing up in red.
heres the script
First the form
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<h2>Enter Your Phrase</h2>
<input type="text" name="phrase" value="<?php
if(isset($_POST["phrase"])) {
echo $_POST["phrase"];
}
?>"/>
<br />
<h2>Select Your Font</h2>
<select name="font">
<option value="fonts/Adorable.ttf">Adorable</option>
<option value="fonts/angelina.TTF">angelina</option>
<option value="fonts/Ashley.ttf">Ashley</option>
</select><br />
<h2>Select Your Color</h2>
<select name="colour">
<option value="red" selected="selected" class="red">Red</option>
<option value="pink" class="pink">Pink</option>
<option value="blue" class="blue">Blue</option>
</select><br />
<input type="submit" /><br />
</form>
<?php
if(isset($_POST["phrase"])) {
$p = $_POST["phrase"];
$f = $_POST["font"];
$c = $_POST['colour'];
echo "<img src=\"test2.php?phrase=$p&font=$f&colour=$c\" alt=\"\" />";
}
?>
And now the script to create the image
<?php
if(isset($_GET['phrase'])) {
// Set the content-type
header("Content-type: image/png");
$phrase = stripslashes($_GET['phrase']);
// Create the image
$im = imagecreatetruecolor(400, 100);
// Create some colors
$colour = $_GET['colour'];
if ($colour = 'red') {
$col = imagecolorallocate($im, 255, 000, 000);
}
elseif ($colour = 'pink') {
$col = imagecolorallocate($im, 255, 105, 180);
}
elseif ($colour = 'blue') {
$col = imagecolorallocate($im, 000, 000, 255);
}
else {
$col = imagecolorallocate($im, 0, 0, 0);
}
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
//create a border
imagefilledrectangle($im, 1, 1, 398, 98, $white);
// define the path to the selected font
$font = $_GET['font'];
// Add the text
imagettftext($im, 20, 0, 50, 50, $col, $font, $phrase);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
}
?>
Can anyone see what im doing wrong? .... my if statements look right to me..... but i cant get the result i expect.
Any tips really appreciated on this.... thanks guys