经典的Ajax示例----登录验证
<?php
/**************************************************************
 * login.php
 * @author 风舞 
 * @email wjiujun (at) gmail.com
 * @note ajax登录验证,用户名和密码保存在客户端cookies中
 **************************************************************/
//得到安全字符串
function safe_str($str)
{
    return (string)htmlspecialchars(trim($str));
}
if(safe_str($_GET['action'])=='login')
{
 //登录验证
    header("Content-type: text/xml");
 $user=safe_str($_POST['user']);
 $pwd=safe_str($_POST['pwd']);
$response_xml='<info>';
 //只有当用户名为root,密码为888时才通过验证
 $response_xml.=($user!='root'||$pwd!='888')?'<error>incorrect username or password!</error>':"<login><info><user>{$user}</user><pwd>{$pwd}</pwd></info></login>";
 $response_xml.='</info>';
 print $response_xml;
 exit;
}
else
{
?>
<html>
<head>
<title>Ajax登录验证</title>
<script type="text/javascript" src="prototype.js"></script>
<script language="JavaScript" type="text/javascript">
<!--
 //得到cookies的值
 function getCookie(name)
 {
  var dc=document.cookie;
  var prefix=name+"=";
  var begin=dc.indexOf("; "+prefix);
  if(begin==-1)
  {
   begin=dc.indexOf(prefix);
   if(begin!=0)
    return "";
  }
  else
   begin+=2;
  var end=document.cookie.indexOf(";",begin);
  if(end==-1)
   end=dc.length;
  return unescape(dc.substring(begin+prefix.length,end));
 }
 //删除cookies
 function delCookie(name)
 {
  if(getCookie(name))
   document.cookie=name+"=; path=/; expires=Thu, 01-Jan-70 00:00:01 GMT";
 }
 //设置cookies
 function setCookie(name,value)
 {
  var expires=new Date();
  expires.setTime(expires.getTime()+30*24*60*60*1000); //设置cookies失效时间为一个月
  document.cookie=name+"="+escape(value)+"; expires="+expires.toGMTString()+"; path=/";
 }
 //得到节点的值
 function getElementTextNS(local,parentElem,index) 
 {
  var result = parentElem.getElementsByTagName(local)[index];
  return result?result.childNodes.length>1?result.childNodes[1].nodeValue:(result.firstChild?result.firstChild.nodeValue:""):"n/a";
 }
 //初始化
 function init()
 {
  var loginUser=getCookie("ajaxUser");
  var loginPwd=getCookie("ajaxPwd");
  loginUser!=""?parseLogin(loginUser,loginPwd):genLoginForm();
 }
 //退出登录
 function logOut()
 {
  delCookie("ajaxUser");
  delCookie("ajaxPwd");
  genLoginForm();
 }
 //用指定的用户名和密码登录
 function parseLogin(username,password)
 {
  var postBody="user="+escape(username)+"&pwd="+escape(password);
  new Ajax.Request("?action=login", {method:"post", postBody:postBody,
      onFailure:function() {alert("程序异常")}, 
      onSuccess:makeResult});
  return false;
 }
 //处理登录返回结果
 function makeResult(response)
 {
  var info=response.responseXML.getElementsByTagName("info");
  var error=getElementTextNS("error",info[0],0);
  if(error!="n/a")
  {
   genLoginForm();
   alert("请输入正确的用户名和密码");
  }
  else
  {
   var user=getElementTextNS("user",info[0],0);
   var pwd=getElementTextNS("pwd",info[0],0);
   setCookie("ajaxUser",user);
   setCookie("ajaxPwd",pwd);
   if(getCookie("ajaxUser")=="")
   {
    genLoginForm();
    alert("您的浏览器必须支持cookies");
   }
   else
    $("content").innerHTML="<h2>Hello,<font color=\"red\">"+user+"</font>!<a href=\"javascript:logOut();\">logout</a></h2>";
  }
 }
 //显示登录框
 function genLoginForm()
 {
  $("content").innerHTML="<form onsubmit=\"return parseLogin($('user').value,$('pwd').value);\">用户名:<input type=\"text\" id=\"user\" size=\"12\"> 密码:<input type=\"password\" id=\"pwd\" size=\"12\"> <input type=\"submit\" value=\"登录\"></form>";
 }
//-->
</script>
</head>
<body onload="init();">
<div id="content"></div>
</body>
</html>
<?php
}
?>
转自:http://www.phpweblog.net/jiujun/archive/2006/08/30/400.html
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号