0

在我的 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所以我不明白为什么它不起作用。

4

3 回答 3

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');

然而alerts 是:

  • 恼人的
  • 传达重要信息的糟糕方式

只需将消息添加为<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>';
}

注意我是如何在那里交换引号的;否则,您将不得不两次逃脱。

于 2013-04-21T21:56:38.117 回答
2
if (isset($_GET['success']) == 'no')

将始终为假,因为 isset($_GET['success']) 为真或假,并且与字符串“否”相比,整个表达式将评估为假。

将其更改为

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

就像在对您问题的第一条评论中正确说明的 akam 一样。

于 2013-04-21T22:02:48.360 回答
1

如果您将成功更改为 1 和 0 而不是是和否,那么您可以

if ($_GET['success'])
于 2013-04-21T22:45:30.983 回答