Как заставить работать оповещения в php

На моей странице member.php у меня есть следующие оповещения:

if (isset($_GET['success']) == 'no')
        {
            echo"<script type=\"text/javascript\">".
                "alert('You can't remove any more services! Please contact admin if you would like your account disabled');".
                "</script>";

        }        
        if (isset($_GET['success']) == 'yes') {
            echo"<script type=\"text/javascript\">".
                "alert('Your details have been updated!');".
                "</script>";

        }

В delete.php я использую следующий код: (только соответствующий код)

if($numJobs < 2)
                {
                    header('Location: member.php?success=no&username='.$username);
                    exit();
                }

В update.php я использую этот код:

if(success){
                 header('Location: member.php?success=yes&username='.$username);
                 exit ();
                }

Независимо от того, как я редактирую оповещения, оповещение 'Your details have been updated!' это все, что исполняется. В URL я вижу success = no так что я не понимаю, почему это не работает.

3 ответа

Решение
if (isset($_GET['success']) == 'no')

всегда будет ложным, поскольку isset($_GET['success']) либо true, либо false, и по сравнению со строкой 'no' все выражение будет иметь значение false.

Измените это на

if (isset($_GET['success']) && $_GET['success'] == 'no')

вроде акам правильно указано в первом комментарии к вашему вопросу.

Ваш первый блок имеет синтаксическую ошибку; вам нужно экранировать одинарные кавычки, так как строка в одинарных кавычках.

Обратите внимание на выделение синтаксиса здесь:

alert('You can't remove any more services! Please contact admin if you would like your account disabled');

Сбежал:

alert('You can\'t remove any more services! Please contact admin if you would like your account disabled');

Тем не менее, alertэто:

  • раздражающий
  • Плохой способ донести важную информацию

Просто добавьте сообщения как <div>s на странице, и стилизовать их или потом всплыть с помощью JavaScript. Доступно и менее разочаровывает!

Кроме того, сравнивая результат isset против чего-то обычно плохо, а ты сделал это дважды. Кажется, что следует прочитать, все сказали:

if (!isset($_GET['success']) || $_GET['success'] === 'no') {
    echo '<script type="text/javascript">',
         'alert("You can\'t remove any more services! Please contact admin if you would like your account disabled");',
         '</script>';
}
else {
    echo '<script type="text/javascript">',
         'alert("Your details have been updated!");',
         '</script>';
}

Обратите внимание, как я поменялся там цитатами; в противном случае вам придется дважды избегать вещей.

Если вы измените успех на 1 и 0 вместо да и нет, то вы можете просто

if ($_GET['success'])
Другие вопросы по тегам