processing 2 things in one form. is it possible?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • crescent_au@yahoo.com

    processing 2 things in one form. is it possible?

    hi all,

    i am creating a form that returns to itself like this:
    <form name="form1" action="<?php echo $_REQUEST['PHP_SELF']; ?>"
    method="post">

    Upon clicking submit, I want the form to return to "itself" (does the
    input fields validation). If the validation is false, the initial input
    values are displayed on the fields. If the validation is correct, it
    should go to an external file (on different server) and does the rest
    of the processing such as sending mail or writing to a file, etc (could
    be anything). There are basically 2 tasks here. Is this achievable in a
    single form. I tried to include external file after validation but it
    fails to call a function inside that file as the file resides on a
    different server.

    Can someone show me the right direction?

    Thanks

  • pittendrigh

    #2
    Re: processing 2 things in one form. is it possible?


    crescent...@yah oo.com wrote:
    Upon clicking submit, I want the form to return to "itself" (does the
    input fields validation). If the validation is false, the initial input
    values are displayed on the fields. If the validation is correct, it
    should go to an external file (on different server) and does the rest
    of the processing such as sending mail or writing to a file, etc (could
    be anything).
    if($_SERVER['REQUEST_METHOD '] == 'GET')
    {
    ...show the form
    }
    elseif post
    {
    validate the post vars
    if success
    use the header() function to jump the external page
    else
    show the form again, you'll still have
    the $_POST array hanging around to initialize
    the form elements with, so the form looks
    like it did just before the first submit
    }

    Comment

    • Johnny

      #3
      Re: processing 2 things in one form. is it possible?


      "pittendrig h" <Sandy.Pittendr igh@gmail.comwr ote in message
      news:1159971142 .114178.260610@ m73g2000cwd.goo glegroups.com.. .
      >
      crescent...@yah oo.com wrote:
      >
      Upon clicking submit, I want the form to return to "itself" (does the
      input fields validation). If the validation is false, the initial input
      values are displayed on the fields. If the validation is correct, it
      should go to an external file (on different server) and does the rest
      of the processing such as sending mail or writing to a file, etc (could
      be anything).
      >
      if($_SERVER['REQUEST_METHOD '] == 'GET')
      {
      ...show the form
      }
      elseif post
      {
      validate the post vars
      if success
      use the header() function to jump the external page
      else
      show the form again, you'll still have
      the $_POST array hanging around to initialize
      the form elements with, so the form looks
      like it did just before the first submit
      }
      >
      The only problem I see with that is that the OP probably wants to take data
      along to the new script(on different server) and header won't do that by
      itself afaik. You may need to use curl to repost your data to the other
      server.


      Comment

      • Nick  Ashley

        #4
        Re: processing 2 things in one form. is it possible?

        One solution is to use fsockopen to post the data to the other server.
        Create a function which takes as input a URL to post to, and an array
        of variables to be posted. This function could then connect the URL,
        post the data, and return the response. Note that the response will
        contain all data return from the server (including headers). Therefore,
        the remote server's page should echo results in an easily parsable
        form. I usually do something along the lines of:

        <!-- OUTPUT STARTS HERE -->
        <result>1</result>

        This way you can easily cut off the headers, and look at the actual
        result of the operation. Here is a code snippet of using fsockopen:

        $request.="POST ".$URL_Info["path"]." HTTP/1.1\r\n";
        $request.="Host : ".$URL_Info["host"]."\r\n";
        $request.="Refe rer: $referrer\r\n";
        $request.="Cont ent-type: application/x-www-form-urlencoded\r\n" ;
        $request.="Cont ent-length: ".strlen($data_ string)."\r\n";
        $request.="Conn ection: close\r\n";
        $request.="\r\n ";
        $request.=$data _string."\r\n";


        $fp = fsockopen($URL_ Info["host"],$URL_Info["port"]);
        fputs($fp, $request);
        while(!feof($fp )) {
        $result .= fgets($fp, 128);
        }
        fclose($fp);

        On Oct 4, 8:38 am, "Johnny" <removethis.huu an...@hotmail.c omwrote:
        "pittendrig h" <Sandy.Pittendr ...@gmail.comwr ote in messagenews:115 9971142.114178. 260610@m73g2000 cwd.googlegroup s.com...
        >
        >
        >
        >
        >
        crescent...@yah oo.com wrote:
        >
        Upon clicking submit, I want the form to return to "itself" (does the
        input fields validation). If the validation is false, the initial input
        values are displayed on the fields. If the validation is correct, it
        should go to an external file (on different server) and does the rest
        of the processing such as sending mail or writing to a file, etc (could
        be anything).
        >
        if($_SERVER['REQUEST_METHOD '] == 'GET')
        {
        ...show the form
        }
        elseif post
        {
        validate the post vars
        if success
        use the header() function to jump the external page
        else
        show the form again, you'll still have
        the $_POST array hanging around to initialize
        the form elements with, so the form looks
        like it did just before the first submit
        }The only problem I see with that is that the OP probably wants to take data
        along to the new script(on different server) and header won't do that by
        itself afaik. You may need to use curl to repost your data to the other
        server.

        Comment

        Working...