看到discuz 里面有个注册问题验证,就是说有人注册的时候,为了防止别人恶意注册,加入一条问题,如1+1=  如果注册者答对了就能注册,如果不对,就不能注册,这该怎么写,谁能给点思路,如果有写好的代码  发下也行  

解决方案 »

  1.   

    session_start();
    $a = round(1,10);
    $b = round(1,10);
    $c = $a+$b;
    $_SESSION['str']  = "$a+$b=";
    $_SESSION['c']    = $c;
    任何页面都可以调用
      

  2.   


    <?php 
    session_start(); $sessionvar = 'vdcode'; //Session变量名称 
    $width = 150; //图像宽度 
    $height = 20; //图像高度 $operator = '+-*'; //运算符 $code = array(); 
    $code[] = mt_rand(1,9); 
    $code[] = $operator{mt_rand(0,2)}; 
    $code[] = mt_rand(1,9); 
    $code[] = $operator{mt_rand(0,2)}; 
    $code[] = mt_rand(1,9); 
    $codestr = implode('',$code); 
    eval("\$result = ".implode('',$code).";"); 
    $code[] = '='; $_SESSION[$sessionvar] = $result; $img = ImageCreate($width,$height); 
    ImageColorAllocate($img, mt_rand(230,250), mt_rand(230,250), mt_rand(230,250)); 
    $color = ImageColorAllocate($img, 0, 0, 0); $offset = 0; 
    foreach ($code as $char) { 
    $offset += 20; 
    $txtcolor = ImageColorAllocate($img, mt_rand(0,255), mt_rand(0,150), mt_rand(0,255)); 
    ImageChar($img, mt_rand(3,5), $offset, mt_rand(1,5), $char, $txtcolor); 
    } for ($i=0; $i<100; $i++) { 
    $pxcolor = ImageColorAllocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); 
    ImageSetPixel($img, mt_rand(0,$width), mt_rand(0,$height), $pxcolor); 
    } header('Content-type: image/png'); 
    ImagePng($img); 
    ?> 
    要是不满意 可自己搜索 php 计算 验证码  php 数学验证码