страница входа перенаправить php - PullRequest
0 голосов
/ 15 февраля 2019

Моя страница работала правильно, когда на ней была одна страница.Как только я добавил перенаправление на другую страницу, кажется, флажок запомнить меня больше не работает.Я не уверен, влияет ли команда выхода на него, как только я удаляю else, и завершаю работу с обоими, после чего он запоминает.Я пытаюсь создать профиль администратора.Admin = 1 пользователь = 0

Я попытался удалить выход;и перенаправления.

Но я действительно хочу сохранить их

<!DOCTYPE html>

  <head>
<!-- Bootstrap core CSS -->
    <link href="bootstrap.min.css" rel="stylesheet">
  </head>

<style>
.alert {
    text-align: center;
    padding: 12px;
    background-color: #f44336; /* Red */
    color: white;
    margin-bottom: 10px;  
}
</style>


<?php
session_start(); // Starting Session
$error=''; // Variable To Store Error Message

if (isset($_POST['submit'])) {
if (empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username or Password is invalid";
}
else
{

// Define $username and $password
$username=$_POST['username'];
$password=$_POST['password'];

// Establishing Connection with Server by passing server_name, user_id and password as a parameter

$connection = mysql_connect("localhost", "root", "password");

// To protect MySQL injection for Security purpose

$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

// Selecting Database
$db = mysql_select_db("kike", $connection);
// SQL query to fetch information of registerd users and finds user match.

$query = mysql_query("select * from login where password='$password' AND username='$username'", $connection);
$rows = mysql_num_rows($query);

if ($rows == 1) {


$query = mysql_query("select * from login where password='$password' AND username='$username' AND admin = 1", $connection);
$master = mysql_num_rows($query);


     $_SESSION['login_user']=$username; // Initializing Session

        if($master == 1) { // some way of identifying an admin
            // admin

            header("location: wood/profile.php"); // Redirecting To Other Page
            exit;
        } else {
            // user
            header("location: user/profile.php");
            exit;
        }

$_SESSION["id"]= $user["id"];

            if(!empty($_POST["remember"])) {
                setcookie ("username",$_POST["username"],time()+ (10 * 365 * 24 * 60 * 60));
                setcookie ("password",$_POST["password"],time()+ (10 * 365 * 24 * 60 * 60));
            } else {
                if(isset($_COOKIE["username"])) {
                    setcookie ("username","");
                }
                if(isset($_COOKIE["password"])) {
                    setcookie ("password","");
                }
            }
                  } 

else {
$error = "Username or Password is invalid";

echo ' <div class="fixed-top">

<div class="alert alert-primary"  role="alert">
  Invalid username or password
</div> </div>' ;

}

mysql_close($connection); // Closing Connection
}
}
?>

</html>    

1 Ответ

0 голосов
/ 15 февраля 2019

Я сделал страницу входа раньше ... надеюсь, она вам поможет ... вот она:

<?php
session_start();
$username = strtolower(htmlspecialchars($_POST['username']));
$usernameUW = ucfirst(htmlspecialchars($_POST['username']));
$password = $_POST['password'];
$path = $_SERVER['DOCUMENT_ROOT'] . "//regs/" . $username . ".txt";
$_SESSION['signInErrors'] = array();
if(!file_exists($path)){
    $fileOpen = fopen($path, "r");
    $file = fread($fileOpen, filesize($path));
    fclose($fileOpen);
    $hash = "$" . explode("$", $file)[1] . "$" . explode("$", $file)[2] . "$" . explode("$", $file)[3];
}
$_SESSION["signInErrors"] = array();
$errors = 0;
$testErrors = 0;
if (file_exists($path)) {
    $_SESSION["signInErrors"][$testErrors] = "";
    $testErrors += 1;
} else if(password_verify($password, $hash)) {
    $_SESSION["signInErrors"][$testErrors] = "";
    $testErrors += 1;
} else {
    $_SESSION["signInErrors"][$testErrors] = "Incorrect username or password!";
    $errors += 1;
    $testErrors += 1;
}
if($errors === 0) {
    if(isset($_SESSION["previousSite"])) {
        $_location = "Location: https://" . $_SERVER["HTTP_HOST"] . "/" . $_SESSION["previousSite"];
    } else {
        $_location = "Location: https://" . $_SERVER["HTTP_HOST"];
    }
    $_SESSION['username'] = $usernameUW;
    unset($_SESSION['signInErrors']);
    header($_location);
    exit();
} else {
    header("Location: https://" . $_SERVER["HTTP_HOST"] . "/signin");
    exit();
}
?>

Я бы использовал $ _ SESSION [] вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...