本文目錄一覽:
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驗證之類的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/301585.html