почему «выход» , приводит к тому, что страница вообще не отображается, а эхо & quot; & Quot; выполняет свою работу?

я изучаю php, и мне было интересно, почему exit; в строке 6 заставляет страницу переходить в белый цвет при использовании echo " "; в строке 7 все работает как положено.
вот код:

<?php
if ($_POST['username']=="user" && $_POST['password']=="password") {
header("Location: game.html");
}
else {
//(if i write exit on this line, i get all white page)  exit;
// (if i echo empty string the site works ok)     echo "";
} ?><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>

<h3 style="text-align: center">რეგისტრაცია</h3>

<div style="margin: 0 300px 0 300px">
<form action="index.php" method="post">
მომხმარებელი: <input type="text" name="username" value=""><br />
პაროლი: <input type="password" name="password" value="" style="margin-left: 47px"><br/>
<input type="submit" name="submit" value="შესვლა" style="margin-left: 170px">
</form>
</div>

</body>

это фактический сайт мной — в целях обучения http://nikolozasatiani.com/, не стесняйтесь наслаждаться игрой после входа в систему: D имя пользователя: пароль пользователя: пароль

-2

Решение

Языковая конструкция exit останавливает выполнение, то есть все нижеприведенное (в вашем случае HTML) никогда не отправляется в выходной буфер, потому что PHP ничего не анализирует после этой точки.

Однако при выполнении echo " ";Вы просто печатаете пробел на странице. В вашем примере вы можете просто опустить else-часть, поскольку она ничего не делает:

if ($_POST['username']=="user" && $_POST['password']=="password") {
header("Location: game.html");
}

и фактически, поскольку в операторе if выполняется только одна строка, вы также можете опустить фигурные скобки, если вам больше нравится этот синтаксис. Лично я думаю, что это выглядит чище:

if ($_POST['username']=="user" && $_POST['password']=="password")
header("Location: game.html");
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]