2014-04-02 184 views
0

我在php中有一个包含验证码的表单。我需要使用jQuery验证验证码。如果验证码错误,则表单显示警报,说明您输入的验证码是错误的。请告诉我如何使用jQuery验证它。这里是代码。当我添加下面的代码时,它显示错误未定义_SESSION。我该如何解决这个问题。使用jQuery和php验证验证码

请帮助我,我怎么能使用jQuery

$(function() { 
 
    $("#XISubmit").click(function(){ 
 
    var photo= document.forms["XIForm"]["photo"].value; 
 
    var cap = '<?php echo $_SESSION["pass"]; ?>' // try this 
 
    if (photo==null || photo=="" || photo !=cap) { 
 
     alert("Please Enter captcha"); return false; 
 
    } else { 
 
     document.getElementById("XIForm").submit(); 
 
    } 
 
    }); 
 
});
<div class="formLeft"> 
 
    <h4>Admission</h4> 
 
    <form name="XIForm" id="XIForm" method="POST" action="pdf/pdf.php"> 
 
    <label>Security Validation</label> 
 
    <img src="captcha_image.php" alt=""/> 
 
    <input type="text" name="photo" maxlength="60" size="30"/> 
 
    <br><br> 
 
</form>

captcha_image.php 

<? 
// *** CAPTCHA image generation *** 
// *** http://frikk.tk *** 

session_start(); 

// *** Tell the browser what kind of file is come'n at 'em! *** 
header("Content-Type: image/jpeg"); 

// *** Send a generated image to the browser *** 
die(create_image()); 

// *** Function List *** 
function create_image() 
{ 
    // *** Generate a passcode using md5 
    // (it will be all lowercase hex letters and numbers *** 
    $md5 = md5(rand(0,9999)); 
    $pass = substr($md5, 10, 5); 

    // *** Set the session cookie so we know what the passcode is *** 
    $_SESSION["pass"] = $pass; 

    // *** Create the image resource *** 
    $image = ImageCreatetruecolor(100, 20); 

    // *** We are making two colors, white and black *** 
    $clr_white = ImageColorAllocate($image, 255, 255, 255); 
    $clr_black = ImageColorAllocate($image, 0, 0, 0); 

    // *** Make the background black *** 
    imagefill($image, 0, 0, $clr_black); 

    // *** Set the image height and width *** 
    imagefontheight(15); 
    imagefontwidth(15); 

    // *** Add the passcode in white to the image *** 
    imagestring($image, 5, 30, 3, $pass, $clr_white); 

    // *** Throw in some lines to trick those cheeky bots! *** 
    imageline($image, 5, 1, 50, 20, $clr_white); 
    imageline($image, 60, 1, 96, 20, $clr_white); 

    // *** Return the newly created image in jpeg format *** 
    return imagejpeg($image); 

    // *** Just in case... *** 
    imagedestroy($image); 
} 
?> 

回答

0

请开始你的会话或不 使用

session_start(); 

或检查是否验证验证码$_SESSION["pass"]是否存储任何值