<?php insert_header("Rainbow - tosset"); ?>
<h1>Rainbow by Jens Gram</h1>
<h3> - et meningløst script!</h3>
<hr>
<form action="rainbow.php" method="POST">
<p>Vælg kvalitet:
<select name="step" style="font-family: monospace;">
<option value="63">grov ( 10 KB)
<option value="31">normal ( 50 KB)
<option value="17">fin (300 KB)
</select>
<input type="submit" value="<vis>">
</p>
</form>
<?php
if (isset($HTTP_POST_VARS['step'])) { // kom med request
$step = (int)$HTTP_POST_VARS['step']; // antal "skridt" > hop
} else {
$step = 63; // default
}
function print_str($r, $g, $b)
{
$rgb = htmlhex($r, $g, $b); // til HEX
print "<span style=\"background-color: #" . $rgb . ";\" title=\"#" . $rgb . "\"> </span>";
}
function htmlhex($r, $g, $b)
{
$r = str_pad(dechex($r), 2, 0, STR_PAD_LEFT); // til tocifret HEX
$g = str_pad(dechex($g), 2, 0, STR_PAD_LEFT); // til tocifret HEX
$b = str_pad(dechex($b), 2, 0, STR_PAD_LEFT); // til tocifret HEX
return $r . $g . $b; // retunér rrggbb
}
for ($r = 0; $r < 256; $r += $step) { // rød
for ($g = 0; $g < 256; $g += $step) { // grøn
for ($b = 0; $b < 256; $b += $step) { // blå
print_str($r, $g, $b);
}
}
print "<br>"; // gør det lidt pænere
}
?>
<p>Hint: Hold markøren over "paletten" for at få farvekoden (#rrggbb).</p>
<?php insert_footer(); ?>
Dette var så kildekoden til rainbow.php. Hvis du undrer dig over nogle af funktionerne (ex. insert_header(), insert_footer(), mysql_*_forb()), så kig i kildekoden til funktioner.inc.php, der inkluderes for alle PHP-filer på sitet. Det er næppe den pæneste kode du vil se, men jeg undskylder mig med, at størstedelen er meget gammel kode, der ikke er blevet rettet da det virker fint. Følsomme data er blevet fjernet, men det skulle ikke ødelægge læsbarheden.
Kildekoden til denne fil (dvs. den fil, der viser kildekoden til filerne) kan du se her.
Opdager du sikkerhedshuller så vil jeg meget gerne høre fra dig. På forhånd tak.