ສະບາຍດີ ຈາກທີ່ຫ່າງຫາຍໄປດົນ ກັບມາຄັ້ງນີ້ ມີບົດຄວາມ ການ Login ແບບໃຊ້ Ajax ໂດຍ PHP
ຊຶ່ງຈະມີຂັ້ນຕອນດັ່ງນີ້
1. Databases code mysql
==============================================================
-- phpMyAdmin SQL Dump
-- version 4.9.0.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Dec 18, 2019 at 05:40 AM
-- Server version: 10.3.16-MariaDB
-- PHP Version: 7.1.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `mydatabase`
--
-- --------------------------------------------------------
--
-- Table structure for table `account`
--
CREATE TABLE `account` (
`ID` int(10) NOT NULL,
`Username` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`Pass` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`code` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Dumping data for table `account`
--
INSERT INTO `account` (`ID`, `Username`, `Pass`, `code`) VALUES
(1, 'beh', '1234', 1);
--
-- Indexes for dumped tables
--
--
-- Indexes for table `account`
--
ALTER TABLE `account`
ADD PRIMARY KEY (`ID`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `account`
--
ALTER TABLE `account`
MODIFY `ID` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
==================================================================
2. AjaxPHPLoginForm1.php
<html>
<head>
<title>Test Ajax Tutorial</title>
</head>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax() {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'AjaxPHPLoginForm2.php';
var pmeters = "tUsername=" + encodeURI( document.getElementById("txtUsername").value) +
"&tPassword=" + encodeURI( document.getElementById("txtPassword").value );
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText == 'Y')
{
window.location = 'AjaxPHPLoginForm3.php';
}
else
{
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
}
}
}
}
</script>
<body align="center">
<h1>Login Form</h1>
<form name="frmMain">
<span id="mySpan"></span>
<table width="274" border="1" align="center">
<tr>
<th width="117">
<div align="left">Username</div></th>
<th><input type="text" name="txtUsername" id="txtUsername" size="20"></th>
</tr>
<tr>
<th width="117">
<div align="left">Password</div></th>
<th><input type="password" name="txtPassword" id="txtPassword" size="20"></th>
</tr>
</table>
<br>
<input name="btnLogin" type="button" id="btnLogin" OnClick="JavaScript:doCallAjax();" value="Login">
</form>
</body>
</html>
==================================================================
3. AjaxPHPLoginForm2.php
<?php
session_start();
$strUsername = trim($_POST["tUsername"]);
$strPassword = trim($_POST["tPassword"]);
//*** Check Username ***//
if(trim($strUsername) == "")
{
echo "<font color=red>**</font> Plase input [Username]";
exit();
}
//*** Check Password ***//
if(trim($strPassword) == "")
{
echo "<font color=red>**</font> Plase input [Password]";
exit();
}
$localhost = "localhost";
$root = "root";
$pass = "";
$db_staffdata = "mydatabase";
$con = mysqli_connect($localhost,$root,$pass,$db_staffdata);
mysqli_query($con,"set names utf8");
if(!$con){
die("Connect Faile :".mysqli_connect_error());
}
//*** Check Username & Password ***//
$strSQL = "SELECT * FROM account WHERE Username = '".$strUsername."' and Pass = '".$strPassword."' ";
$objQuery = mysqli_query($con,$strSQL);
$objResult = mysqli_fetch_array($objQuery);
if($objResult)
{
//*** Session ***//
$_SESSION["ID"] = $objResult["ID"];
$_SESSION["Username"] = $objResult["Username"];
$_SESSION["Pass"] = $objResult["Pass"];
$_SESSION["code"] = $objResult["code"];
echo "<p align='center'>";
echo "<BR>";
echo "<span style='color:#99ebff';>";
echo "ຍິນດີຕ້ອນຮັບທ່ານ $objResult[Username] ເຂົ້າສູ່ລະບົບ !!!";
echo "</span>";
echo "<br>";
echo "<meta http-equiv='refresh' content='2;url=./AjaxPHPLoginForm3.php'>";
echo "</p>";
}else{
echo "<font color=red>**</font> Username & Password is wrong";
echo "<p align='center'>";
echo "<span style='color:#ff6666;'>";
echo "ບໍ່ສາມາດເຂົ້າສູ່ລະບົບໄດ້";
echo "ກະລຸນາລອງໃໝ່ອີກຄັ້ງ";
echo "</span>";
echo "<meta http-equiv='refresh' content='2;url=./AjaxPHPLoginForm1.php'>";
echo "</p>";
}
mysqli_close($con);
?>
4. AjaxPHPLoginForm3.php
<?php
session_start();
if($_SESSION["Username"] == "")
{
header("location:AjaxLoginForm.php");
exit();
}
$localhost = "localhost";
$root = "root";
$pass = "";
$db_staffdata = "mydatabase";
$con = mysqli_connect($localhost,$root,$pass,$db_staffdata);
mysqli_query($con,"set names utf8");
if(!$con){
die("Connect Faile :".mysqli_connect_error());
}
$strSQL = "SELECT * FROM account WHERE Username = '".$_SESSION["Username"]."' ";
$objQuery = mysqli_query($con,$strSQL);
$objResult = mysqli_fetch_array($objQuery);
?>
<html>
<head>
<title>test Ajax Tutorial</title>
</head>
<body align="center">
<h1>Welcome [<?php echo $objResult["Username"];?>] to My Website</h1>
</body>
</html>
==================================================================
ຈົບໄປແລ້ວ Code ທັ້ງໝົດທີ່ມີ ຕໍ່ໄປຈະເປັນຂອງສ່ວນ ສະແດງຜົນ
==================================================================
![]() |
| from login |
![]() |
| Main login true |
==================================================================
ຈົບໄປແລ້ວສຳຫລັບບົດຄວາມນີ້ ມີຂໍ້ສົງໃສໃດຖາມໄດ້ ຝາກົດຕິດຕາມ ແນ່ເດິ້


The walkthrough on handling the error callback in the Ajax success check is what I needed. Most tutorials gloss over the error case and just assume the call will work. The point about checking both status codes and response data is solid advice for anyone building auth flows. 24 hour hvac repair has a directory worth a look if you need one.
ตอบลบ