本文目录一览:
php AJAX验证表单的一点问题
建议你在JavaScript里面使用一个“全局”变量,比如isUsernameAvailable,并置它的初始值为false,而且在提交表单时检查它的值,然后才能提交的。并且只有Ajax检查用户名不存在才能赋值为true。
PS:http_Ajax.onreadystatechange=function(){}应该放到
http_Ajax.open("GET",url,true);前面的。
请问个php+ajax验证码验证的问题
这是AJAX缓存问题,LZ 需要保证传过去的页面每次都不一样:办法有:
1、在服务端加 header("Cache-Control: no-cache, must-revalidate");(如php中)
2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0");
3、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache");
4、在 Ajax 的 URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了
5、第五种方法和第四种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime();
6、用POST替代GET:不推荐 [POST的数据是不缓存的]
1、加个随机数
xmlHttp.open("GET", "ajax.asp?now=" + new Date().getTime(), true);
php与ajax密码验证
第十四行要注释,
其它无语法错误
//username=document.regform.username.value;
逻辑上没看懂
check_psw1() 函数你没用过
regcheck.php 接收了两个变量
你只传入一个
var a=ajaxpub("regcheck.php?"+url+"="+psw2);
好像你是在等回答者帮你做完对吧
就是看密码是否一样不用php,在客户端和服务器端传变量会很慢
可以这样改
check_psw2()
function check_psw2(url,psw2){
if(document.regform.psw1.value==document.regform.psw2.value)
{
document.getElementById("psw02").innerHTML ="一样一样一样的";
}
else
{
document.getElementById("psw02").innerHTML ="好像不一样";
}
}
要想看密码对不对
还可以再改check_psw2
function check_psw2(url,psw2){
if(document.regform.psw1.value==document.regform.psw2.value)
{
document.getElementById("psw02").innerHTML ="俩密码一样";
var a=ajaxpub("regcheck.php?"+url+"="+psw2); 得到密码对不对在a中
if(a=="ok")
document.getElementById("psw01").innerHTML="密码完全正确,加10分";
else
document.getElementById("psw01").innerHTML="密码错了,扣10分";
}
else
{
document.getElementById("psw02").innerHTML ="不一样";
}
}
当然这样就要改.php文件了
?php
//echo $psw1=$_GET['psw1'];
//echo $psw2=$_GET['psw2'];
if ($_GET['psw2']=="1234" )
{
echo "ok";
}
else
{
echo"no";
}
?
还有,你这个js得到的密码不能处理中文乱码问题,
也就是说密码不能是中文的,也不能是除了英语外的语言文字,
实际在我的ie上http_request.responseText要改成http_request.responsebody不可乱用,会出人命的
php怎么判断是否是 ajax 提交
思路:在你进行ajax请求的时候,设置一个文件头信息的变量,在php端判断这个信息是否存在以及是否等于自己设置的值,就可以知道是否是ajax请求了。
做法:js端发送头信息
对象.setRequestHeader("变量名","变量值");
如 xmlHttp..setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest");
php端接受信息,注意此时接受的变量存在 $_SERVER['HTTP_变量名'];中,
如上面的例子则为$_SERVER['HTTP_X_REQUESTED_WITH'];
echo isset($_SERVER['HTTP_X_REQUESTED_WITH'])($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest')?'it is ajax':'it is not ajax';
注释:js和jquery中有些许不同,自己注意一下,再者变量名字不要冲突了
附加:如果这是你自己的网站,你只是自己区别一下的话,这样就可以了,但是,它是防止不了别人盗用你的ajax数据的,因为这些都是可以模拟的,一个好的方法是设计session验证之类的。