PHP - вход и выход дважды - PullRequest
0 голосов
/ 01 июня 2018

Я создаю систему входа в php для сайта, который я разрабатываю.Я закончил систему входа в систему, но столкнулся с небольшой проблемой.При нажатии на кнопку входа в систему я попадаю на страницу входа, где меня просят войти с именем пользователя и паролем.После нажатия на кнопку «Войти» он регистрируется как правильный, но все равно показывает кнопку «Войти».После того, как проделал ту же процедуру, он снова работает.Это также происходит при выходе из системы.Я уже пробовал перезагрузить страницу после первого входа или выхода из системы.

Пожалуйста, помогите.

Основной код входа:

<?php

session_start();

if (isset($_POST['submit'])) {
	
	include 'dbconfig.php';

	$uid = mysqli_real_escape_string($conn, $_POST['uid']);
	$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);

	//Error handlers
	//Check for empty fields
	if (empty($uid) || empty($pwd)){
		header("Location:http://examplesite.com/login.php?login=empty");
		exit();
	} else {
		$sql = "SELECT * FROM users WHERE user_uid='$uid' OR user_email='$uid'";
		$result =  mysqli_query($conn, $sql);
		$resultCheck = mysqli_num_rows($result);
		if ($resultCheck < 1) {
			header("Location:http://examplesite.com/login.php?login=error");
			exit();
		} else {
			if ($row = mysqli_fetch_assoc($result)) {
				$hashedPwdCheck = password_verify($pwd, $row['user_pwd']);
				if ($hashedPwdCheck == false) {
					header("Location:http://examplesite.com/login.php?login=error");
					exit();
				} elseif ($hashedPwdCheck == true) {
					//login the user here
					$_SESSION['u_id'] = $row['user_id'];
					$_SESSION['u_first'] = $row['user_first'];
					$_SESSION['u_last'] = $row['user_last'];
					$_SESSION['u_email'] = $row['user_email'];
					$_SESSION['u_uid'] = $row['user_uid'];
					header("Location: https://www.examplesite.com/");
					exit();
				}

			}
		}
	}
} else {
header("Location:http://examplesite.com/login.php?login=error");
exit();
}

Навигация для отображения входа / выхода из системы:

<li><a href="../../index.php">Home</a></li>
<li><a href="../../blog.php">Blog</a></li>
<li><a href="../../Repository.php">Download Repository</a></li>
<?php
	session_start();
	if (isset($_SESSION['u_id'])) {
		echo '<li><a href="../../includes/logout.inc.php">Logout</a></li>';
	} else {
		echo '<li><a href="../../login.php">Login</a></li>';
	}
?>

Форма ввода:

<body>
	<div id="formbox">
		<h1 id="logintitle">Login</h1>
		<form action="includes/login.inc.php" method="POST" data-ajax="false">
			<input type="text" name="uid" placeholder="Username/email" id="input">
			<br>
			<br>
			<input type="text" name="pwd" placeholder="Password" id="input">
			<br>
			<br>
			<button type="submit" name="submit" id="submit">Login</button>
		</form>
		<h4 id="already">Not got an account yet? Click <a href="signup.php">here</a> to get one.</h4>
	</div>
</body>

1 Ответ

0 голосов
/ 01 июня 2018

После нескольких часов прокрутки кода я случайно нашел ответ: кажется, что строка заголовка после переменных $ _SESSION все испортила.
Спасибо всем, кто прокомментировал оригинальный вопрос.

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