首页 > 解决方案 > 我的 PHP 登录系统在域站点下不起作用

问题描述

我希望这个问题不是不合适的,但这是我最后的手段,我不想错过这一课,所以就这样吧。我的登录系统有问题。我的登录系统在本地主机下工作得很好,但是当我托管一个站点并将这个登录系统放在那里时,注册工作但我似乎无法登录。有什么建议么?

这是我的 header.php,我在其中显示登录表单

           <?php

                session_start();

            if (isset($_SESSION['userId'])) { 

              echo '<form action="includes/logout.inc.php" method="post">

                <div class="card-body">
                <button class="form-control mr-sm-2" type="submit" name="logout-submit">Log out</button>
                </div>

              </form>';
            }
            else { // 
              echo '<form action="includes/login.inc.php" method="post">

                  <div class="form-label-group">
                  <input type="text" name="mailuid" class="form-control" placeholder="Username/EMail....">
                  </div>

                  <div class="form-label-group">
                    <input type="password" name="pwd" class="form-control" placeholder="Password...">
                    </div>

                    <div class="card-body">
                    <button class="btn btn-lg btn-primary btn-block btn-success " type="submit" name="login-submit">Sign In </button>
                    </div>

                    <div class="card-body">
                      <a class="btn btn-lg btn-primary btn-block " href="signup.php">Sign Up</a>
                    </div>

                    <div class="card-body">
                    <a href=".$loginUrl.">Sign in Through Facebook</a>
                    </div>

                  </form>';

                  include 'google.php';
            }

这是我的 login.inc.php


if (isset($_POST['login-submit'])) {

  require 'dbh.inc.php';

  $mailuid = $_POST['mailuid'];
  $password = $_POST['pwd'];

  if (empty($mailuid) || empty($password)) {
    header("Location: ../index.php?error=emptyfields");
    exit();
  }

  else {
     $sql = "SELECT * FROM users WHERE uidUsers=? OR emailUsers=?;";
     $stmt = mysqli_stmt_init($conn);
     if (!mysqli_stmt_prepare($stmt,$sql)) {
       header("Location: ../index.php?error=sqlerror");
       exit();
     }
       else {
         mysqli_stmt_bind_param($stmt, "ss", $mailuid, $mailuid);
         mysqli_stmt_execute($stmt);
         $result = mysqli_stmt_get_result($stmt);
         if ($row = mysqli_fetch_assoc($result)) {

           $pwdcheck = password_verify($password, $row['pwdUsers']); 
           if ($pwdcheck == false) { 
             header("Location: ../index.php?error=wrongpassword");
             exit();
           }

           elseif ($pwdcheck == true) {
             session_start();
             $_SESSION['userId'] = $row['idUsers'];
             $_SESSION['userUid'] = $row['uidUsers'];

             header("Location: ../index.php?login=success");
             exit();

           }

           else {

             header("Location: ../index.php?error=wrongpassword");
             exit();

           }

         }

         else {
           header("Location: ../index.php?error=nouser");
           exit();
         }
       }


  }

}
else {

  header("Location: ../index.php");
  exit();

}

最后连接到我的数据库



$servername = "localhost";
$dBUsername = "root";
$dBPassword = "";
$dBName = "loginsystemtut1";

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

if(!$conn) {

die("Connection failed " .mysqli_connect_error());

}

任何帮助将不胜感激,因为明天是最后期限。

标签: phpmysqlauthenticationsession

解决方案


推荐阅读