我的歌曲组织者脚本显示其他回声当它应该';t.第67行.我该如何修复它


My SongOrganizer Script displays else echo when it shouldn't. Line 67. How do I fix it?

在我的脚本第67行,在我将任何歌曲添加到列表之前,会显示echo语句"Your Song has been added to the list"。有人能告诉我为什么吗?它位于注释步骤8和步骤9之下。我已经用superpreme text 3设置了xdebug,但我不知道如何使用它。当我设置断点并运行脚本时,我在上下文窗格中得到了一堆未初始化的变量。

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<title>Song Organizer</title>
</head>
<body>
<h1>Song Organizer</h1>
<?php
    if (isset($_GET['action'])) {
        if ((file_exists("SongOrganizer/songs.txt")) && (filesize("SongOrganizer/songs.txt") != 0)) {
            $SongArray = file("SongOrganizer/songs.txt");
            switch ($_GET['action']) {
                case 'Remove Duplicates':
                    $SongArray = array_unique($SongArray);
                    $SongArray = array_values($SongArray);
                    break;
                case 'Sort Ascending':
                    sort($SongArray);
                    break;
                case 'Shuffle':
                    shuffle($SongArray);
                    break;
            } // End of the Switch Statement

            if (count($SongArray)>0) {
                $NewSongs = implode($SongArray);
                $SongStore = fopen("SongOrganizer/songs.txt", "wb");
                if ($SongStore === false)
                    echo "There was an error updating the song file'n";
             else {
                fwrite($SongStore, $NewSongs);
                fclose($SongStore);
                }
            }
            else
                unlink("SongOrganizer/songs.txt");
        }
    }

    // Step 7
    if (isset($_POST['submit'])) {
        $SongToAdd = stripslashes($_POST['SongName']) . "'n";
        $ExistingSongs = array();
        if (file_exists("SongOrganizer/songs.txt") && filesize("SongOrganizer/songs.txt") > 0) {
            $ExistingSongs = file("SongOrganizer/songs.txt");
        }
    }   
            // Step 8 and Step 9    
            if (in_array($SongToAdd, $ExistingSongs)) {
                echo "<p>The song you entered already exists!<br />'n";
                echo "Your song was not added to the list.</p>";
            } else {
                $SongFile = fopen("SongOrganizer/songs.txt", "ab");
                if ($SongFile === false)
                    echo "There was an error saving your message!'n";
                else {
                    fwrite($SongFile, $SongToAdd);
                    fclose($SongFile);
                    echo "Your Song has been added to the list.'n";
                }
            }
    // Step 10
    if ((!file_exists("SongOrganizer/songs.txt")) || (filesize("SongOrganizer/songs.txt") == 0))
        echo "<p>There are no songs in the list.</p>'n";
    else {
        $SongArray = file("SongOrganizer/songs.txt");
        echo "<table border='"1'" width='"100%'" style='"background-color:lightgray'">'n";
        foreach ($SongArray as $Song) {
            echo "<tr>'n";
            echo "<td>" . htmlentities($Song) . "</td>";
            echo "</tr>'n";
        }
        echo "</table>'n";
    }
?>
<p>
<a href="SongOrganizer.php?action=Sort%20Ascending">Sort Song List</a><br />
<a href="SongOrganizer.php?action=Remove%20Duplicates">Remove Duplicate Songs</a><br />
<a href="SongOrganizer.php?action=Shuffle">Randomize Song List</a><br />
</p>
<form action="SongOrganizer.php" method="post">
<p>Add a New Song</p>
<p>Song Name: <input type="text" name="SongName" /></p>
<p><input type="submit" name="submit" value="Add Song to List" /><input type="reset" name="reset" value="Reset Song Name" /></p>
</form>
</body>
</html>

我认为问题的答案是步骤8和步骤9应该是步骤7中的嵌套if语句。像这样:

// Step 7
if (isset($_POST['submit'])) {
    $SongToAdd = stripslashes($_POST['SongName']) . "'n";
    $ExistingSongs = array();
    if (file_exists("SongOrganizer/songs.txt") && filesize("SongOrganizer/songs.txt") > 0) {
        $ExistingSongs = file("SongOrganizer/songs.txt");

        // Step 8 and Step 9    
        if (in_array($SongToAdd, $ExistingSongs)) {
            echo "<p>The song you entered already exists!<br />'n";
            echo "Your song was not added to the list.</p>";
        } else {
            $SongFile = fopen("SongOrganizer/songs.txt", "ab");
            if ($SongFile === false)
                echo "There was an error saving your message!'n";
            else {
                fwrite($SongFile, $SongToAdd);
                fclose($SongFile);
                echo "Your Song has been added to the list.'n";
            }
        }
    }
}