目次
回复讨论(解决方案)
ホームページ バックエンド開発 PHPチュートリアル PHP+Ajax を使用したユーザーのログイン認証の問題を早急に解決してください。

PHP+Ajax を使用したユーザーのログイン認証の問題を早急に解決してください。

Jun 23, 2016 pm 02:08 PM

表单里用户名和密码两个属性,单击按钮触发AJAX函数,这个AJAX函数提取表单中“用户名”和“密码”的值发送到后台程序验证,php写的后台程序,php程序分别对“用户名”和“密码”进行验证,用户名出错给出提示,传回给ajax,显示到<div id="user"></div>中,同理密码出错,显示到<div id="pass"></div>中,现在用户名和密码能够正确传到PHP程序中,做出正确验证,但是xmlHttp.responseText,如何能实现上面的效果呀?急!!!


回复讨论(解决方案)

贴出你的代码!

你需要在回调函数中有条件的对不同的目标赋值,那就要回传有控制信息

// JavaScript Documentvar xmlHttp;function S_xmlhttprequest(){	if(window.ActivXObject){				xmlHttp=new ActiveXObject('Mcrosoft.XMLHTTP');		}else if(window.XMLHttpRequest){			xmlHttp=new XMLHttpRequest;		}	}function php100(){	S_xmlhttprequest();	user=document.myform.user.value;	pwd=document.myform.pwd.value;   var postStr = 'user='+ user+'&amp;pwd='+pwd;	xmlHttp.open('POST','login3.php',true);	 //定义传输的文件HTTP头信息 	xmlHttp.onreadystatechange=byphp;	xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');	 //发送POST数据	 xmlHttp.send(postStr);	}function byphp(){	var byphp100=xmlHttp.responseText;	document.getElementById('userInfo').innerHTML=byphp100;	}// JavaScript Document// JavaScript Document
ログイン後にコピー
form name=&quot;myform&quot; method=&quot;post&quot; action=&quot;&quot;&gt; 用户名:&lt;input type=&quot;text&quot;  name=&quot;user&quot; value=&quot;&quot;  size=10;/&gt;   &lt;br&gt; 密 码:&lt;input type=&quot;password&quot; name=&quot;pwd&quot; value=&quot;&quot; size=10;/&gt;   &lt;br&gt; &lt;input type=&quot;button&quot;  name=&quot;button&quot; value=&quot;登陆&quot;  onclick=&quot;php100();&quot;/&gt; &lt;/form&gt;&lt;div id=&quot;userInfo&quot;&gt;&lt;/div&gt;&lt;div id=&quot;passInfo&quot;&gt;&lt;/div&gt;
ログイン後にコピー
&lt;?php $username=$_POST['user']; //获取用户编号 $password=$_POST['pwd']; //获取密码编号 if($username=='09430102'){	  echo &quot;用户名正确&quot;;	 }else{		     echo &quot;用户名不正确&quot;;		 } if($password=='my0917'){	 echo &quot;密码正确&quot;;	 }else{		     echo &quot;密码错误&quot;;		 }?&gt;
ログイン後にコピー

“用户名”验证返回的信息显示到userinfo那个div中,密码显示到passinfo那个div中;代码应该怎么改?希望详细些,新手谢谢了!

你没有回传啊

var byphp100=xmlHttp.responseText;
document.getElementById('userInfo').innerHTML=byphp100;这不是回传处理了吗?

function byphp(){  var byphp100=xmlHttp.responseText;  if(/用户/.test(byphp100))    document.getElementById('userInfo').innerHTML=byphp100;  else    document.getElementById('passInfo').innerHTML=byphp100;}
ログイン後にコピー
ログイン後にコピー

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script src="ajax.js"></script>
<body>
<label>
用户名:<input type="text" id="username" name="textfield" />
</label>
<p>
密码 <input type="text" id="pw" name="textfield2" onblur="check()"/>
</p>
</body>
</html>
<div id="user"></div>


ajax.js
var http_request;
function send_request(url,method) {
  http_request = false;
  if(window.XMLHttpRequest) {
  http_request = new XMLHttpRequest();
  if (http_request.overrideMimeType) {
   http_request.overrideMimeType('text/xml');
  }
  }
  else if (window.ActiveXObject) {
  try {
   http_request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
   http_request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (e) {}
  }
  }
  if (!http_request) {
  window.alert("不能创建XMLHttpRequest对象实例.");
  return false;
  }
  switch(method){
case 1:http_request.onreadystatechange = chk;break;
   }
  http_request.open("GET", url, true);
  http_request.send(null);
}

function check(){
send_request("check.php?action="+document.getElementById('pw').value,1);


function chk() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
document.getElementById("user").innerHTML="";
document.getElementById("user").value=http_request.responseText;
    } else {
     alert("您所请求的页面异常。");
    }
   }else {
document.getElementById("user").innerHTML="正在读取数据中……";
}
}


check.php

<?php

if(存在){
echo"正确";
}else{
echo "不正确";
}
?>

check.php中判断下$_POST['username']和$_POST['pw']

function byphp(){  var byphp100=xmlHttp.responseText;  if(/用户/.test(byphp100))    document.getElementById('userInfo').innerHTML=byphp100;  else    document.getElementById('passInfo').innerHTML=byphp100;}
ログイン後にコピー
ログイン後にコピー

代码运行,咋还是不能将“用户名”和“密码”验证返回信息显示到不同的div中?回传控制信息怎么写?谢谢!--新手!

传json吧

留名!   用jquery不是更好吗

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP状況調査の発表

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

Laravelの通知

See all articles