認証コードをセッションに保存する際の問題
コードページ上に認証コードのオリジナル文字を生成してセッションに保存したのに、別のページから呼び出されたときに空になるのはなぜでしょうか。 奇妙な
コード ソース プログラム
//checkNum.php
session_start();
function random($len)
{
$srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
mt_srand();//ランダム シードを構成します
$strs=""
for($i=0;$i <$len;$i++) {
$strs.=$srcstr[mt_rand(0,35)];
}
/*
2 名前: strtoupper
3 機能: すべての文字列を大文字の r に変換します
4戻り値: string
5 構文: strtoupper(string str);
6 説明: この関数は、すべての文字列 str を大文字の文字列に変換します。 R <范> 7 例:
8 Strtoupper ("AB2CD4EFG"); 結果は AB2CD4EFG
9 Strtoupper ("AB1CDE4FG") 結果は AB1CDE4FG
10
11 */
Return Strtoupper ($strs);
$str=random(4); //ランダムに生成された文字列
$width = 50; //検証コード画像の幅
$height = 25; //認証コード画像の高さ
/*
Content-Type: xxxx/yyyy
Location: xxxx:yyyy/zzzz
Status: nnn xxxxxx
*/
@ header( "Content-Type:image/png");
$_SESSION["code"] = $str;
//echo $str; ;
//背景色
$back=imagecolorallocate($im,0xFF,0xFF,0xFF)
//ぼやけたポイントカラー
$pix=imagecolorallocate($im,187,230,247); >/ /フォントカラー
$font=imagecolorallocate($im,41,163,238);
//ぼかし効果のポイントを描画
mt_srand()
for($i=0;$i <) ;1000; $i++)
{
imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix);
}
imagestring($im, 5, 7 , 5,$str, $font);
imagerectangle($im,0,0,$width-1,$height-1,$font); >imagedestroy( $im);
$_SESSION["code"] = $str;
session_destroy();>
から $_SESSION を呼び出します別のページ [「コード」] は実際には空ですか? なぜ
-----解決策--------------------------
session_destroy ();
セッションを削除したのに、別のページにセッションのコンテンツが存在するのはなぜですか?
------解決策-----
session_destroy();まだ session() からログアウトするにはどうすればよいですか? 》