Из-за некоторых ограничений на моем локальном веб-сервере я вынужден обрабатывать данные формы комментариев на удаленном сервере с использованием cURL.
Чего я хочу добиться: отправить данные формы с помощью cURL насценарий удаленной проверки, сценарий удаленной проверки проверяет вводимые пользователем данные на наличие ошибок. Если есть ошибки, удаленный скрипт должен отправить «конкретную» ошибку обратно в локальный скрипт. Если ошибок нет, мой сценарий удаленной проверки должен отправить мне электронное письмо, а также вывести сообщение об успешном завершении, которое я должен получить в локальном файле, и я выведу его пользователю, заполнившему форму, в случае успешной отправки или нет.
Это фрагмент моего локального файла с именем Process.php
$Email = $_POST['Email'];
$Comment = $_POST['Comment'];
$ch = curl_init();
$api ="http://RemoteServer.com/Sendmail.php";
$cu = "$api?Email=$Email&Comment=$Comment";
curl_setopt($ch, CURLOPT_URL, $cu);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
Здесь также есть фрагмент моего удаленного файла http://RemoteServer.com/Sendmail.php
/**************************************************/
//-- data and error arrays
$errors = array(); // array to hold validation errors
$data = array(); // array to pass back data
/***************************************************/
/*********** CLEAN INPUTS **************************/
// Create function to clean input
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
/******************************************************/
/********************************* VALIDATION ******************************************************/
if ( !empty($_POST)) {
/***************** DEFINE $_POST Data ************************/
$Email = test_input($_POST["Email"]);
$Comment = test_input($_POST["Comment"]);
if (empty($Email)) {
$errors['Error'] = 'Enter your email';
} elseif (!filter_var($Email, FILTER_VALIDATE_EMAIL)) {
$errors['Error'] = 'Invalid email';
} elseif (empty($Comment)) {
$errors['Error'] = 'Enter a comment';
} else {
//Send email to myself and output success
$data['success'] = true;
}
if ( ! empty($errors)) {
// if there are items in our errors array, return those errors
$data['success'] = false;
$data['errors'] = $errors;
} else {
$data['success'] = true;
// if there are no errors process our form, then return a message
}
// return all our data to an AJAX call
echo json_encode($data);
}//--END IF NOT EMPTY POST
else {
$data['success'] = false;
$data['errors'] = $errors;
}
Теперь я надеюсь достичь следующего:
внутри моего локального файла Process.php, я должен иметь возможность получать ошибки из удаленного файла Sendmail.php и использовать его таким образом:
if (errors_from_remote_file) {
//--- Redirect user to error page to notify of form validation errors
header("Location: ./Error.php");
exit();
} else {
//--- Redirect user to Success page if form successfully validated and email sent to me
header("Location: ./Success.php");
exit();
}
В данный момент я попытался
if (isset($_POST))
and if (isset($_GET))
У меня есть оба в моем удаленном файле Sendmail.php, чтобы получить данные формы, отправленные cURL из локального файла Process. php и я все еще не могу получить данные формы.
Мне действительно нужна помощь о том, как извлечь данные поста, отправленные из Process.php с помощью cURL в Sendmail.php.
Как только это произойдетЯ хочу также знать, как я могу получитьОшибки из удаленного файла Sendmail.php в моем локальном файле Process.php и использовать его для успешного перенаправления пользователя на следующие страницы в зависимости от ошибок или успешного вывода в удаленном файле Sendmail.php
Благодарявсе.