function captcha() { require_once 'captchaConfig.php'; $cap = count($captcha); $max = strlen($captchaChars) - 1; $password = null; $password2 = ''; for ($i = 0; $i < $passwordSize; $i++) { $password .= $captchaChars[mt_rand(0, $max)]; } for ($i = 0; $i < $fileNameSize; $i++) { $password2 .= $fileNameChars[mt_rand(0, $max)]; } $im = imagecreatefromjpeg($imagesFolder . $captcha[cap($captcha)]); /* Attempt to open */ $black = imagecolorallocate($im, lineColor(), lineColor(), lineColor()); //echo $black; $dir = $fontFolder; $dh = opendir($dir); while (false !== ($filename = readdir($dh))) { if ($filename != '.' && $filename != '..') { $fonts[] = $filename; } } $font = array_rand($fonts); $font = $fontFolder . $fonts[$font]; //echo "<h1>$font</h1>"; $angle = rand(0, 40); imagettftext($im, $size, mrn($angle), $lefts, $tops, $black, $font, $password); imageline($im, line2(), line2(), line(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line(), line2(), line2(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line2(), line2(), line(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line2(), line2(), line(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line2(), line2(), line(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line2(), line2(), line(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line2(), line2(), line(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line2(), line2(), line(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line(), line2(), line2(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line2(), line2(), line2(), line2(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line2(), line(), line(), line2(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line(), line2(), line2(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line(), line2(), line2(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imageline($im, line(), line2(), line2(), line(), imagecolorallocate($im, lineColor(), lineColor(), lineColor())); imagejpeg($im, $captchasFolder . $password2 . '.jpg', $quality) or die('Is captchasFolder writable?'); $max = strlen($tmpFileChars) - 1; $tmpFile = null; for ($i = 0; $i < 16; $i++) { $tmpFile .= $tmpFileChars[mt_rand(0, $max)]; } umask(00); $tmpFile = $tmpFileLocation . $tmpFile . ".tmp"; if (!is_file($tmpFile)) { touch($tmpFile) or die('Could not create file'); } if (is_writable($tmpFile)) { if (!($handle = fopen($tmpFile, 'a'))) { echo "Cannot open file ({$tmpFile})"; exit; } if (fwrite($handle, $password) === FALSE) { echo "Cannot write to file ({$tmpFile})"; exit; } fclose($handle); } else { echo "The file {$tmpFile} is not writable"; } $html = ' <div style="display:inline-block;width:140px;padding:10px;vertical-align:top;"> <img src="' . $captchasFolderWeb . $password2 . '.jpg" height="100" width="120" border="1"/> </div> <div style="display:inline-block;width:140px;padding:10px;"> <h2>Enter the Captcha Text here:</h2> <input type="text" name="' . $passwordName . '" size="6" title="' . CAPTCHA . '" /> </div> <div> (Note: all letters are lowercase and there should be ' . $passwordSize . ' characters) <br />If the text is illegible, <a href="">click here</a> to reload the captcha. <input type="hidden" name="' . $tmpFileName . '" value="' . $tmpFile . '" /> <input type="hidden" name="capPass" value="' . $password2 . '" /> </div>'; return $html; }
function cutoutButton($x,$y,$r) { $z1 = 0.25; $z2 = $z1 + 0.125; $z3 = $z2 + 0.125; $a1 = 40; $a2 = 180 - $a1; circlePocket($x,$y,$r+R,depth(0.75,$z3,DM)); cap($x,$y,$r+R,$z3,$z2,10); circle($x,$y,$r+R,depth($z2,$z1,DM)); arc($x,$y, polarX($x,$r+R,$a2), polarY($y,$r+R,$a2), polarX($x,$r+R,$a1), polarY($y,$r+R,$a1), depth($z1,0,DM)); arc($x,$y, polarX($x,$r+R,-$a1), polarY($y,$r+R,-$a1), polarX($x,$r+R,-$a2), polarY($y,$r+R,-$a2), depth($z1,0,DM)); $y1 = $y-R-0.0625; $y2 = $y+R+0.0625; $x1 = $x+$r+R-0.0425; $x2 = $x+$r+R+0.125; line($x1,$y1, $x2,$y1, depth($z1,0,DM)); line($x2,$y2, $x1,$y2, depth($z1,0,DM)); $x1 = $x-$r-R+0.0425; $x2 = $x-$r-R-0.125; line($x1,$y1, $x2,$y1, depth($z1,0,DM)); line($x2,$y2, $x1,$y2, depth($z1,0,DM)); $x2 = $x+$r+R+0.125; line($x2,$y1, $x2,$y2, depth($z1,0,DM)); $x2 = $x-$r-R-0.125; line($x2,$y1, $x2,$y2, depth($z1,0,DM)); }