Я пытаюсь обновить базу данных 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]);
}
?>
Похоже, вам не хватает 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);
?>
exec()
?if (curl_errno($ch)) { echo 'Curl error: ' . curl_error($ch); }