本文目录一览:
- php与ajax密码验证
- php-ajax验证表单的一点问题
- thinkphp-验证是不是ajax提交
- 请问个php+ajax验证码验证的问题
- php怎么判断是否是-ajax-提交
- 我用ajax+php做了个验证页面,请问最近该如何验证所有表单内容是否通过?
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
文件了
//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验证表单的一点问题
建议你在JavaScript里面使用一个“全局”变量,比如isUsernameAvailable
,并置它的初始值为false
,而且在提交表单时检查它的值,然后才能提交的。并且只有Ajax检查用户名不存在才能赋值为true
。
PS:http_Ajax.onreadystatechange=function(){}
应该放到http_Ajax.open("GET",url,true);
前面的。
thinkphp-验证是不是ajax提交
有两种方式,如下:
第一种方式:
PHP判断ajax请求的原理:
在发送ajax请求的时候,我们可以通过XMLHttpRequest
这个对象,创建自定义的header头信息,在jquery框架中,对于通过它的$.ajax
, $.get
, or $.post
方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH
的参数,php中就是在header一层判断是否是ajax请求,对应的根据$_SERVER['HTTP_X_REQUESTED_WITH']
判断。
/**
* 当前请求是否ajax请求
*
* @access public
* @return bool
*/
function isAjax()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']);
}
注意:
- 一般情况下
$_SERVER['HTTP_X_REQUESTED_WITH']
默认是XMLHttpRequest
$_SERVER['HTTP_X_REQUESTED_WITH']
也可以自定义创建的,使用XMLHttpRequest.setRequestHeader(name,value);
参考文章:
第二种方式:
通过前台给php传一个type参数来判断,type=1则是ajax,否则是普通提交。
请问个php+ajax验证码验证的问题
这是AJAX缓存问题,LZ 需要保证传过去的页面每次都不一样:办法有:
- 在服务端加
header("Cache-Control: no-cache, must-revalidate");
(如php中) - 在ajax发送请求前加上
anyAjaxObj.setRequestHeader("If-Modified-Since","0");
- 在ajax发送请求前加上
anyAjaxObj.setRequestHeader("Cache-Control","no-cache");
- 在 Ajax 的 URL 参数后加上
"?fresh=" + Math.random();
//当然这里参数fresh
可以任意取了 - 第五种方法和第四种类似,在 URL 参数后加上
"?timestamp=" + new Date().getTime();
- 用POST替代GET:不推荐 [POST的数据是不缓存的]
- 加个随机数
xmlHttp.open("GET", "ajax.asp?now=" + new Date().getTime(), true);
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验证之类的。
我用ajax+php做了个验证页面,请问最近该如何验证所有表单内容是否通过?
楼上已经回答了,客户端提交的动摇再提交前用JS验证一遍,网上有很多现成的正则,改改就能用,或者用上说的JQ的一个控件,再接收到请求数据后再用PHP验证一遍(永远不要相信用户)。同理正则验证。