把这个验证码存成session,然后在判断页面判断就可以了

解决方案 »

  1.   

    在生成验证码的页面包含一个hidden隐藏变量,然后一起传到下页
    把用户填写的和生成的比较一下就可以了
      

  2.   

    开玩笑!"在生成验证码的页面包含一个hidden隐藏变量"这样做不是形同虚设吗?
      

  3.   

    就是,你一定要记住,特别重要的东西,要保存成session,别用什么hidden,或者cookies,我到一些要密码的网站..他们很多密码都保存在javascript,hidden,cookies,我都能弄来..不用注册..哈哈...
      

  4.   

    <?
    /*  login.php */
    session_start();
    ?>
    <FORM METHOD=POST ACTION="ii.php">
    <input type=text name=number maxlength=4><img src="yan.php">
    <INPUT TYPE="submit" name="sub">
    </FORM><?
    if(isset($_POST["sub"])){
    if($_POST["number"]!=$_SESSION["auth"]||empty($_POST["number"])){
        echo "验证码错误" ;
        unset($_SESSION['auth']);
    }else{
        echo"验证码正确";
        unset($_SESSION['auth']);
    };
    };
    ?>
    ====================
    yan.php
    <?php 
    session_start();
    srand((double)microtime()*1000000); while(($authnum=rand()%10000)<1000);//生成四位随机整数验证码 
    $_SESSION['auth']=$authnum;//生成验证码图片 
    Header("Content-type: image/PNG");
    $im = imagecreate(50,20); 
    $black = ImageColorAllocate($im, 200,10,0); 
    $white = ImageColorAllocate($im, 255,255,255); 
    $gray = ImageColorAllocate($im, 230,230,230); 
    imagefill($im,68,30,$gray); //将四位整数验证码绘入图片 
    //位置交错
    for ($i = 0; $i < strlen($authnum); $i++) {
    if ($i%2 == 0)  $top = 1;
    else  $top = 5;
    imagestring($im, 5, 10*$i+6, $top, substr($authnum,$i,1), $black); 
    }for($i=0;$i<150;$i++)   //加入干扰象素 

    imagesetpixel($im, rand()%70 , rand()%30 , $black); 
    } ImagePNG($im); 
    ImageDestroy($im);?>
      

  5.   

    xbm.asp<!--#include file="numcode.asp"-->
    <%
    Response.Buffer = True
    With Response
    .Expires = -1
    .AddHeader "Pragma","no-cache"
    .AddHeader "cache-ctrol","no-cache"
    End WithDim num
    Randomize
    num = Int(7999 * Rnd + 2000)
    Session("validateCode") = numDim Image
    Dim Width, Height
    Dim digtal
    Dim Length
    Dim sort
    Dim hc
    Length = 4
    hc = chr(13) & chr(10)Redim sort(Length)digital = ""
    For I = 1 To Length - Len(num)
    digital = digital & "0"
    Next
    For I = 1 To Len(num)
    digital = digital & Mid(num, I, 1)
    Next
    For I = 1 To Len(digital)
    sort(I) = Mid(digital, I, 1)
    Next
    Width = 8 * Len(digital)
    Height = 10Response.ContentType = "image/x-xbitmap"Image = "#define counter_width " & Width & hc
    Image = Image & "#define counter_height " & Height & hc
    Image = Image & "static unsigned char counter_bits[] = {" & hcFor I = 1 To Height
    For J = 1 To Length
    Image = Image & a(sort(J),I) & ","
    Next
    NextImage = Left(Image, Len(Image) - 1)
    Image = Image & "};" & hcResponse.Write Image
    %>numcode.asp
    <%
    Dim a(10,10)a(0,1) = "0x3c" '数字0
    a(0,2) = "0x66"
    a(0,3) = "0xc3"
    a(0,4) = "0xc3"
    a(0,5) = "0xc3"
    a(0,6) = "0xc3"
    a(0,7) = "0xc3"
    a(0,8) = "0xc3"
    a(0,9) = "0x66"
    a(0,10)= "0x3c"a(1,1) = "0x18" '数字1
    a(1,2) = "0x1c"
    a(1,3) = "0x18"
    a(1,4) = "0x18"
    a(1,5) = "0x18"
    a(1,6) = "0x18"
    a(1,7) = "0x18"
    a(1,8) = "0x18"
    a(1,9) = "0x18"
    a(0,10)= "0x7e"a(2,1) = "0x3c" '数字2
    a(2,2) = "0x66"
    a(2,3) = "0x60"
    a(2,4) = "0x60"
    a(2,5) = "0x30"
    a(2,6) = "0x18"
    a(2,7) = "0x0c"
    a(2,8) = "0x06"
    a(2,9) = "0x06"
    a(2,10)= "0x7e"a(3,1) = "0x3c" '数字3
    a(3,2) = "0x66"
    a(3,3) = "0xc0"
    a(3,4) = "0x60"
    a(3,5) = "0x1c"
    a(3,6) = "0x60"
    a(3,7) = "0xc0"
    a(3,8) = "0xc0"
    a(3,9) = "0x66"
    a(3,10)= "0x38"a(4,1) = "0x38" '数字4
    a(4,2) = "0x3c"
    a(4,3) = "0x36"
    a(4,4) = "0x33"
    a(4,5) = "0x33"
    a(4,6) = "0x33"
    a(4,7) = "0xff"
    a(4,8) = "0x30"
    a(4,9) = "0x30"
    a(4,10)= "0xfe"a(5,1) = "0xfe" '数字5
    a(5,2) = "0xfe"
    a(5,3) = "0x06"
    a(5,4) = "0x06"
    a(5,5) = "0x3e"
    a(5,6) = "0x60"
    a(5,7) = "0xc0"
    a(5,8) = "0xc3"
    a(5,9) = "0x66"
    a(5,10)= "0x3c"a(6,1) = "0x60" '数字6
    a(6,2) = "0x30"
    a(6,3) = "0x18"
    a(6,4) = "0x0c"
    a(6,5) = "0x3e"
    a(6,6) = "0x63"
    a(6,7) = "0xc3"
    a(6,8) = "0xc3"
    a(6,9) = "0x66"
    a(6,10) ="0x3c"a(7,1) = "0xff" '数字7
    a(7,2) = "0xc0"
    a(7,3) = "0x60"
    a(7,4) = "0x30"
    a(7,5) = "0x18"
    a(7,6) = "0x18"
    a(7,7) = "0x18"
    a(7,8) = "0x18"
    a(7,9) = "0x18"
    a(7,10)= "0x18"a(8,1) = "0x3c" '数字8
    a(8,2) = "0x66"
    a(8,3) = "0xc3"
    a(8,4) = "0x66"
    a(8,5) = "0x3c"
    a(8,6) = "0x66"
    a(8,7) = "0xc3"
    a(8,8) = "0xc3"
    a(8,9) = "0x66"
    a(8,10)= "0x3c"a(9,1) = "0x3c" '数字9
    a(9,2) = "0x66"
    a(9,3) = "0xc3"
    a(9,4) = "0xc3"
    a(9,5) = "0x66"
    a(9,6) = "0x3c"
    a(9,7) = "0x18"
    a(9,8) = "0x0c"
    a(9,9) = "0x06"
    a(9,10)= "0x03"
    %>
      

  6.   

    我想用session 是再适合不过了,
    session_is_register("$dd");
      

  7.   

    TO:zhaobohao(中文字符)
    不用注册就能把密码弄过来????怎么弄啊???!!!!
      

  8.   

    <?php
    while( $randomed < 4096 || $randomed > 65535 )
    {
    srand ( ( double ) microtime ( ) * 1000000 );
    $randval = rand ( );
    $randomed = 一个INT型 ^ $randval;
    }
    print ( "附加码: <img src=\"png.php?random=".$randomed."\" align=\"bottom\">" );
    print ( "<input name=\"adcode\" type=\"hidden\" value=".$randval.">" );
    ?>
    //--------png.php---------
    <?
    $random =       dechex ( $_GET['random'] );
    for ( $i = 0; $i < strlen ( $random ); $i ++ )
    {
            srand ( ( double ) microtime ( ) * 1000000 );
            $randval2       =       rand();
            $randval2       %=      4;
            imagestring ( $Image, 5, 10 + $i * 20, $randval2, $random[ $i ], $black );
    }
    ImagePNG ( $Image );
    ImageDestroy( $Image );
    ?>
    //--check程序
    if ( ( hexdec ( $g_user[aid] ) ^ $g_user[adcode] ) != 上面那个INT型 )
    {
             //附加码错误
    }