3

URL を実行しようとして、その応答を取得しています。以下は、curl を実行するコードです。curl の実行で $result に文字列が返されるようにします。

<?php
$fields = array
(
'username'=>urlencode($username),
'pwrd'=>urlencode($pwrd),
'customer_num'=>urlencode($customer_num)
);

$url = 'http://localhost/test200.php';
//open connection
set_time_limit(20);
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);
echo $result; //I want $result to be "Successful"
?>

これは、localhost 上の私の test200.php です。

<?php
$usernam = $_POST['username'];
$pass = $_POST['pwrd'];
$customer_num = $_POST['customer_num'];
echo "Successful!";
?>

test200.php にどのような変更を加えますか? 助けてください。

4

3 に答える 3

2

curl の実行によって返された httpcode を使用し、返された文字列に依存しないでください。

$res = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

ここ - http://www.webmasterworld.com/forum88/12492.htm

于 2012-04-25T08:18:38.470 に答える
1

データがtest200.phpに送信されたら、ポストされた値をテーブルに挿入するなどの適切な操作を行い、成功した場合

echo "Successful!";

または、test200.php で同じものを印刷します。test200.php コードで挿入コードを実行していると仮定すると、次のようになります。

<?php
$qry = "INSERT INTO `your_table` (`field_customer_name`, `field_username`, `field_password`) VALUES ($fields['customer_num'], $fields['username'], some_encrypt_fxn($fields['pwrd']))";
mysql_query($qry);
$err_flag = mysql_error($your_conn_link);
if($err_flag == '') {
  echo "Successful!";
}
else {
  echo "Failed, Error " . $err_flag;
}
?>

「成功!」を得る目的なら、cURLが成功を返すかどうかを確認することです。返されたステータスコードを使用するというPrateikの回答を使用することをお勧めします

于 2012-04-25T08:16:08.633 に答える
0

どういうわけか単純な print("Successful"); test200.php のステートメントはうまくいきました。私が今得た応答は次のとおりです: HTTP Code: 0 Array ( [0] => [1] => Successful )

于 2013-03-07T08:34:49.623 に答える