PHP cURL с проверкой SS - PullRequest
       3

PHP cURL с проверкой SS

0 голосов
/ 18 февраля 2011

У меня есть несколько работающих сценариев cURL, но я проверял SS на удаленном сервере.Я хочу добавить некоторые проверки в наши сценарии cURL, чтобы, если они не были заполнены правильно, запрос не был отправлен.У меня есть проверка JS на стороне клиента, но я хочу дублировать проверку SS.Вот пример моего скрипта cURL:

<?php
$url = 'https://remoteserver.com/POST.svc/Foo';
$Field1 = $_POST["Field1"];
//other input data

$fields = array(
'Field1'=>urlencode($Field1),
//other input data
);

foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
$fields_string = rtrim($fields_string,'& ');

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);

echo $output;
curl_close($ch);
?>

Могу ли я просто создать оператор if / else, например:

<?php
if(empty($_POST['Field1']))) {
echo "Error";
die();
} else {
$url = 'https://remoteserver.com/POST.svc/Foo';
$Field1 = $_POST["Field1"];
//other input data

$fields = array(
'Field1'=>urlencode($Field1),
//other input data
);

foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
$fields_string = rtrim($fields_string,'& ');

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);

echo $output;
curl_close($ch);
}

У меня есть материал ajax, который отображается, если возвращаемое значение равноОшибка".Это не может быть так просто, правда?

thx

1 Ответ

1 голос
/ 18 февраля 2011

Вместо того, чтобы просто возвращать 'Error', почему бы не вернуть некоторые полезные вещи?Структура PHP, такая как

$request_status = array(
    'error' => 1,
    'error_msg' => 'Form was not completed properly'
    'error_details' => array(
        0 => 'Name field not completed',
        1 => 'Invalid state specified',
        2 => 'Password1 and Password 2 do not match'
    )
)

echo json_encode($request_status);

, будет гораздо полезнее.Ваш ajax-код на стороне клиента может просто найти там параметр 'error' и сказать: «Эй, это сработало!»или выполните дальнейшие действия в зависимости от предоставленных вами данных error_details, например, выделите поля формы, которые не были заполнены правильно.

Это также позволяет отправлять сообщения об ошибках других типов, например, сказать «эй,место, куда мы отбрасываем вашу форму, не отвечает "и тому подобное.

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