課程
/后端開發
/PHP
/手把手教你實現電商網站后臺開發
為什么我的驗證碼不顯示 報錯說是session的問題 ?代碼和老師的一模一樣 ?求解
2017-05-06
源自:手把手教你實現電商網站后臺開發 2-3
正在回答
題主給的信息比較少哦,如果是session問題的話,或許可能是session_start()沒有開啟,或許是沒有把隨機生成的字符存儲到$_session['verify'],其實這個老師的驗證碼貌似是有一點問題的,所以我自己重新寫了一個,意思是差不做的,你可以試試看,使用我的這一段代碼,就是把老師的verifyImage()方法里面的內容換一換
//通過GD庫做驗證碼 function?verifyImage() { ???session_start(); //驗證碼 ???/* ????*??-?畫布(淺色、隨機) ???????-?干擾(隨機出現的線,隨機出現的點) ???????-?輸出文字 ???????-?展示 ???????-?釋放資源 ???*/ //畫布(淺色、隨機) ???$img?=?imagecreatetruecolor(80,?40); //創建畫布的背景色 ???$bgcolor?=?imagecolorallocate($img, ???????rand(200,?255), ???????rand(200,?255), ???????rand(200,?255)); //填充畫布 ???imagefill($img,?0,?0,?$bgcolor); //-?干擾(隨機出現的線,隨機出現的點) ???for?($i?=?0;?$i?<?50;?$i++)?{ ???????$color?=?imagecolorallocate($img, ???????????rand(100,?200), ???????????rand(100,?200), ???????????rand(100,?200)); ???????imagesetpixel($img,?rand(1,?79), ???????????rand(1,?29),?$color); ???} //隨機10條線 ???for?($i?=?0;?$i?<?10;?$i++)?{ ???????$color?=?imagecolorallocate($img, ???????????rand(100,?200), ???????????rand(100,?200), ???????????rand(100,?200)); ???????imageline($img,?rand(1,?79),?rand(1,?29), ???????????rand(1,?79),?rand(1,?29),?$color); ???} //-?輸出文字 ???$codes?=?"0123456789abcdefghijklmnopqrstuvwxyz"; //規定驗證碼的長度 ???$length?=?4; //定義一個將存儲在session中的字符串變量 ???$words?=?""; //從?庫字符串?隨機截取?每次截取一個字符 ???for?($i?=?0;?$i?<?$length;?$i++)?{ ???????$color?=?imagecolorallocate($img, ???????????rand(0,?100), ???????????rand(0,?100), ???????????rand(0,?100)); ???????$str?=?substr($codes,?rand(0,?strlen($codes)?-?1),?1); ???????$words?.=?$str; ???????$x?=?(80?/?$length)?*?$i?+?5; ???????$y?=?rand(10,?20); ???????imagestring($img,?5,?$x,?$y,?$str,?$color); ???} //將驗證碼上的文字保存到session中 ???$_SESSION['verify']?=?$words; //-?展示 ???header("Content-Type:image/png"); ???imagepng($img); //-?釋放資源 ???imagedestroy($img); }
慕粉0038073602 提問者
舉報
手把手教你用PHP搭建電子商務平臺,由淺入深教你搭建電商系統
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-05-06
題主給的信息比較少哦,如果是session問題的話,或許可能是session_start()沒有開啟,或許是沒有把隨機生成的字符存儲到$_session['verify'],其實這個老師的驗證碼貌似是有一點問題的,所以我自己重新寫了一個,意思是差不做的,你可以試試看,使用我的這一段代碼,就是把老師的verifyImage()方法里面的內容換一換