表格提交留在同一页面,使用curl发布

时间:2014-11-18 20:22:18

标签: php curl

我有一个表单(form.php)和一个处理表单(record.php)的页面。我希望用户在提交表单时留在form.php上,所以我一直在使用curl。目前,当我加载页面时,它只是缓冲了几个小时而且没有做任何事情,我不知道为什么。这就是我的form.php

<?php
       function post_to_url($url, $data) {
       $fields = '';
       foreach($data as $key => $value) { 
          $fields .= $key . '=' . $value . '&'; }
       rtrim($fields, '&');        
       $post = curl_init();        
       curl_setopt($post, CURLOPT_URL, $url);
       curl_setopt($post, CURLOPT_POST, count($data));
       curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
       curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
       $result = curl_exec($post);
       curl_close($post);
       }
       if(isset($_POST["ename"])){
       $ename = $_POST["ename"];
       $message = $_POST["message"];
       $etype = $_POST["etype"];
       $date = $_POST["datepicker"];
       $question = $_POST["question"];
       $rtype = $_POST["rtype"];
       $allowed1 = strtolower($_POST["allowed1"]);
       $allowed2 = strtolower($_POST["allowed2"]);
       $allowed3 = strtolower($_POST["allowed3"]);
       $allowed4 = strtolower($_POST["allowed4"]);
       $eforward = strtolower($_POST["eforward"]);
       $data = array(
       "ename" => "$ename",
       "message" => "$message",
       "etype" => "$etype",
       "date" => "$$date",
       "question" => "$question",
       "rtype" => "$rtype",
       "allowed1" => "$allowed1",
       "allowed2" => "$allowed2",
       "allowed3" => "$allowed3",
       "allowed4" => "$allowed4",
       "eforward" => "$`enter code here`eforward"
        );

    post_to_url("URL to Post to", $data);

    }

    ?>

    <form id="form" name="form" method="post" action="form.php">
      <label for="ename">Event Name</label>
      <input name="ename" type="text" id="ename">
      <label for="message">Message</label>
      <textarea name="message" id="message"></textarea>
      <label for="etype">Response Required</label>
      <select name="etype" size="2" id="etype">
        <option value="0" selected="selected">No</option>
        <option value="1">Yes</option>
      </select>
     Event Resender End Date: 
      <input name="datepicker" type="text" id="datepicker" size="10">
    MM/DD/YYYY <select name="eforward" id="eforward">
                    //dynamic select            </select><br>
      <label for="question">Question for responses</label>
    <input type="text" name="question" id="question" maxlength="18"><br>
      <label for="rtype">Response Type</label>
      <select name="rtype" size="3" id="rtype">
        <option value="0" selected="selected">Standard Yes/No Response</option>
        <option value="1">Create Responses</option>
        <option value="2">Get Users Own Response</option>
      </select>
Response Options<br>Only 1 Response option is required.<br></h4>
        <label for="allowed1">Option 1</label>
        <input type="text" name="allowed1" id="allowed1" maxlength="12">Max Length = 12
        <label for="allowed2"><br>
          Option 2</label>
        <input type="text" name="allowed2" id="allowed2" maxlength="12">
        <br>
          <label for="allowed3">Option 3</label>
          <input type="text" name="allowed3" id="allowed3" maxlength="12">
          <label for="allowed4"><br>
            Option 4</label>
          <input type="text" name="allowed4" id="allowed4" maxlength="12">
           </div>
        </div>
         <input name="submit" type="submit" value="Send Event Message">
         </form>

1 个答案:

答案 0 :(得分:1)

好的,这根本不是curl的目的......

想象一下:

你有你的服务器 - 你的PHP代码运行的地方,你有你的客户端,你发送HTML / CSS / JS的人 -

这个页面永远缓冲的原因是因为curl正在运行,但无济于事,因为你使用它不正确。

当您希望服务器与其他服务器通信时,使用Curl。

现在 - 如果你希望你的表单正常工作,不要使用CURL,使用AJAX ---有很多教程,但这个是我的最爱,我是如何学习如何使用AJAX-- / p>

检查出来:

http://www.elated.com/articles/slick-ajax-contact-form-jquery-php/