PHP CURL POST Запрос не отправит?

0

Я пытаюсь обновить базу данных mySQL cURL и PHP, но значения, которые должны быть отправлены по почте, не будут вставлены в базу данных. Я не получаю никаких ошибок, и cURL включен в соответствии с phpinfo(). Вот мой сценарий:

<?php

  $data = [
    'email' => '[email protected]',
    'token' => '58938539'
  ];

$string = http_build_query($data);
$ch = curl_init("http://www.econcentre.com/receiver.php");

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_exec($ch);
curl_close($ch);

?>

И вот сценарий приемника:

<?php
   require 'includes/db.php';  // Database connection. Connects with no errors raised

   if(isset($_POST['email']) AND isset($_POST['token'])) {
     $email = $_POST['email'];
     $token = $_POST['token'];

     $q = "INSERT INTO reset_tokens(email, token)";
     $q .= " VALUES(?, ?)";
     $stmt = $pdo->prepare($q);
     $test = $stmt->execute([$email, $token]);
 }

?>
  • 0
    Вы проверяли ошибки скручивания после exec() ? if (curl_errno($ch)) { echo 'Curl error: ' . curl_error($ch); }
  • 0
    Спасибо за ответ. Я добавил ваше заявление if, но оно не повторило ошибку.
Показать ещё 1 комментарий
Теги:
curl
post

1 ответ

0
Лучший ответ

Похоже, вам не хватает HTTP Auth для http://www.econcentre.com/receiver.php.

Вы должны включить HTTP Auth в запрос cURL:

<?php

$data = [
    'email' => '[email protected]',
    'token' => '58938539'
];
$username = "auth-user";
$password = "auth-pwd";

$string = http_build_query($data);
$ch = curl_init("http://www.econcentre.com/receiver.php");

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$response = curl_exec($ch);
curl_close($ch);

?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню