如何使警报在php中工作

如何使警报在php中工作,php,http-headers,alerts,Php,Http Headers,Alerts,在my 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 disabl

在my 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>";

        }

无论我如何编辑警报,警报
“您的详细信息已更新!”是执行的全部内容。在URL中,我可以看到
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');
但是,
警报是:

  • 烦人的
  • 传达重要信息的糟糕方式
只需在页面中将消息添加为
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>';
}
if(!isset($\u GET['success'])|$\u GET['success']='no'){
回音“,
'警报(“您无法删除任何其他服务!如果您希望禁用您的帐户,请与管理员联系”);',
'';
}
否则{
回音“,
“警报(“您的详细信息已更新!”);”,
'';
}

注意我是如何在那里交换引号的;否则,您将不得不逃避两次;您需要转义单引号,因为字符串是单引号

if (isset($_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');
但是,
警报是:

  • 烦人的
  • 传达重要信息的糟糕方式
只需在页面中将消息添加为
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>';
}
if(!isset($\u GET['success'])|$\u GET['success']='no'){
回音“,
'警报(“您无法删除任何其他服务!如果您希望禁用您的帐户,请与管理员联系”);',
'';
}
否则{
回音“,
“警报(“您的详细信息已更新!”);”,
'';
}
注意我是如何在那里交换引号的;否则,你就得逃避两次

if (isset($_GET['success']) == 'no')
将始终为false,因为isset($\u GET['success'])为true或false,并且与字符串“no”相比,整个表达式的计算结果将为false

换成

if (isset($_GET['success']) && $_GET['success'] == 'no')
就像阿卡姆在对你的问题的第一次评论中正确陈述的那样

将始终为false,因为isset($\u GET['success'])为true或false,并且与字符串“no”相比,整个表达式的计算结果将为false

换成

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

就像akam在你问题的第一条评论中正确陈述的那样。

如果你将success改为1和0,而不是yes和no,那么你就可以

if ($_GET['success'])

如果您将success改为1和0,而不是yes和no,那么您就可以

if ($_GET['success'])

更改您的条件:
if(isset($\u GET['success'])和&$\u GET['success']='no')
更改您的条件:
if(isset($\u GET['success'])和&$\u GET['success']='no')