我是编程新手。我需要一个简单的PHP登录页面代码,它会在同一页面中显示错误消息,以查找错误的登录详细信息,并重定向到帐户页面,以获取正确的登录详细信息。代码应该记住活动并重定向到用户的帐户页面,如果他已经关闭页面而没有登出。任何帮助将深表感谢。
登录页面
<html>
<head>
<title>Login</title>
</head>
<h3>Login Page</h3>
<form action="trylog.php" method = "post"><!--action redirects to trylog.php -->
<label for="username">Username</label> <input type="username" id="usename" name="username"><br /><br /><!--username label defined -->
<label for="password">Password:</label> <input type="password" id="password" name="password"><br /><br /><!--password label defined -->
<button type = "submit">Login</button><!--submit button defined -->
</form>
</html>
帐户页面
<html>
<title>Login</title>
<body>
<?php
session_start(); //resumes previous session based on indentifiers from POST attribute in login.php
$usr = "admin"; //usr keyword defined
$psw = "password"; //psw keyword defined
$username = '$_POST[username]';
$password = '$_POST[password]';
//$usr == $username && $psw == $password
if ($_SESSION['login']==true || ($_POST['username']=="admin" && $_POST['password']=="password"))
//checking for correctness of username and password
{
echo "password accepted";
$_SESSION['login']=true;
//successful login confirmation
echo "<br><a href='http://localhost/login/login.php'>Logout</a>";
}
else
{
echo "incorrect login";
//incorrect login message
}
session_destroy(); //destroys session
?>
</body>
</html>
由于 Navaneeth
答案 0 :(得分:0)
session_start
必须在输出前,因此请在<html>
等之前移动(输出也是<?php
之前的空格。{{ 1}}必须是代码中的第一个序列。
<?php
和$psw
变量的含义是什么?你有形式,删除它们。
使用变量时,不要使用引号 - 您可以使用双引号,而不是单引号。更好的是不使用引号:$usr
。另一方面,键应该在引号中,在其他地方使用未定义的常量$username = $_POST['username'];
- 如果常量不存在,PHP使用相同的字符串。
第12行的条件永远不会是username
,因为你在那里测试了true
之前没有设置过的。您可以在第16行设置此会话,但仅限于此会话已存在(第12行)。这是合乎逻辑的废话: - )
为什么在不与它们合作时创建变量SESSION
和$username
?
在使用$password
第9行和第10行之前,您必须检查表单是否已发送,因此$_POST
。