Php 登录不直接指向该页面
我的注册页面重定向到用户配置文件,但当我登录时,它不会重定向到用户配置文件,并且它们会指向同一页面。注册成功,因为我可以在数据库中看到用户配置文件。我正在使用一个免费的网络托管服务,这可能是造成问题的原因,尽管我真的不明白为什么。我正在使用PHP和mysql。任何关于它为什么不起作用的建议都是令人惊讶的Php 登录不直接指向该页面,php,mysql,Php,Mysql,我的注册页面重定向到用户配置文件,但当我登录时,它不会重定向到用户配置文件,并且它们会指向同一页面。注册成功,因为我可以在数据库中看到用户配置文件。我正在使用一个免费的网络托管服务,这可能是造成问题的原因,尽管我真的不明白为什么。我正在使用PHP和mysql。任何关于它为什么不起作用的建议都是令人惊讶的 <?php session_start(); $username = ""; $email = ""; $errors = array(); $db = mysqli_conn
<?php
session_start();
$username = "";
$email = "";
$errors = array();
$db = mysqli_connect("localhost", "", "password", "");
if (isset($_POST['reg_user'])) {
// receive all input values from the form
$username = mysqli_real_escape_string($db, $_POST['username']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
$password_2 = mysqli_real_escape_string($db, $_POST['password_2']);
// form validation: ensure that the form is correctly filled
if (empty($username)) { array_push($errors, "Username is required"); }
if (empty($firstname)) { array_push($errors, "First name is required"); }
if (empty($lastrname)) { array_push($errors, "Last name is required"); }
if (empty($email)) { array_push($errors, "Email is required"); }
if (empty($password_1)) { array_push($errors, "Password is required"); }
if ($password_1 != $password_2) {
array_push($errors, "The two passwords do not match");
}
// first check the database for email
$user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
$result = mysqli_query($db, $user_check_query);
$user = mysqli_fetch_assoc($result);
if ($user) {
if ($user['username'] === $username) {
array_push($errors, "Username already exists");
}
if ($user['email'] === $email) {
array_push($errors, "email already exists");
}
}
// register user
if (count($errors) == 0) {
$password = md5($password_1);//encrypt the password
$query = "INSERT INTO users (username, email, password, firstname, lastname, )
VALUES('$username', '$email', '$password')";
mysqli_query($db, $query);
$_SESSION['username'] = $username;
$_SESSION['success'] = "You are now logged in";
header('location: index.php');
}
}
// LOGIN USER
if (isset($_POST['login_user'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$password = mysqli_real_escape_string($db, $_POST['password']);
if (empty($username)) {
array_push($errors, "Username is required");
}
if (empty($password)) {
array_push($errors, "Password is required");
}
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$_SESSION['username'] = $username;
$_SESSION['success'] = "You are now logged in";
header('location: index.php');
}
else {
array_push($errors, "Wrong username/password combination");
}
}
}
?>
您是否尝试调试代码以了解哪里出了问题?您好,谢谢您的建议,但我的Web主机上的控制台不提供此功能,而且由于数据库连接,我无法真正检查。是否有其他调试方法?这是一个学校的项目,也是我第一次真正使用php。你可以添加php和nysqli错误报告,你可以做错误处理,也可以在代码的不同部分输入变量来检查状态。所有这些问题和答案也是如此。嵌套表单是不允许的。
<!DOCTYPE html>
<html>
<head>
<header>
<meta charset="utf-8">
<title>Oh Polly</title>
<meta name="description" content="Roughly 155 characters">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<nav class="navbar navbar-default" role="navigation"style="background-color: #e3f2fd;">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<a class="navbar-brand" href="index.html">Oh Polly</a>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-left">
<li><a href="cart.php" class="navbar-right"><img src="cart-icon.png"></a></li>
<li><a href="cartindex.php">Clothes</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="register.php">Register</a></li>
<li><a href="login.php">Login</a></li>
</ul>
</div>
</nav>
</header>
</head>
<body>
<form method="post" action="login.php">
<?php include('errors.php'); ?>
<div class="container">
<div class="row">
<div class="col-xl-8 offset-xl-2 py-5">
<h1>Login</h1>
<p class="lead">Please enter your information to login.</p>
<form id="contact-form" method="post" action="contact.php" role="form">
<div class="messages"></div>
<div class="controls">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="form_name">User Name</label>
<input id="form_name" type="text" name="username" class="form-control" placeholder="Please enter your user name" required="required" data-error="Username is required.">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="form_subject">Password *</label>
<input id="form_subject" type="password" name="password" class="form-control" placeholder="Please enter your password*" required="required" data-error="The password is required">
<div class="help-block with-errors"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<input type="submit" class="btn btn-success btn-send" name="login_user" value="Login">
</div>
</div>
<div class="row">
<div class="col-md-12">
<p class="text-muted">
<strong>*</strong> These fields are required.</p>
<p>Not yet a member? <a href="register.php">Sign up</a></p>
</div>
</div>
</div>
</form>
</form>
<style scoped>
.container {
text-align: center;
padding-top: 150px;
padding-bottom: 150px;
}
.navbar-brand
{
position: absolute;
width: 100%;
left: 0;
text-align: center;
margin:0 auto;
}
.navbar-toggle {
z-index:3;
}
</style>
</div>
</div>
</div>
</body>
</html>