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);
});
}
所以通常我有一个表单,其操作是一个 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);
});
}