Home  >  Article  >  php教程  >  SESSION在不同浏览器的使用问题,请教

SESSION在不同浏览器的使用问题,请教

PHP中文网
PHP中文网Original
2016-05-22 18:24:591148browse

SESSION在不同浏览器的使用问题,请教

<?php
session_start();
// 配置验证码
$code_ini = array(
    &#39;code_count&#39; => 4, // 验证码长度
    &#39;code_size&#39; => 20, // 验证码字体大小
    &#39;code_width&#39; => 100, // 验证码框宽度
    &#39;code_height&#39; => 36, // 验证码框高度
    &#39;code_num&#39; => true, // 开启数字
    &#39;code_upper&#39; => true, // 开启大写字母
    &#39;code_lower&#39; => true, // 开启小写字母
    &#39;code_remove&#39; => &#39;1li0oO2zZ&#39;
) // 排除易混淆字符
;
// 将配置项转为对应变量
foreach ($code_ini as $key => $value) {
    $$key = $value;
}
// 创建验证码画布
$code_img = imagecreatetruecolor($code_width, $code_height);
$black = imagecolorallocate($code_img, 0, 0, 0);
// 填充随机背景颜色
$bg = imagecolorallocate($code_img, rand(200, 255), rand(200, 255), rand(200, 255));
imagefill($code_img, 0, 0, $bg);

// 随机画100个干扰点
for ($i = 0; $i < 100; $i ++) {
    $color = imagecolorallocate($code_img, rand(0, 200), rand(0, 200), rand(0, 200));
    imagesetpixel($code_img, rand(2, $code_width - 2), rand(2, $code_height - 2), $color);
}

// 随机画10个干扰线
for ($q = 0; $q < 10; $q ++) {
    $color = imagecolorallocate($code_img, rand(0, 200), rand(0, 200), rand(0, 200));
    imageline($code_img, rand(2, $code_width - 2), rand(2, $code_height - 2), rand(2, $code_width - 2), rand(2, $code_height - 2), $color);
}

// 获取验证码
$code = get_code($code_count, $code_num, $code_upper, $code_lower, $code_remove);
$_SESSION[&#39;code&#39;] = $code;
for ($i = 0; $i < $code_count; $i ++) {
    $color = imagecolorallocate($code_img, rand(0, 200), rand(0, 200), rand(0, 200));
    imagettftext($code_img, $code_size, rand(- 30, 30), 5 + 20 * $i, 24, $color, &#39;../Fun/shruti.ttf&#39;, $code[$i]);
}
imagerectangle($code_img, 0, 0, $code_width - 1, $code_height - 1, $black);
// 输出验证码
header(&#39;content-type:image/gif&#39;);
imagegif($code_img);

// 销毁资源
imagedestroy($code_img);

// 获得验证码
function get_code($code_count, $code_num, $code_upper, $code_lower, $code_remove)
{
    $num = array();
    $upper = array();
    $lower = array();
    if ($code_num) {
        $num = range(0, 9);
    }
    if ($code_upper) {
        $upper = range(&#39;A&#39;, &#39;Z&#39;);
    }
    if ($code_lower) {
        $lower = range(&#39;a&#39;, &#39;z&#39;);
    }
    // 合并符合条件数组
    $arr = array_merge($num, $lower, $upper);
    // 排除易混淆字符
    $remove = str_split($code_remove);
    $arr1 = array_diff($arr, $remove);
    $mess = &#39;&#39;;
    
    for ($i = 0; $i < $code_count; $i ++) {
        $mess .= $arr1[array_rand($arr1)];
        $_SESSION[&#39;code&#39;] = $mess;
    }
    return $mess;
}

                   

 以上就是SESSION在不同浏览器的使用问题,请教的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn