Как заставить работать оповещения в 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'])