正在验证此图像验证码。jqueryphp&;javascript
我在captcha.php中创建了一个图像。在我的联系人php页面上,它调用图像&它有一个重新加载,一切正常。我只是找不到一个方法来验证它 以下是创建验证码图像的代码:正在验证此图像验证码。jqueryphp&;javascript,php,javascript,jquery,image,captcha,Php,Javascript,Jquery,Image,Captcha,我在captcha.php中创建了一个图像。在我的联系人php页面上,它调用图像&它有一个重新加载,一切正常。我只是找不到一个方法来验证它 以下是创建验证码图像的代码: <?php session_start(); $word_1 = ''; $word_2 = ''; for ($i = 0; $i < 4; $i++) { $word_1 .= chr(rand(97, 122)); } for ($i = 0; $i < 4; $i++) { $w
<?php
session_start();
$word_1 = '';
$word_2 = '';
for ($i = 0; $i < 4; $i++)
{
$word_1 .= chr(rand(97, 122));
}
for ($i = 0; $i < 4; $i++)
{
$word_2 .= chr(rand(97, 122));
}
$_SESSION['random_number'] = $word_1.' '.$word_2;
$dir = '/addons/fonts/';
$image = imagecreatetruecolor(165, 50);
$font = "recaptchaFont.ttf"; // font style
$color = imagecolorallocate($image, 0, 0, 0);// color
$white = imagecolorallocate($image, 255, 255, 255); // background color white
imagefilledrectangle($image, 0,0, 709, 99, $white);
imagettftext ($image, 22, 0, 5, 30, $color, $dir.$font, $_SESSION['random_number']);
header("Content-type: image/png");
imagepng($image);
?>
接下来是我对整个表单本身的验证。它适用于除验证码以外的所有内容:
$(document).ready(function(){
//global vars
var form = $("#contactForm");
var name = $("#name");
var nameInfo = $("#nameInfo");
var telephone = $("#telephone");
var telephoneInfo = $("#telephoneInfo");
var email = $("#email");
var emailInfo = $("#emailInfo");
var message = $("#message");
var messageInfo = $("#messageInfo");
var captcha = $("#captcha-code");
var captchaInfo = $("#captchaInfo");
//On blur
name.blur(validateName);
telephone.blur(validatePhone);
email.blur(validateEmail);
message.blur(validateMessage);
captcha.blur(validateCaptcha);
//On key press
name.keyup(validateName);
telephone.keyup(validatePhone);
message.keyup(validateMessage);
captcha.keyup(validateCaptcha);
//On Submitting
form.submit(function(){
if(validateName() & validateEmail() & validatePhone() & validateMessage() & validateCaptcha())
return true
else
return false;
});
function validateName(){
//if it's NOT valid
if(name.val().length < 4){
name.addClass("error");
nameInfo.text("* Name Required");
nameInfo.addClass("error");
return false;
}
//if it's valid
else{
name.removeClass("error");
nameInfo.text("*");
nameInfo.removeClass("error");
return true;
}
}
function validateCaptcha(){
$.post("captchaValidate.php?"+$("#contactForm").serialize(), {
}, function(response){
if(response==1)
{
captcha.removeClass("error");
captchaInfo.text("*");
captchaInfo.removeClass("error");
return true;
}
else
{
captchaInfo.text("* Please enter the words you see in the box above. If you are having trouble seeing it, click the refresh button.");
captchaInfo.addClass("error");
captchaInfo.css({'float': 'left', 'margin-left': '5px'});
return false;
}
});
}
});
$(文档).ready(函数(){
//全局变量
变量形式=$(“#联系形式”);
变量名称=$(“#名称”);
变量名称信息=$(“#名称信息”);
var电话=$(“#电话”);
var电话信息=$(“#电话信息”);
var email=$(“#email”);
var emailInfo=$(“#emailInfo”);
var message=$(“#message”);
var messageInfo=$(“#messageInfo”);
var captcha=$(“#captcha代码”);
var captchaInfo=$(“#captchaInfo”);
//关于模糊
name.blur(validateName);
电话。模糊(电话);
email.blur(validateEmail);
message.blur(validateMessage);
模糊验证码(validateCaptcha);
//按键
name.keyup(validateName);
电话键控(电话);
message.keyup(validateMessage);
验证码加密(validateCaptcha);
//提交时
表单提交(函数(){
如果(validateName()&validateEmail()&validatePhone()&validateMessage()&validateCaptcha())
返回真值
其他的
返回false;
});
函数validateName(){
//如果它是无效的
if(name.val().length<4){
name.addClass(“错误”);
nameInfo.text(“*需要名称”);
nameInfo.addClass(“错误”);
返回false;
}
//如果有效的话
否则{
name.removeClass(“错误”);
nameInfo.text(“*”);
nameInfo.removeClass(“错误”);
返回true;
}
}
函数validateCaptcha(){
$.post(“captchaValidate.php?”+$(“#contactForm”).serialize(){
},功能(回应){
如果(响应==1)
{
captcha.removeClass(“错误”);
captchaInfo.text(“*”);
captchaInfo.removeClass(“错误”);
返回true;
}
其他的
{
text(“*请输入您在上面框中看到的单词。如果您在查看时遇到问题,请单击刷新按钮。”);
captchaInfo.addClass(“错误”);
css({'float':'left','marginleft':'5px'});
返回false;
}
});
}
});
我再次删除了上面的一些代码,使其变得更短,但我保留了validateName函数,这样您就可以看到我是如何处理其余代码的
在validateCaptcha代码中,它指向此页面/代码:
<?php
session_start();
if(@strtolower($_REQUEST['captcha-code']) == strtolower($_SESSION['random_number']))
{
echo 1;// YAY!
}
else
{
echo 0; // invalid code
}
?>
如果能在这方面提供任何帮助,我将不胜感激。我已经被困这么久了!我已经尝试了一些方法,但似乎没有任何效果。阅读以下内容:--
PHP jQuery验证验证码示例
PHP验证码
jquery验证/演示/验证码
阅读以下内容:--
PHP jQuery验证验证码示例
PHP验证码
jquery验证/演示/验证码
如果您不介意使用简单的数学验证码,那么这个验证码很容易集成到您自己的代码中。它同时使用PHP和jQuery,因此无论是否启用Javascript,它都可以工作。我写了一篇关于它的教程,并提供了一个项目下载,其中包含了所有开箱即用的项目文件 使用jQuery和PHP制作简单的数学验证码
我希望这能有所帮助。如果您不介意使用一个简单的数学验证码,那么这个验证码很容易集成到您自己的代码中。它同时使用PHP和jQuery,因此无论是否启用Javascript,它都可以工作。我写了一篇关于它的教程,并提供了一个项目下载,其中包含了所有开箱即用的项目文件 使用jQuery和PHP制作简单的数学验证码
我希望这会有所帮助。如果您对此有任何帮助,请使用jquery验证示例在php中创建简单的capcha 创建capcha代码需要三个文件
capcha.php
form.php
check-capcha.php
下载字体文件夹中添加的字体arial.ttf
form.php
$(文档).ready(函数(e){
$(“#测试”)。验证({
规则:{
capcha:{必需:true,
远程:{
url:“检查capcha.php”,
类型:“post”,
数据:{hiddencapcha:function(){return$('#hidden_capcha').val()}
}
}
},
信息:{
卡普查:{
远程:“无效capcha”
}
}
});
$.ajax({
url:“capcha.php”,
成功:功能(结果){
var newd=JSON.parse(结果);
$('input[name=hidden_capcha]').val(newd.code);
$('capchas').attr('src',“test.png?”+new Date().getTime());
},错误:函数(){alert(result)}
});
$(“#生成_capcha”)。单击(函数(){
$.ajax({
url:“capcha.php”,
成功:功能(结果){
var newd=JSON.parse(结果);
$('input[name=hidden_capcha]').val(newd.code);
$('capchas').attr('src',“test.png?”+new Date().getTime());
},错误:函数(){alert(result)}
});
});
});
check-capch.php
如果您对此有任何帮助,请使用jquery验证示例在php中创建简单的capcha 创建capcha代码需要三个文件
capcha.php
form.php
check-capcha.php
下载字体文件夹中添加的字体arial.ttf
form.php
$(文档).ready(函数(e){
$(“#测试”)。验证({
规则:{
capcha:{必需:true,
远程:{
url:“检查capcha.php”,
类型:“post”,
数据:{hiddencapcha:function(){return$('#hidden_capcha').val()}
}
}
},
信息:{
卡普查:{
远程:“无效capcha”
}
}
});
$.ajax({
url:“capcha.php”,
成功:功能(结果){
var newd=JSON.parse(结果);
$('input[name=hidden_capcha]').val(newd.code);
$('capchas').attr('src',“test.png?”+new Date().getTime());
},错误:函数(){alert(result)}
});
$(“#生成_capcha”)。单击(函数(){
$.ajax({
url:“capcha.php”,
capcha.php
form.php
check-capcha.php
<?php
session_start();
$string = '';
for ($i = 0; $i < 5; $i++) {
// this numbers refer to numbers of the ascii table (lower case)
$string .= chr(rand(97, 122));
}
$_SESSION['random_code'] = $string;
$data['code'] = $string;
$dir = 'fonts/';
if(!is_dir($dir)){
mkdir($dir);
}
$image = imagecreatetruecolor(170, 60);
$black = imagecolorallocate($image, 0, 0, 0);
$color = imagecolorallocate($image, 200, 100, 90); // red
$white = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image,0,0,399,99,$white);
imagettftext ($image, 30, 0, 10, 40, $color, $dir."arial.ttf", $_SESSION['random_code']);
$save= "test.png";
imagepng($image,$save);
ob_start();
imagedestroy($image);
echo json_encode($data);
?>
form.php
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/jquery.validate.js"></script>
<script type="application/javascript">
$(document).ready(function(e) {
$('#test').validate({
rules:{
capcha:{required: true,
remote: {
url: "check-capcha.php",
type: "post",
data:{hiddencapcha:function(){return $('#hidden_capcha').val()}}
}
}
},
messages:{
capcha:{
remote:"invalid capcha"
}
}
});
$.ajax({
url: "capcha.php",
success: function( result ) {
var newd = JSON.parse(result);
$('input[name=hidden_capcha]').val(newd.code);
$('#capchas').attr('src',"test.png?"+ new Date().getTime());
},error: function(){ alert(result)}
});
$('#generate_capcha').click(function(){
$.ajax({
url: "capcha.php",
success: function( result ) {
var newd = JSON.parse(result);
$('input[name=hidden_capcha]').val(newd.code);
$('#capchas').attr('src',"test.png?"+ new Date().getTime());
},error: function(){ alert(result)}
});
});
});
</script>
<form name="test" id="test">
<span id="capchas_images"><img id="capchas" src="test.png" /></span> <a href="javascript:void(0)" id="generate_capcha">Refresh</a>
<input type="text" name="capcha" />
<input type="hidden" name="hidden_capcha" id="hidden_capcha" />
</form>
check-capch.php
<?php
if($_POST['capcha']==$_POST['hiddencapcha'])
{
echo "true";
}else{
echo "false";
}
?>