html — остановить отображение php над фоновым изображением

Содержимое моего php-скрипта отображается над фоновым изображением, даже если фоновое изображение установлено внутри тега html внутри css, как я могу получить изображение позади текста

Образ:

    <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Secret Diary</title>
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css">
<?php
session_start();
if (array_key_exists("id", $_COOKIE)){
$_SESSION['id'] = $_COOKIE['id'];
}
if(array_key_exists("id", $_SESSION)){
echo "Logged In! <a href='index.php?logout=1'>Log Out</a>";
} else {
header("location: index.php");
}
?>

</head>
<body>

</body>
</html>

CSS:

    html{
background: url("../img/bg.jpg") no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

.center{
position:absolute;
top:50%;
left:50%;
padding:10px;
-ms-transform: translateX(-50%) translateY(-50%);
-webkit-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}

1

Решение

Поместите свой PHP между <body> теги

<?php
session_start();
if(array_key_exists("id", $_COOKIE)){
$_SESSION['id'] = $_COOKIE['id'];
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Secret Diary</title>
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<?php
if(array_key_exists("id", $_SESSION)){
echo "Logged In! <a href='index.php?logout=1'>Log Out</a>";
} else {
header("location: index.php");
}
?>
</body>
</html>

также обновите линию CSS html{ быть body вместо

body {
background: url("../img/bg.jpg") no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
4

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

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

if(array_key_exists("id", $_SESSION)){
$loggedinText = "Logged In! <a href='index.php?logout=1'>Log Out</a>";
}
/*
All your content here,
and when you're ready for it:
*/
echo $loggedinText;

Оффтоп: хорошая практика, если вы разделяете HTML и PHP на отдельные файлы. Вы помещаете HTML-файл в HTML-файл и помещаете его в переменную с помощью php, используя file_get_contents.

if(array_key_exists("id", $_SESSION)){
$loggedinText = "Logged In! <a href='index.php?logout=1'>Log Out</a>";
$template = file_get_contents("example.html");
// Here you do ALL YOUR OTHER LOGIC
// _nothing_ should echo here, until:
// And then only at the end of your file:
echo $template;
} else{
header("Location: not_logged_in.html");
}

Как видите, вы можете легко прочитать Функция добавления без HTML, который отвлекает вас. Теперь только зарегистрированные пользователи могут видеть ваш шаблон. С точки зрения безопасности это также поможет.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector