Попытка отправить форму, используя AJAX & cURL - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь отправить форму через cURL, похоже, что POST-метод работает нормально.Единственная проблема, которую я имею, состоит в том, что форма не отправляется.Звонок поступает с сайта home.php и используется для заполнения формы рассылки на другом сайте.Стилизация осуществляется с помощью Bootstrap.

команда cURL:

if(!empty($_POST['p-firstname'])){
    $post_data['name'] = $_POST['p-firstname'];
}

if(!empty($_POST['p-lastname'])){
    $post_data['lastname'] = $_POST['p-lastname'];
}

if(!empty($_POST['p-email'])){                                 
    $post_data['email'] = $_POST['p-email'];
}

if(!empty($_POST['submit1'])){                                 
    $post_data['submit'] = $_POST['submit1'];
}

if(!empty($_POST['p-firstname'])  &&  (!empty($_POST['p-lastname'])) && (!empty($_POST['p-email'])) && (!empty($_POST['submit1']))){ 
    foreach ( $post_data as $key => $value) 
    {
        $post_items[] = $key . '=' . $value;
    }
    $post_string = implode ('&', $post_items);

    $curl_connection = curl_init('http://www.xx.xxxx-xxxxx.com/xxxxx/contents/mail/register.php');
    curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 1000);
    curl_setopt($curl_connection, CURLOPT_TIMEOUT, 0);
    curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
    curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl_connection, CURLOPT_POST, 1);
    curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
    $result = curl_exec($curl_connection);                                   
    error_log($post_string);
    print_r(curl_getinfo($curl_connection));
    echo curl_errno($curl_connection) . '-' . 
    curl_error($curl_connection);
    curl_close($curl_connection);
}

<form action="register.php" method="post">
<?php   if ($error) { ?>
    <div class="error">There was an error subscribing you to the newsletter.</div>
    <?php } ?>

  <div class="form-group">
    <label for="name">Your first name</label>
    <input type="name" class="form-control<?php check('name')?>" name="name" id="name" placeholder="Max" value="<?= htmlentities($fields['name']); ?>">
    <div class="invalid-feedback">
      Please provide a proper first name.
    </div>
  </div>

   <div class="form-group">
    <label for="name">Your last name</label>
    <input type="name" class="form-control<?php check('lastname')?>" name="lastname" id="lastname" placeholder="Mustermann" value="<?= htmlentities($fields['lastname']); ?>">
    <div class="invalid-feedback">
      Please provide a proper last name.
    </div>
  </div>


    <div class="form-group">
    <label for="email">Email address</label>
    <input type="email" class="form-control<?php check('email')?>" name="email" id="email" placeholder="xxx@xxxxx.com" value="<?= htmlentities($fields['email']); ?>">
    <div class="invalid-feedback">
      Please provide a proper email-address.
    </div>
  </div>

  <button name="submit" value ="submit" type="submit" class="btn btn-primary">Submit</button>
</form>

Я зарегистрировал строку POST как: name=test&lastname=test&email=xxxx.xxxx@xxxx.com&submit=submit

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 17 октября 2018

Для тех, кто сталкивается с подобными проблемами, выполнение другого вызова Ajax является лучшим решением.У меня были проблемы с включенными файлами в моем register.php, поэтому вызов занял слишком много времени и времени ожидания.

$.ajax({
       type: "POST",
       async: false,
       cache: false,           
       url: "https://www.xxx.xxx/xxxx/contents/mail/register.php",
       data: { firstname:name, lastname:lastname, email:email}, 
       });      

На самом деле знание того, как отлаживать XHR-запросы с помощью Инструментов браузера, чрезвычайно полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...