Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 登录不直接指向该页面_Php_Mysql - Fatal编程技术网

Php 登录不直接指向该页面

Php 登录不直接指向该页面,php,mysql,Php,Mysql,我的注册页面重定向到用户配置文件,但当我登录时,它不会重定向到用户配置文件,并且它们会指向同一页面。注册成功,因为我可以在数据库中看到用户配置文件。我正在使用一个免费的网络托管服务,这可能是造成问题的原因,尽管我真的不明白为什么。我正在使用PHP和mysql。任何关于它为什么不起作用的建议都是令人惊讶的 <?php session_start(); $username = ""; $email = ""; $errors = array(); $db = mysqli_conn

我的注册页面重定向到用户配置文件,但当我登录时,它不会重定向到用户配置文件,并且它们会指向同一页面。注册成功,因为我可以在数据库中看到用户配置文件。我正在使用一个免费的网络托管服务,这可能是造成问题的原因,尽管我真的不明白为什么。我正在使用PHP和mysql。任何关于它为什么不起作用的建议都是令人惊讶的

<?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>