я изучаю 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 имя пользователя: пароль пользователя: пароль
Языковая конструкция 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");
Других решений пока нет …