Ошибка при установлении соединения с базой данных при обновлении страницы - PullRequest
0 голосов
/ 21 марта 2019

Привет! Я использую форму PHP для отправки сведений пользователю, когда он зарегистрировался в базе данных с помощью URL-адреса "/websitename/signup.php". Тем не менее, когда я запускаю сценарий для отправки пользователя обратно на страницу после того, как он зарегистрировался с URL-адресом "websitename / signup.php? Signup = success", я получаю сообщение об ошибке при установлении соединения с базой данных, НО подробности успешно перенесен в базу данных. ЛЮБАЯ ПОМОЩЬ ПОЖАЛУЙСТА ???

PHP-код

    <?php
if (isset($_POST['signup-submit'])) {

  require 'connect_db.php';

    $username = $_POST['uid'];
    $email = $_POST['mail'];
    $password = $_POST['pass'];
    $passwordRepeat = $_POST['pass-repeat'];

  if (empty($username) || (empty($email) || (empty($password) || (empty($passwordRepeat))))) {
    header("Location: ../signup.php?error=emptyfields&uid=".$username."&mail=".$email);
    exit();
  }
  elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    header("Location: ../signup.php?error=invalidmail&uid=".$username);
    exit();
  }
  elseif ($password !== $passwordRepeat) {
    header("Location: ../signup.php?error=passwordcheckl&uid=".$username."&mail=".$email);
    exit();
  }
  else {

      $sql = "SELECT uidUsers FROM users WHERE uidUsers=?";
      $stmt = mysqli_stmt_init($conn);
      if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: ../signup.php?error=sqlerror");
        exit();
      }
      else {
        mysqli_stmt_bind_param($stmt, "s", $username);
        mysqli_stmt_execute($stmt);
        mysqli_stmt_store_result($stmt);
        $resultCheck = mysqli_stmt_num_rows($stmt);
        if ($resultCheck > 0) {
          header("Location: ../signup.php?error=usertaken&mail=".$email);
          exit();
        }
        else {
            $sql = "INSERT INTO users (uidUsers, emailUsers, passUsers) VALUES (?, ?, ?)";
            $stmt = mysqli_stmt_init($conn);
            if (!mysqli_stmt_prepare($stmt, $sql)) {
              header("Location: ../signup.php?error=sqlerror");
              exit();
            }
            else {
              $hashedPwd = password_hash($password, PASSWORD_DEFAULT);

              mysqli_stmt_bind_param($stmt, "sss", $username, $email, $hashedPwd);
              mysqli_stmt_execute($stmt);
              header("Location: ../signup.php?signup=success");
              exit();
            }

       }
  }

}
  mysqli_stmt_close($stmt);
  mysqli_close($conn);

  }

  else {
    header("Location: ../assets/signup.php");
    exit();
  }

SIGNUP.PHP CODE

    <?php
include 'header.php';
 ?>

   <!-- MAIN CONTENT AREA STARTS -->

<!-- Display body section with sticky form. -->

<section>
  <div class="container signup-container">
  <h1 class="signup-header">Create an Account</h1>
  <form action="assets/includes/signup.inc.php" method="post">
    <input type="text" name="uid" placeholder="Username">
    <input type="text" name="mail" placeholder="Email">
    <input type="password" name="pass" placeholder="Password">
    <input type="password" name="pass-repeat" placeholder="Confirm Password">
    <button type="submit" name="signup-submit">Signup</button>
  </form>
  </div>
</section>

   <!-- MAIN CONTENT AREA ENDS -->

 <?php
 include 'footer.php';
 ?>

CONNECT DB

$servername = "localhost";
$dBUsername = "username";
$dBPassword = "password";
$dBName = "database name";

$conn = mysqli_connect ($servername, $dBUsername, $dBPassword, $dBName);

if (!$conn) {
  die("Connection failed: ".mysqli_connect_error());
}
...