我正在开发一个涉及用户登录页面的小项目。我尝试使用会话变量来创建可以通过登录访问的特定用户页面。我遇到了两个问题:第一个是表单允许输入任何密码和用户名,即使它不正确。第二个问题是当我在个人用户页面上添加(!)到我的isset函数时,我收到503错误,它不会让我登录。如果我拿走(!),页面只是说我的" sess_user"变量未定义。
以下是登录的代码:
<?php
if(isset($_POST["submit"])) {
if(!empty($_POST['username']) && !empty($_POST['password'])) {
$user = $_POST['username'];
$pass = $_POST['password'];
$conn = new mysqli('localhost', 'root', '') or die (mysqli_error()); //Database connection
$db = mysqli_select_db($conn, 'accounts') or die ("DB Error"); //Selecting particular database from PHPmyadmin
//Selecting username & password from Database
$query = mysqli_query($conn, "SELECT * FROM users WHERE username = '".$user."' AND password = '".$pass."'");
$numrows = mysqli_num_rows($query);
if($numrows !=0)
{
while($row = mysqli_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if($user == $dbusername && $pass == $dbpassword){
session_start();
$_SESSION['sess_user'] = $user;
//Redirect Browser
header("Location:personal.php");
}
}
else{
echo "Invalid Username or Password!";
}
}
}
?>
以下是个人用户页面的代码:
<?php
session_start();
if(!isset($_SESSION["sess_user"])){
header("Location: confirm.php");
}else{
?>
<!DOCTYPE html>
<html>
<head>
<title>Personal Page</title>
</head>
<h1>Welcome!</h1>
<p>Login Succesful</p>
<?=$_SESSION['sess_user'];?>!<a href="logout.php">Logout</a>
<body>
</body>
</html>
<?php
}
?>
注1:我知道任何人都可能指出的安全问题。这是我想要解决的问题。
注意2:忽略第二张照片上的黑色污迹。它保存个人信息,我不想经历更改文件路径的麻烦。
答案 0 :(得分:1)
503 Service Unavailable错误是一个HTTP状态代码,表示该网站的服务器现在根本不可用。大多数情况下,它是因为服务器太忙或因为正在执行维护而发生的。 您可以轻松使用以下代码进行连接: -
$mysqli = new mysqli("localhost", "username", "password", "dbname");
<?php
session_start();
if(isset($_SESSION["sess_user])) {
?>
<!DOCTYPE html>
<html>
<head>
<title>Personal Page</title>
</head>
<h1>Welcome!</h1>
<p>Login Succesful</p>
<a href="logout.php">Logout</a>
<body>
</body>
</html>
<?php
} else {
header("Location: confirm.php");
}
?>
isset
- 确定变量是否已设置且不为NULL
我认为isset与连接错误无关
答案 1 :(得分:0)
如果我的代码无法正常工作,我认为这不是问题。
<?php
$var1 = 'test';
if(!isset($var1)){
echo 'There is a test';
}else{
echo 'There is no test';
}
?>
您是否创建了confirm.php文件?