{"id":199589,"date":"2025-05-03T08:44:07","date_gmt":"2025-05-03T00:44:07","guid":{"rendered":"https:\/\/server.hk\/cnblog\/199589\/"},"modified":"2025-05-03T08:44:07","modified_gmt":"2025-05-03T00:44:07","slug":"ecshop%e9%aa%8c%e8%af%81%e7%a0%81%e6%96%87%e4%bb%b6%e4%bb%a3%e7%a0%81%e5%88%86%e6%9e%90","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/199589\/","title":{"rendered":"ecshop\u9a8c\u8bc1\u7801\u6587\u4ef6\u4ee3\u7801\u5206\u6790"},"content":{"rendered":"<pre>\r\n&lt;?php\r\n\/\/\u4eff\u5236ecshop\u9a8c\u8bc1\u7801\uff08\u56db\u4f4d\u5927\u5199\u5b57\u6bcd\u548c\u6570\u5b57\u3001\u80cc\u666f\uff09\r\n\/\/\u5904\u7406\u7801\u503c\uff08\u56db\u4f4d\u5927\u5199\u5b57\u6bcd\u548c\u6570\u5b57\u7ec4\u6210\uff09\r\n\/\/\u6240\u6709\u7684\u53ef\u80fd\u7684\u5b57\u7b26\u96c6\u5408\r\n$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n$chars_len = strlen($chars); \/\/\u96c6\u5408\u957f\u5ea6\r\n\/\/\u968f\u673a\u9009\u53d6\r\n$code_len = 4;\/\/\u9a8c\u8bc1\u7801\u957f\u5ea6\r\n$code=''; \/\/\u9a8c\u8bc1\u7801\u503c\u521d\u59cb\u5316\r\nfor($i=0;$i&lt;$code_len;++$i){\r\n    \/\/\u968f\u673a\u53d6\u5f97\u4e00\u4e2a\u5b57\u7b26\u4e0b\u6807\r\n    $rand_index = mt_rand(0,$chars_len-1);\r\n    \/\/\u5229\u7528\u5b57\u7b26\u4e32\u7684\u4e0b\u6807\u64cd\u505a\uff0c\u83b7\u5f97\u9009\u62e9\u7684\u5b57\u7b26\r\n    $code .= $chars[$rand_index];\r\n}\r\n\/\/echo $code;\r\n\/\/\u5b58\u50a8\u4e8esession\u4e2d(\u7528\u4e8e\u6821\u9a8c)\r\nsession_start();\r\n$_SESSION['code'] = $code;\r\n\r\n\/\/\u9a8c\u8bc1\u7801\u56fe\u50cf\uff08\u5df2\u77e5\u7684\u80cc\u666f\u56fe\u7247\uff09\r\n\/\/\u5904\u7406\u80cc\u666f\r\n$bg_file= '.\/captcha\/captcha_bg' . mt_rand(1,5). '.jpg';\r\n\/\/\u4f9d\u636e\u8be5\u56fe\u7247\uff0c\u521b\u5efa\u753b\u5e03\r\n$image = imagecreatefromjpeg($bg_file);\r\n\/\/\u7b80\u5355\u7684\u5c06\u5b57\u7b26\u4e32\u5199\u5728\u753b\u5e03\u4e0a\u7684\u51fd\u6570\uff08imageString();\uff09\r\n\/\/imageString(\u753b\u5e03,\u5b57\u4f53,\u4f4d\u7f6eX, \u4f4d\u7f6ey,\u5b57\u7b26\u4e32\u5185\u5bb9,\u989c\u8272); \r\n\/\/\u5b57\u4f53\uff1aimagestring\u51fd\u6570\uff0c\u4f7f\u7528\u7684\u5185\u7f6e\u5b57\u4f53\u3002\u75311-5\u8868\u793a\u3002\u4f4d\u7f6e\u7531\u5b57\u7b26\u4e32\u5de6\u4e0a\u89d2\u7684\u5750\u6807\u51b3\u5b9a\u3002\u989c\u8272\u4e5f\u662f\u9700\u8981\u9884\u5148\u5206\u914d\u597d\u7684\u3002imagecolorallocate();\r\n\r\n\/\/\u5206\u914d\u5b57\u4f53\u989c\u8272\uff08\u968f\u673a\u5206\u914d\u9ed1\u8272\u6216\u8005\u767d\u8272\uff09\r\nif(mt_rand(0,1)==1){\r\n        $str_color = imagecolorallocate($image,0,0,0); \/\/\u9ed1\u8272\r\n    }else{\r\n        $str_color = imagecolorallocate($image,255,0xff,255);\/\/\u767d\u8272\r\n}\r\n\/\/\u5185\u7f6e5\u53f7\u5b57\u4f53\r\n$font = 5;\r\n\/\/\u4f4d\u7f6e\r\n\/\/\u753b\u5e03\u5927\u5c0f\r\n$image_w = imagesx($image);\r\n$image_h = imagesy($image);\r\n\/\/\u83b7\u5f97\u5b57\u4f53\u7684\u5bbd\u548c\u9ad8\r\n$font_w = imagefontwidth($font);\r\n$font_h = imagefontheight($font);\r\n\/\/\u83b7\u5f97\u5b57\u7b26\u4e32\u7684\u5bbd\u9ad8\r\n$str_w = $font_w * $code_len;\r\n$str_h = $font_h;\r\n\/\/\u8ba1\u7b97\u4f4d\u7f6e\r\n$str_x = ($image_w-$str_w) \/ 2;\r\n$str_y = ($image_h-$str_h) \/ 2;\r\n\r\n\/\/\u5b57\u7b26\u4e32\r\nimagestring($image,$font,$str_x,$str_y,$code,$str_color);\r\n\r\n\/\/\u8f93\u51fa\u548c\u9500\u6bc1\u753b\u5e03\r\nheader(\"content-type:image\/jpeg\");\r\nimagejpeg($image);\r\nimagedestroy($image);<\/pre>\n<p> \u5c01\u88c5\u9a8c\u8bc1\u7801\u5de5\u5177\u7c7b\uff1a<\/p>\n<pre>\r\n&lt;?php\r\n\/\/\u9a8c\u8bc1\u7801\u5de5\u5177\u7c7b\uff08\u5c06\u6240\u6709\u548c\u9a8c\u8bc1\u7801\u64cd\u4f5c\u76f8\u5173\u7684\u5168\u90e8\u5c01\u88c5\u5230\u8be5\u7c7b\u4e2d\uff09\r\n        class Captcha{\r\n            \/*\u751f\u6210\u9a8c\u8bc1\u7801*\/\r\n        public function makeImage($code_len=4){\r\n        \/\/\u4eff\u5236ecshop\u9a8c\u8bc1\u7801\uff08\u56db\u4f4d\u5927\u5199\u5b57\u6bcd\u548c\u6570\u5b57\u3001\u80cc\u666f\uff09\r\n        \/\/\u5904\u7406\u7801\u503c\uff08\u56db\u4f4d\u5927\u5199\u5b57\u6bcd\u548c\u6570\u5b57\u7ec4\u6210\uff09\r\n        \/\/\u6240\u6709\u7684\u53ef\u80fd\u7684\u5b57\u7b26\u96c6\u5408\r\n        $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n        $chars_len = strlen($chars); \/\/\u96c6\u5408\u957f\u5ea6\r\n        \/\/\u968f\u673a\u9009\u53d6\r\n        $code=''; \/\/\u9a8c\u8bc1\u7801\u503c\u521d\u59cb\u5316\r\n        for($i=0;$i&lt;$code_len;++$i){\r\n            \/\/\u968f\u673a\u53d6\u5f97\u4e00\u4e2a\u5b57\u7b26\u4e0b\u6807\r\n            $rand_index = mt_rand(0,$chars_len-1);\r\n            \/\/\u5229\u7528\u5b57\u7b26\u4e32\u7684\u4e0b\u6807\u64cd\u505a\uff0c\u83b7\u5f97\u9009\u62e9\u7684\u5b57\u7b26\r\n            $code .= $chars[$rand_index];\r\n        }\r\n        \/\/echo $code;\r\n        \/\/\u5b58\u50a8\u4e8esession\u4e2d(\u7528\u4e8e\u6821\u9a8c)\r\n        @session_start();\r\n        $_SESSION['code'] = $code;\r\n\r\n        \/\/\u9a8c\u8bc1\u7801\u56fe\u50cf\uff08\u5df2\u77e5\u7684\u80cc\u666f\u56fe\u7247\uff09\r\n        \/\/\u5904\u7406\u80cc\u666f\r\n        $bg_file= &nbsp;TOOL . '.\/captcha\/captcha_bg' . mt_rand(1,5). '.jpg';\r\n        \/\/\u4f9d\u636e\u8be5\u56fe\u7247\uff0c\u521b\u5efa\u753b\u5e03\r\n        $image = imagecreatefromjpeg($bg_file);\r\n        \/\/\u7b80\u5355\u7684\u5c06\u5b57\u7b26\u4e32\u5199\u5728\u753b\u5e03\u4e0a\u7684\u51fd\u6570\uff08imageString();\uff09\r\n        \/\/imageString(\u753b\u5e03,\u5b57\u4f53,\u4f4d\u7f6eX, \u4f4d\u7f6ey,\u5b57\u7b26\u4e32\u5185\u5bb9,\u989c\u8272); \r\n        \/\/\u5b57\u4f53\uff1aimagestring\u51fd\u6570\uff0c\u4f7f\u7528\u7684\u5185\u7f6e\u5b57\u4f53\u3002\u75311-5\u8868\u793a\u3002\u4f4d\u7f6e\u7531\u5b57\u7b26\u4e32\u5de6\u4e0a\u89d2\u7684\u5750\u6807\u51b3\u5b9a\u3002\u989c\u8272\u4e5f\u662f\u9700\u8981\u9884\u5148\u5206\u914d\u597d\u7684\u3002imagecolorallocate();\r\n\r\n        \/\/\u5206\u914d\u5b57\u4f53\u989c\u8272\uff08\u968f\u673a\u5206\u914d\u9ed1\u8272\u6216\u8005\u767d\u8272\uff09\r\n        if(mt_rand(0,1)==1){\r\n                $str_color = imagecolorallocate($image,0,0,0); \/\/\u9ed1\u8272\r\n            }else{\r\n                $str_color = imagecolorallocate($image,255,0xff,255);\/\/\u767d\u8272\r\n        }\r\n        \/\/\u5185\u7f6e5\u53f7\u5b57\u4f53\r\n        $font = 5;\r\n        \/\/\u4f4d\u7f6e\r\n        \/\/\u753b\u5e03\u5927\u5c0f\r\n        $image_w = imagesx($image);\r\n        $image_h = imagesy($image);\r\n        \/\/\u83b7\u5f97\u5b57\u4f53\u7684\u5bbd\u548c\u9ad8\r\n        $font_w = imagefontwidth($font);\r\n        $font_h = imagefontheight($font);\r\n        \/\/\u83b7\u5f97\u5b57\u7b26\u4e32\u7684\u5bbd\u9ad8\r\n        $str_w = $font_w * $code_len;\r\n        $str_h = $font_h;\r\n        \/\/\u8ba1\u7b97\u4f4d\u7f6e\r\n        $str_x = ($image_w-$str_w) \/ 2;\r\n        $str_y = ($image_h-$str_h) \/ 2;\r\n\r\n        \/\/\u5b57\u7b26\u4e32\r\n        imagestring($image,$font,$str_x,$str_y,$code,$str_color);\r\n        \/\/\u8f93\u51fa\u548c\u9500\u6bc1\u753b\u5e03\r\n        header(\"content-type:image\/jpeg\");\r\n        imagejpeg($image);\r\n        imagedestroy($image);\r\n    }\r\n}<\/pre>\n<p> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt;?php \/\/\u4eff\u5236ecs&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4925],"tags":[],"class_list":["post-199589","post","type-post","status-publish","format-standard","hentry","category-4925"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/199589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=199589"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/199589\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=199589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=199589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=199589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}