| Viewing file:  save_html.cgi (1.24 KB)      -rwxr-xr-x Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
#!/usr/bin/perl# Write data from an HTML editor
 
 require './file-lib.pl';
 $disallowed_buttons{'edit'} && &error($text{'ebutton'});
 &ReadParseMime();
 &error_setup($text{'html_err'});
 
 # Get the original file contents, in case we need to preserve the head
 $p = $in{'file'};
 &switch_acl_uid_and_chroot();
 $olddata = &read_file_contents($p);
 if ($olddata) {
 ($oldhead, $oldbody, $oldfoot) = &html_extract_head_body($olddata);
 }
 
 # Try to write the file
 if ($access{'ro'} || !&can_access($p)) {
 &popup_error(&text('edit_eaccess', $p));
 }
 elsif (-l $p && !&must_follow($p)) {
 &popup_error(&text('edit_efollow', $p));
 }
 elsif (!&open_tempfile(FILE, ">$p", 1)) {
 &popup_error("$!");
 }
 else {
 # Fix up HTML head, and write it out
 $in{'body'} =~ s/\r//g;
 $in{'body'} =~ s/^\s+//g;
 $in{'body'} =~ s/\s+$//g;
 if ($oldhead && $in{'body'} !~ /<body[\000-\377]*>/i) {
 &print_tempfile(FILE, $oldhead.$in{'body'}.$oldfoot);
 }
 else {
 &print_tempfile(FILE, $in{'body'});
 }
 &close_tempfile(FILE);
 
 # Show JS to close page
 &popup_header($text{'html_title'});
 
 $info = &file_info_line($p);
 print "<script>\n";
 print "opener.document.FileManager.",
 "upload_notify(\"$p\", \"$info\");\n";
 print "close();\n";
 print "</script>\n";
 
 &popup_footer();
 }
 
 |