This is supposed to be a song Organizer script that stores songs in a text file. It allows users to view the song list and prevents the same song name from being entered twice. Also, it sorts the songs by name, deletes duplicate entries, and randomizes the song list. The problem I having is whenever I click "Add song to list" the script does not create a new file and I receive an error saying "Warning: fopen(SongOrganizer/songs.txt) [function.fopen]: failed to open stream: No such file or directory on line 69". I indicated line 69 with comments. Can someone please help me?
<html>
<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");
}
}
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");
}
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";
}
}
}
if ((!file_exists("SongOrganizer/songs.txt")) || (filesize("SongOrganizer/songs.txt") == 0))
echo "<p>There are no songs in the list.</p>\n";
else
{
//THIS IS LINE 69
$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>
</html>