What I am trying to do is develop a manager for albums and songlist. I have gotten most of it done. However, here I am having problems with Perl keeping the values set via a form hidden field. --
this is how the link looks when the script is called.. song_admin.cgi?name=Test&file=Test.txt&artists=teste the file is what opendir uses to obtain the records.. etc etc.. here are the hidden fields that get their values once the &parseform sub is done.. print "<input type=\"hidden\" name=\"name\" value\"$nameHead\">"; print "<input type=\"hidden\" name=\"file\" value\"$filename\">"; print "<input type=\"hidden\" name=\"artists\" value\"$Artist\">"; this is what gets returned when I do a get after I try to delete the data song_admin.cgi?name=&file=&artists=&item=1&delete=delete What I would expect as a return value is song_admin.cgi?name=Test&file=Test.txt&artists=teste&item=1&delete=delete this way it still reads from the same file. Let me know thanks.. Ray #written by Ray Alba - link manager for#file called group_view.cgi #written Feb 19,2002 use CGI; my ( $filename, $delete, $item, $new_row, $fields, $groupTab, $nameGroup, @nline, @line, $results, $path, $nameHead, $Artist ); &parse_form(*thisform); $path = "your path"; # has to change when we move the site to server.. $fields = 5; # Number of fields in each record $results = 1000; # maximum number of results to display print "Content-type: text/html\n\n"; #must do to check etc.. if($nameGroup ne "") { $filename = "$nameGroup"; # The database text file }else{ &print_error; } &open_file("FILE1","",$filename); print "<html><head><title>DELETE EM</title>"; print "<script language=JavaScript>\n\n \n\n"; print "function confirmME() { confirm(\"Are you sure you want to delete this record\");}\n</script>\n\n"; print "</head><body bgcolor=ffffff>"; print "<form method=\"GET\" action=\"song_admin.cgi\" name=\"delLink\">\n"; print "<table border=1 width=90%>"; print "<tr>"; print "<td height=40 colspan=5 align=left valign=bottom> <blockquote><h3>$nameHead - $Artist</h3></blockquote> </td></tr>"; print "<input type=\"hidden\" name=\"name\" value\"$nameHead\">"; print "<input type=\"hidden\" name=\"file\" value\"$filename\">"; print "<input type=\"hidden\" name=\"artists\" value\"$Artist\">"; $count =0; while ((@line = &read_file(FILE1)) && ($count < $results)) { @nline = @line; $count++; } #read lines in as an array #@nline = sort {$a cmp $b} @nline; #sort lines # how data is stored song|songtime|theme|style|lyrics|realname|mpname for ($i =0; $i < scalar(@nline); $i++) { @tab = split(/\s*\|\s*/,$nline[$i],$fields); $song = $tab[0]; $songtime = $tab[1]; $theme = $tab[2]; $style = $tab[3]; $lyrics = $tab[4]; $realname = $tab[5]; $mpname = $tab[6]; $vocals = $tab[7]; #put here to show array count to determine record id &print_file; } print "</td></tr></table><p><p><p><p align=center> <input type=submit name=\"delete\" value=\"delete\" onClick=\"confirmME()\"></p></form></body><html>"; if($count ==0) { &print_error; } sub print_file { $newCount = $i + 1; print "<tr>\n <td colspan=5 align=left valign=top ><input type=\"radio\" name=\"item\" value=\"$newCount\" onClick=\"dimDelOff()\"> delete <<a href=sdfasx.cgi?item=$count>edit</a>><center>\n <table width=90% cellspacing=0 cellpadding=5 border=0>\n <tr bgcolor=\"#abcdef\">\n <td align=right valign=top width=35><div type=\"text/css\" style=\"font-size: 16px;\"><b>$newCount.</b> </div></td>\n <td align=left valign=top><div type=\"text/css\" style=\"font-size: 16px;\"><b>$song</b></div></td>\n <td align=right valign=top>$songtime</td></tr>\n <tr>\n <td> </td>\n <td valign=top align=left>"; if($vocals) { print "Lead Vocals: " . $vocals . "<br>"; } print "Style: $style<br>Theme: $theme<br><center>\n"; $song =~ s/'//g; print "<A HREF=\"javascript:displayme('mp3/$mpname','100','100','$song','mp3')\">MP3</ a> - \n"; if(stat("$path/real/$realname")) { print "<A HREF=\"javascript:displayme('real/$realname','100','100','$song','real')\">R eal</a> - \n"; } if($lyrics) { print "<a href=\"javascript:displaylyrics('lyric_popup.shtml?pos=$i&file=$filename')\" >Lyrics</a></center><br><br>\n"; }else{ print "no lyrics"; } print "</td></tr></table>"; } sub open_file { ($filevar, $filemode, $filename) = @_; if(open ($filevar,$filemode . $filename) ){ open ($filevar,$filemode . $filename) }else { &print_error; } } sub open_file1 { ($filevar, $filemode, $groupTab) = @_; if(open ($filevar,$filemode . $groupTab) ){ open ($filevar,$filemode . $groupTab) }else { &print_error; } } sub read_file { local ($filevar) = @_; <$filevar>; } sub print_error { print "<h3>Sorry there are no links at this time for this category<br></h3>"; exit; } #for parsing form data sub parse_form { local (*FORM_DATA) = @_; local ($method,$query,@key_value_pairs,$key_value,$key,$value); $method = $ENV{'REQUEST_METHOD'}; if ($method eq "GET") { $query = $ENV{'QUERY_STRING'}; }elsif($method eq "POST") { read(STDIN, $query, $ENV{'CONTENT_LENGTH'}); }else{ print "ERROR unsupported method"; } #print $query , "\n"; @key_value_pairs = split (/&/, $query); foreach $key_value (@key_value_pairs) { ($key, $value) = split(/=/, $key_value); $value =~ tr/+/ /; #print $key_value; $value =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C", hex ($1))/eg; $FORM_DATA{$key} = $value; #print "$key = $value<br>"; #print "$FORM_DATA{formname}"; $item = $FORM_DATA{'item'}; #changing the file so that the value is more consistant. $nameGroup = $FORM_DATA{'file'}; $nameHead = $FORM_DATA{'name'}; $Artist = $FORM_DATA{'artists'}; #convert tags with HTML $nameGroup =~ s/</\</g; if ($value eq "$FORM_DATA{'delete'}") { $delete = $FORM_DATA{'delete'}; #print "DELETE <br>"; $nameGroup = $FORM_DATA{'file'}; $nameHead = $FORM_DATA{'name'}; $Artist = $FORM_DATA{'artists'}; #convert tags with HTML $nameGroup =~ s/</\</g; &delete_from; exit; } } } sub delete_from { #print "Content-type: text/html\n\n"; #$filename = "albums.txt"; # The database text file $path ="/home/dots/public_html/gagorder/webdocs/gagorder"; #used to unlink media files &open_file("FILE1","",$filename); while (@line = &read_file(FILE1)){ $item =$item - 1; #print "item =" .$item; @database_row = @line; $x = $database_row[$item]; @new_tab = split(/\|/ , $x ); #get name of group for use after we close this file $groupTab = "$new_tab[1].txt"; #here now we must delete the album cover @getAlbumCover = split(/\s*\|\s*/,$database_row[$item]); unlink("$path/image_media/$getAlbumCover[4]"); #now delete the song list record by using the delete function delete($database_row[$item]); #print out the new values for($i = 0; $i <= scalar(@database_row); $i++) { if ($i == 0) { open (FILE1, ">$filename") || die "Cannot open File"; print FILE1 "$database_row[$i]"; }else{ print FILE1 "$database_row[$i]"; } } close (FILE1); } # End of while (<FILE1>) close (FILE1); if (-e $groupTab) { #print "grouptab = $groupTab"; &delete_song_list; } }#close sub sub delete_song_list { $path ="yourpath"; #used to unlink media files #if a song list exist for this album, we must delete all the media files associated with these items. #the real and mp3 files are indexes 5 and 6 in the songs list file must read in file then delete files then unlink #$realname = $tab[5]; #$mpname = $tab[6]; &open_file("MUSICFILE","",$groupTab); while ($songline = &read_file(MUSICFILE)){ @songtab = split(/\s*\|\s*/,$songline); unlink("$path/real/$songtab[5]"); unlink("$path/mp3/$songtab[6]"); } close (MUSICFILE); unlink($groupTab); } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]