Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 204
  • Last Modified:

Writing a file online a WEB Browers

This is a part of a script Perl to write a file to the Server. This write it in DOS Format.
My question is what to do with this script to write it in UNIX Format ?


sub write {
    my ($directory, $filename, $data, $url) = @_;
    my ($fullfile, $new);

    (!$filename) and return "Edit File: No filename was entered!";

    ($directory =~ m,/$,) ? ($fullfile = "$directory$filename") : ($fullfile = "$directory/$filename");

existing file.
    $new = 1;
    (&exists($fullfile)) and ($new = 0);

    $data =~ s,</TEXT-AREA,</TEXTAREA,ig;

# Write the file to the system.
    open(FILE,">$fullfile") or &cgierr ("Can't open: '$fullfile'.\nReason: $!");
        print FILE $data;
    close(FILE);

    if (&exists($fullfile)) {
        ($new eq 'yes') ?
            return ("Edit File: '$filename' has been created.") :
            return ("Edit File: '$filename' has been edited.");
    }
    else {
        return  ("Edit File: Cannot save '$filename'. Check permissions.");
    }
}

Thank you for helping.

jvras
0
jvras
Asked:
jvras
1 Solution
 
shlomoyCommented:
looks like it's going to work.
0
 
jvrasAuthor Commented:
No, it's not working.

I change a perl script online and after rewrite it it's give an error.
The reason is that it's writed in DOS Format.
I have to remove the ^M and ^Z characters.
What is the code for that in this script? And where I have to place it.

Thanks
jvras
0
 
maneshrCommented:
try adding this ....


open(FILE,">$fullfile") or &cgierr ("Can't open: '$fullfile'.\nReason: $!");

binmode(FILE); ## Add this line to your program


Let me know if it works
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
monasCommented:
put
$data =~ s/(\r|\035)//gi;

right after $data =~ s,</TEXT....

I'm little unsure about \035 but this should be code of ^Z in octal.

Good Look!
0
 
jvrasAuthor Commented:
This is working correctly.
The code is for ^M but not for ^Z

Many thanks to monas

0
 
maneshrCommented:
to make it work for ^Z try this


$data=~ s/^Z//g;

NOTE: the above is not 2 chars (^ and Z) but a single char.
you can reproduce that single char in the following way, assuming you are on a UNIX based system and use vi editor.

To get ^Z char:
In vi
* press escape
* press i
* press CTRL + V and keeping the CTRL key depressed press Z.
that will give you the ^Z  char. You can use the same method to reproduce ^M.
* press escape again

if you want i can send you the script, via email, as an attachment since i cannot directly paste the code here.
0
 
jvrasAuthor Commented:
maneshr

Thanks for reply but I know the vi editor how to make special characters.

Your first responce about binmode isn't working. That is what I also thinking before but the answer of  monas  is
the best one.

Still thank you.
jvras
0
 
maneshrCommented:
you're welcome :-)
0

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now