Server IP : 149.202.105.228 / Your IP : 216.73.216.123 Web Server : Apache System : Linux webm129.cluster030.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64 User : atfycaf ( 116275) PHP Version : 7.4.33 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/atfycaf/www/ |
Upload File : |
<?php ///// PHP CAPTCHA \\\\\ if(!isset($_SESSION)) { session_start(); } ///// VARS \\\\\ $CAPTCHA_SESSION_ID = "php_captcha"; $CAPTCHA_WIDTH = 200; $CAPTCHA_HEIGHT = 60; $CAPTCHA_NUM_CHARS = 5; $CAPTCHA_NUM_LINES = 60; $CAPTCHA_CHAR_SHADOW = false; $CAPTCHA_OWNER_TEXT = ""; $CAPTCHA_CHAR_SET = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z,1,2,3,4,5,6,7,8,9"; $CAPTCHA_CASE_INSENSITIVE = true; $CAPTCHA_BACKGROUND_IMAGES = ""; $CAPTCHA_MIN_FONT_SIZE = 16; $CAPTCHA_MAX_FONT_SIZE = 25; $CAPTCHA_USE_COLOUR = false; $CAPTCHA_FILE_TYPE = "png"; function CreateCaptcha() { global $CAPTCHA_SESSION_ID, $CAPTCHA_WIDTH, $CAPTCHA_HEIGHT, $CAPTCHA_NUM_CHARS, $CAPTCHA_NUM_LINES, $CAPTCHA_CHAR_SHADOW, $CAPTCHA_OWNER_TEXT, $CAPTCHA_CHAR_SET, $CAPTCHA_CASE_INSENSITIVE, $CAPTCHA_BACKGROUND_IMAGES, $CAPTCHA_MIN_FONT_SIZE, $CAPTCHA_MAX_FONT_SIZE, $CAPTCHA_USE_COLOUR, $CAPTCHA_FILE_TYPE, $aFonts; if (!function_exists("imagecreate") || !function_exists("image". $CAPTCHA_FILE_TYPE) || ($CAPTCHA_BACKGROUND_IMAGES != "" && !function_exists("imagecreatetruecolor"))) { return false; } $iWidth = $CAPTCHA_WIDTH; $iHeight = $CAPTCHA_HEIGHT; if ($iWidth > 500) { $iWidth = 500; } if ($iHeight > 200) { $iHeight = 200; } if (is_array($CAPTCHA_BACKGROUND_IMAGES) || $CAPTCHA_BACKGROUND_IMAGES != "") { $oImage = imagecreatetruecolor($iWidth, $iHeight); if (is_array($CAPTCHA_BACKGROUND_IMAGES)) { $iRandImage = array_rand($CAPTCHA_BACKGROUND_IMAGES); $oBackgroundImage = imagecreatefromjpeg($CAPTCHA_BACKGROUND_IMAGES[$iRandImage]); } else { $oBackgroundImage = imagecreatefromjpeg($CAPTCHA_BACKGROUND_IMAGES); } imagecopy($oImage, $oBackgroundImage, 0, 0, 0, 0, $iWidth, $iHeight); imagedestroy($oBackgroundImage); } else { $oImage = imagecreate($iWidth, $iHeight); } imagecolorallocatealpha($oImage, 255, 255, 255, 127); if ($CAPTCHA_OWNER_TEXT != "") { $iBlack = imagecolorallocate($oImage, 0, 0, 0); $iOwnerTextHeight = imagefontheight(2); $iLineHeight = $iHeight - $iOwnerTextHeight - 4; imageline($oImage, 0, $iLineHeight, $iWidth, $iLineHeight, $iBlack); imagestring($oImage, 2, 3, $iHeight - $iOwnerTextHeight - 3, $CAPTCHA_OWNER_TEXT, $iBlack); $iHeight = $iHeight - $iOwnerTextHeight - 5; } if (!is_array($CAPTCHA_BACKGROUND_IMAGES) && $CAPTCHA_BACKGROUND_IMAGES == "") { for ($i = 0; $i < $CAPTCHA_NUM_LINES; $i++) { if ($CAPTCHA_USE_COLOUR) { $iLineColour = imagecolorallocate($oImage, rand(100, 250), rand(100, 250), rand(100, 250)); } else { $iRandColour = rand(100, 250); $iLineColour = imagecolorallocate($oImage, $iRandColour, $iRandColour, $iRandColour); } imageline($oImage, rand(0, $iWidth), rand(0, $iHeight), rand(0, $iWidth), rand(0, $iHeight), $iLineColour); } } if (!is_array($CAPTCHA_CHAR_SET)) { if ($CAPTCHA_CHAR_SET != "") { $aCharSet = explode(",", $CAPTCHA_CHAR_SET); $CAPTCHA_CHAR_SET = array(); foreach ($aCharSet as $sCurrentItem) { if (strlen($sCurrentItem) == 3) { $aRange = explode("-", $sCurrentItem); if (count($aRange) == 2 && $aRange[0] < $aRange[1]) { $aRange = range($aRange[0], $aRange[1]); $CAPTCHA_CHAR_SET = array_merge($CAPTCHA_CHAR_SET, $aRange); } } else { $CAPTCHA_CHAR_SET[] = $sCurrentItem; } } } } $sCode = ""; for ($i = 0; $i < $CAPTCHA_NUM_CHARS; $i++) { if (count($CAPTCHA_CHAR_SET) > 0) { $sCode .= $CAPTCHA_CHAR_SET[array_rand($CAPTCHA_CHAR_SET)]; } else { $sCode .= chr(rand(65, 90)); } } if ($CAPTCHA_CASE_INSENSITIVE == true) { $_SESSION[$CAPTCHA_SESSION_ID] = strtoupper($sCode); } else { $_SESSION[$CAPTCHA_SESSION_ID] = $sCode; } for ($i = 0; $i < strlen($sCode); $i++) { $sCurrentFont = $aFonts[array_rand($aFonts)]; if ($CAPTCHA_USE_COLOUR == true) { $iTextColour = imagecolorallocate($oImage, rand(0, 100), rand(0, 100), rand(0, 100)); if ($CAPTCHA_CHAR_SHADOW == true) { $iShadowColour = imagecolorallocate($oImage, rand(0, 100), rand(0, 100), rand(0, 100)); } } else { $iRandColour = rand(0, 100); $iTextColour = imagecolorallocate($oImage, $iRandColour, $iRandColour, $iRandColour); if ($CAPTCHA_CHAR_SHADOW == true) { $iRandColour = rand(0, 100); $iShadowColour = imagecolorallocate($oImage, $iRandColour, $iRandColour, $iRandColour); } } $iSpacing = (int)($iWidth / $CAPTCHA_NUM_CHARS); $iFontSize = rand($CAPTCHA_MIN_FONT_SIZE, $CAPTCHA_MAX_FONT_SIZE); $iAngle = rand(-30, 30); $aCharDetails = imageftbbox($iFontSize, $iAngle, $sCurrentFont, $sCode[$i], array()); $iX = $iSpacing / 4 + $i * $iSpacing; $iCharHeight = $aCharDetails[2] - $aCharDetails[5]; $iY = $iHeight / 2 + $iCharHeight / 4; imagefttext($oImage, $iFontSize, $iAngle, $iX, $iY, $iTextColour, $sCurrentFont, $sCode[$i], array()); if ($CAPTCHA_CHAR_SHADOW == true) { $iOffsetAngle = rand(-30, 30); $iRandOffsetX = rand(-5, 5); $iRandOffsetY = rand(-5, 5); imagefttext($oImage, $iFontSize, $iOffsetAngle, $iX + $iRandOffsetX, $iY + $iRandOffsetY, $iShadowColour, $sCurrentFont, $sCode[$i], array()); } } if (in_array($CAPTCHA_FILE_TYPE, array("gif", "png", "jpeg"))) { $sFileType = $CAPTCHA_FILE_TYPE; } else { $sFileType = "jpeg"; } header("Content-type: image/$sFileType"); if ($sFileType == "gif") { imagegif($oImage); } elseif ($sFileType == "png") { imagepng($oImage); } else { imagejpeg($oImage); } imagedestroy($oImage); return true; } function ValidateCaptcha($sUserCode, $bCaseInsensitive = true) { global $CAPTCHA_SESSION_ID; if ($bCaseInsensitive == true) { $sUserCode = strtoupper($sUserCode); } if (!empty($_SESSION[$CAPTCHA_SESSION_ID]) && $sUserCode == $_SESSION[$CAPTCHA_SESSION_ID]) { unset($_SESSION[$CAPTCHA_SESSION_ID]); return true; } return false; }