Задать вопрос
@whiteleaf

Как правильно структурировать документ, чтобы избежать «Cannot modify header information — headers already sent by»?

Всем здравствуйте,
Сражу же извиняюсь за столько детские вопросы, но я только начинаю изучать программирование и столкнулся с авторизацией, а именно с header(). Я знаю, что header'сы должны предшествовать всем выводам, но будет тогда правильней структурировать структуру, чтобы избежать их?

Приведу исходники ниже:

index.php
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Blog</title>
	<link rel="stylesheet" href="css/style.css">
</head>
<body>
	<div class="container">
		<div class="top"><?php (isset($_POST['session_id'])) ? include_once "logout.php" : include_once "lgn.php"; ?></div>
		<div class="center">
			<div class="left">left</div>
			<div class="content"><?php include_once "blog.php"; ?></div>
		</div>
	</div>
</body>
</html>


lgn.php

<?php 
		$login 		= htmlentities(trim($_POST['login']));
		$password 	= md5(trim($_POST['password']));
			if (isset($_POST['submit'])) {
				include_once "db_connect.php";
				include_once "config.php";
				if (isset($login,$password)) {
				$query = "SELECT * FROM users WHERE login="."'".$login."'";
				$result = mysqli_query($con,$query);
				$user = array();
				while ($row = mysqli_fetch_array($result)) {
					foreach ($row as $key => $value) {
						if (!is_numeric($key)) {
							$user[$key] = $value;
						}
					}
				}
				if (($login === $user['login']) && ($password === $user['password'])) {
					setcookie('session_id', $user['id']);
					setcookie('login', $user['login']);
				}else{
					echo "Such user doen't exist or login/password dosn't match. Please, check them twice and try again!";
				}
			}
		}
 	?>
<div class="login">
	<form action="" method="POST">
		<table>
			<tr>
				<td><input type="text" name="login" placeholder="Login" value="<?php echo $_POST['login'] ?>"></td>
				<td><input type="password" name="password" placeholder="Password"></td>
				<td><input type="submit" name="submit"></td>
			</tr>
		</table>
	</form>			
</div>


logout.php
<table>
	<tr>
		<td><?php echo "Welcome back, ".$_COOKIE['login']; ?></td>
		<td><a href="<?php setcookie('session_id', ""); ?>">Log out</a></td>
	</tr>
</table>
  • Вопрос задан
  • 2759 просмотров
Подписаться 3 Оценить Комментировать
Решение пользователя Максим Углов К ответам на вопрос (3)
ob_start()
Ответ написан
Комментировать