在我的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!'
都是执行的。在网址中,我可以看到success = no
所以我不明白为什么它不起作用。
答案 0 :(得分:2)
你的第一个块有语法错误;你需要转义单引号,因为字符串是单引号。
请注意此处突出显示的语法:
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>
,然后对其进行样式化或随后使用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 :(得分:2)
if (isset($_GET['success']) == 'no')
将始终为false,因为isset($ _ GET ['success'])为true或false,并与字符串'no'进行比较,整个表达式将评估为false。
将其更改为
if (isset($_GET['success']) && $_GET['success'] == 'no')
像你在问题的第一条评论中正确陈述的akam一样。
答案 2 :(得分:1)
如果您将成功更改为1和0而不是是和否,那么您可以
if ($_GET['success'])