HTML形成两个动作

HTML Forms two actions

所以通常我有一个表单,其操作是一个 link 来验证用户的用户名和密码(不能 post link 不属于我)并且如果这是正确的,它给了我一个 "ok" 或者 "no" 我怎样才能以某种方式做到这一点,如果是,它会将我定向到我的索引页面,如果没有,则给出错误或重新加载页面或其他内容。他们是这样做的方法吗 一般html的样子是:

 <form method="post" action="https://***************/login">
        <label for="book">Username:</label>
        <input type="text" name="username" id="username" placeholder="Enter username">
        <label for="course">Password:</label>
        <input type="password" name="password" id="password" placeholder="Enter password">
        <input type="submit" value="Log in">
    </form>

因此,如果我要将其更改为我想要的方式,那么操作应更改为类似 verify.php 的内容,其外观为

<?php
    # how do I use an if for a link using the info that was input
    if($_POST["https://***************/login"]){
         #load index.html
 ?>
        <script type="text/javascript">
             window.location.href = 'index.html';
        </script>
<?php
    else{ 
        #load the page again
?>
        <script type="text/javascript">
             window.location.href = 'login.php';
        </script>
<?php        
     }
?>

我对 php 有点陌生。 所以请帮忙

有一个 header 重定向,你必须把它放在你的 php 脚本中:

header('Location: yoururl.com');

要记录脚本中的错误,您可以在 $_SESSION 变量中设置它:

session_start(); // at the beginning of your script
$_SESSION['error'] = 'Password incorrect, please try again';

因此,在您的其他页面中,您可以使用类似的内容:

if($_SESSION['error']) {
    echo $_SESSION['error']; // display error
    $_SESSION['error'] = ''; // delete it 
}

您可以在验证脚本上执行所需的操作,然后使用 PHP 中的 headers 进行重定向。

验证操作完成后,您可以通过if/then 语句

选择要转到的页面

例如:

if ([the action you wanted succeeded]) {
    header('Location: index.php');
}
else {
    header('Location: login.php');
}

无法编辑登录验证文件,我认为你最好的选择是通过 ajax 提交表单并使用 javascript 处理其响应,让你的表单像

<form method="post" action="" onsubmit="return false;">
    <label for="book">Username:</label>
    <input type="text" name="username" id="username" placeholder="Enter username">
    <label for="course">Password:</label>
    <input type="password" name="password" id="password" placeholder="Enter password">
    <input type="submit" value="Log in" onclick="btnAuthenticateUser();">
</form>

然后,简单地说 javascript 类似

<script type="text/javascript">
var xmlHttp;
function GetXmlHttpObject() {
    var xmlHttp = null;
    try {
        xmlHttp = new XMLHttpRequest();
    }
    catch (e) {
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}
function btnAuthenticateUser() {
    try {
        var username = document.getElementById('username');
        var pwd = document.getElementById('password');
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("Your browser does not support AJAX!");
            return;
        }
        var url = 'https://***************/login?username=' + username.value + '&password=' + pwd.value;
        xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    if (xmlHttp.responseText == "ok") {
                        window.location = "index.html"; 
                    } else {
                        location.reload();
                    }
                }
                if (xmlHttp.readyState == 4) {
                    // LoadingPage
                }
            }
        }
        xmlHttp.open("POST", url, true);
        xmlHttp.send(null);
        if (xmlHttp.readyState == 1) {
            //LoadingPage
        }
    } catch (e) {
        alert(e.Message);
    }
}
</script>

或者如果您使用的是 jQuery

function btnAuthenticateUser() {
    $.ajax({
        async: true,
        type: 'POST', 
        url: 'https://***************/login', 
        data: { username: $('#username').val(), password: $('#password').val()} 
    })
    .done(function (data) {
        if (data == "ok") {
            window.location = "index.html";
        }else{
            location.reload();
        }
    })
    .fail(function (jqxhr, textStatus, error) {
         GriterError(Global.FailTryAgain);
    });
}