我的SongOrganizer脚本在不应该显示时显示其他回声。第67行。如何解决?

时间:2016-03-24 17:16:53

标签: php

在第67行的脚本中,在我将任何歌曲添加到列表之前,回显声明“您的歌曲已添加到列表中”显示。谁能告诉我为什么?它是在评论步骤8和步骤9下。我有xdebug设置了sublime文本3但我不知道如何使用它。当我设置断点并运行脚本时,我在Context窗格中得到了一堆未初始化的变量。

  <!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>

1 个答案:

答案 0 :(得分:0)

我认为答案是我的问题是第8步和第9步应该是步骤7中的嵌套if语句,如下所示:

onCreate