我在php代码中进行了一些更改,它可以工作。我现在只想如果用户输入了我想要正确的登录名和密码,就会出现新页面,并带有一条消息,例如“恭喜”。就我而言,它总是移到最后一行
header("WWW-Authenticate: Basic realm='Access denied'");
,这是填充登录名和密码的新形式。即使我填写了这些内容,它也会再次询问我,并再次显示该表格。我该如何解决?
我的HTML代码:
<html>
<head>
</head>
<body>
<form id="form1" name="form1" method="post" action="verify_user.php">
<p align="center">Username :
<input type="text" name="AUTH_USER " id="AUTH_USER " />
</p>
<p align="center">Password :
<input type="password" name="AUTH_PASS" id="AUTH_PASS" />
</p>
<p align="center">
<input type="submit" name="submit" id="submit" value="Login" />
</p>
</form>
<h3 align="center" class="para">
<?php
if(isset($_GET['id'])) {
echo $_GET['id'];
}
?>
</h3>
</body>
</html>
我的PHP代码:
<?php
function require_auth() {
$AUTH_USER = 'MAYAR12';
$AUTH_PASS = '*******';
// header('Cache-Control: no-cache, must-revalidate, max-age=0');
if( $has_supplied_credentials = !(empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PASS']))){
echo "<script>alert('congratulations');</script>";
}
$is_not_authenticated = (
!$has_supplied_credentials ||
$_SERVER['PHP_AUTH_USER'] != $AUTH_USER ||
$_SERVER['PHP_AUTH_PASS'] != $AUTH_PASS
);
if ($is_not_authenticated) {
echo "<script>alert('erreur');</script>";
header("WWW-Authenticate: Basic realm='Access denied'");
}
}
require_auth();
?>
答案 0 :(得分:0)
您可以使用此:
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00)
Maven home: C:\apps\apache-maven-3.6.0\bin\..
Java version: 12.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-12.0.2
Default locale: en_US, platform encoding: Cp1252
OS name: "windows server 2012 r2", version: "6.3", arch: "amd64", family: "windows"
答案 1 :(得分:0)
查看它是否按照您想要的方式工作
绝对可以做的改进:$ _SESSION /密码加密的HASH
替换:
echo "<script>alert('erreur');</script>";
至
$error = 'Not connected !';
添加
<?PHP if(isset($error)) { echo " " . $error . " "; } ?>
自定义错误HTML
<?PHP if(isset($error)) { echo "<div class='alert alert-danger'> " . $error . " </div>"; } ?>
MAJ用户名和密码,不正确:以下
$is_not_authenticated = (
!$has_supplied_credentials ||
$_SERVER['PHP_AUTH_USER'] != $AUTH_USER ||
$_SERVER['PHP_AUTH_PASS'] != $AUTH_PASS
);
添加
if($_SERVER['PHP_AUTH_USER'] != $AUTH_USER ) {
$error = 'Error: Username !';
}
if($_SERVER['PHP_AUTH_PASS'] != $AUTH_PASS ) {
$error = 'Error: Password !';
}
有效用户 连接之后
<?php
if(!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_PASS'] )) {
// ERROR NOT CONNECTED HTML FORMULAIRE
} else {
?>
CONNECTED
<?php
}
?>