Эхо <div class> не работает при использовании PHP die();

Итак, у меня есть форма, в которой есть несколько пользовательских предупреждений, созданных в сочетании с CSS и PHP, теперь я вызываю эти предупреждения с помощью echo и в конце использую die(), чтобы уничтожить / завершить скрипт PHP. Вот код PHP:

if($pass1 != $pass2){
echo '<div class="alert">Passwords do not match!</div>';
die();
}

и вот CSS:

.alert {
        background: #fff6bf url(../images/exclamation.png) center no-repeat;
        background-position: 15px 50%; 
        text-align: center;
        padding: 5px 20px 5px 45px;
        border-top: 2px solid #ffd324;
        border-bottom: 2px solid #ffd324;
        }

Проблема в том, что когда скрипт выполняется без die(), он правильно показывает ошибку с помощью CSS. Когда die() реализован, код показывает пустую страницу с надписью "Пароли не совпадают!" без какого-либо стиля.

Что я могу сделать, чтобы убить сценарий PHP, но все еще есть стиль?

РЕШЕНИЕ:

Так что, увидев ответы и поняв, что кубик убивает весь сайт в этот момент. Я добавил простую строку в мой код:

ДО:

   if($pass1 != $pass2){
    echo '<div class="alert">Passwords do not match!</div>';
    die();
    }

ПОСЛЕ:

   if($pass1 != $pass2){
    echo '<link rel="stylesheet" type="text/css" href="css/structure.css">';
    echo '<div class="alert">Passwords do not match!</div>';
    die();
    }

Поэтому в основном я добавил только таблицу стилей перед оповещением, чтобы сделать оповещение стилевым.

2 ответа

Решение

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

Я проверил это с обоими exit('<div class="alert">Passwords do not match!</div>'); а также die('<div class="alert">Passwords do not match!</div>');

<!DOCTYPE html>
<head>
<style>

.alert {
        background: #fff6bf url(../images/exclamation.png) center no-repeat;
        background-position: 15px 50%; 
        text-align: center;
        padding: 5px 20px 5px 45px;
        border-top: 2px solid #ffd324;
        border-bottom: 2px solid #ffd324;
        }

</style>
</head>

<?php
$pass1="2"; // my own test variable
$pass2="3"; // my own test variable
if($pass1 != $pass2){

exit('<div class="alert">Passwords do not match!</div>');
// die('<div class="alert">Passwords do not match!</div>');

echo "Hello there"; // Will not echo

}
?>

Вы можете сделать это таким образом, используя дополнительный условный оператор вместо того, чтобы убить скрипт:

<?php
$pass1="2"; // my own test variable
$pass2="3"; // my own test variable

$var = "<div class=\"alert\">Passwords do not match!</div>";

if($pass1 != $pass2){
echo $var;
}

else{
echo "You have access.";
}

?>

<!DOCTYPE html>

<head>
<style>

.alert {
font-family:Georgia;
color:#ffff00;

        background: #fff6bf url(../images/exclamation.png) center no-repeat;
        background-position: 15px 50%; 
        text-align: center;
        padding: 5px 20px 5px 45px;
        border-top: 2px solid #ffd324;
        border-bottom: 2px solid #ffd324;
        }

</style>
</head>

Скорее всего, ваш CSS-файл будет добавлен позже в коде. При выполнении кубика (); Заявление php остановит всю дальнейшую обработку. Эффективно, не повторяя таблицы стилей.

Если вы посмотрите на источник "пустой страницы", то увидите, что она содержит:

 '<div class="alert">Passwords do not match!</div>'
Другие вопросы по тегам