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"
?>

这是我在本地主机上的 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 回答