2016-03-24 6 views
0

私のスクリプトでは、リストに曲を追加する前に、echo文 "あなたの曲がリストに追加されました"が表示されます。なぜ誰かが私に言うことができますか?コメントのステップ8とステップ9の下にあります。私はxdebugに崇高なテキスト3を設定しましたが、それを使う方法についての手がかりはありません。私がブレークポイントを設定し、スクリプトを実行すると、コンテキストペインに初期化されていない変数がたくさんあります。My SongOrganizer Scriptは、そうしてはいけないときはelse echoを表示します。 67行目。どうすれば修正できますか?

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

をエラー:error_reporting(E_ALL);\t ini_set( 'display_errors'、1); – Olympus

+0

また、「File found、continue execution」というエコーを追加しました。 - 最初のネストされたif文の直後 – Olympus

+0

私はまだ問題を見つけることができません – Olympus

答えて

0

私は私の問題は、ステップ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"; 
      } 
     } 

    } 
} 
関連する問題