2012-04-25 46 views
3

我正在尝试执行网址并获取其响应。以下是执行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什么样的变化?请帮忙。

+0

我该怎么做? (这里是新的。) – user1051505 2012-04-25 08:25:47

回答

0

不知何故一个简单的打印(“成功”); test200.php中的声明运行良好。我现在得到的响应如下:HTTP代码:0 Array([0] => [1] =>成功)

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; 
} 
?> 

如果获得“成功!”的目的是检查是否卷曲返回成功,那么我建议使用使用返回状态代码的Prateik的答案

+0

代码执行得很好。我已经检查过了。我只是想让test200.php返回一个字符串。根据返回的字符串,我必须执行下一段代码。 – user1051505 2012-04-25 08:35:02

+0

不知怎的,一个简单的打印(“成功”); test200.php中的声明运行良好。我现在得到的回复如下: HTTP代码:0 Array ( [0] => [1] =>成功 ) – user1051505 2012-04-25 08:50:01

2

您应使用由卷曲执行返回的httpcode,而不是依赖于返回一个字符串

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

这里 - http://www.webmasterworld.com/forum88/12492.htm