in reply to Re: Updated Button Question
in thread Updated Button Question

ikegami,

Actually, all I want is to be able to write the data, and redirect to new web page say it was done.

If you know of another way other than using param, it would be great. If not, all I need is the one field wriiten to the txt file.

I can do it straight, by just writing it as soon as the web page is created, but I want to give them a choice wether to write it or correct it, then write it.

Joseph A. Ruffino
Automated Systems Assistant
Gail Borden Public Library District
270 N. Grove Ave
Elgin, Il, 60120
847-742-2411 x5986

Replies are listed 'Best First'.
Re^3: Updated Button Question
by ikegami (Patriarch) on Aug 12, 2004 at 15:50 UTC

    Actually, all I want is to be able to write the data, and redirect to new web page say it was done.

    Doesn't your code already do that?

    If you know of another way other than using param, it would be great. If not, all I need is the one field wriiten to the txt file.

    The server has to be able to tell what you want to do. One option is to use a param like you did. That's very proper.

    Another way is is by having multiple scripts. Specifically, script2.cgi would be the contents of if (param('S1') eq "Send") block, and script1.cgi would have the rest. script1.cgi would specify script2.cgi in the action field of the of the <form> element.

    It's a question of prefence, but checking the param like you are already doing is probably the most straightforward.

      It does redirect to another web page, but does not write the data

      I am tryin the two script method, but it is not passing the data like I want. I did submit a new question on that also called Sending Data

      Joseph A. Ruffino
      Automated Systems Assistant
      Gail Borden Public Library District
      270 N. Grove Ave
      Elgin, Il, 60120
      847-742-2411 x5986

        Gotcha! I was assuming you were getting the proper value into $datajoin somewhere in the code that wasn't included in the code sample.

        if (!(param())) { # Do stuff # By processing data # put up web page # with formatted data $datajoin =~ s/&/&amp;/g; $datajoin =~ s/"/&quot;/g; <form> <input type="hidden" name="datajoin" value="$datajoin"> <center><input type=submit value=Send name=S1> </center></form> } else { # When it is print # Redirect to another web page if (param('S1') eq "Send") { $datajoin = param('datajoin'); validate $datajoin open (BOBIN, ">>$datefile") || die "Cannot Open File $datefile + for writing: $!"; # Open Data file print BOBIN $datajoin; print redirect("..."); } }

        Be sure to validate the data before saving it, because the user can change it! You might want to look into sessions. With sessions, only a session id is passed to the user (instead of $datajoin). The data is stored locally.