2014-01-10 10 views
0

Пожалуйста, помогите мне, как я могу сделать эту работу, если это й RIGH способ сделать это, и если это не то, что вы могли бы предложить, чтобы отправлять параметрыСоздать строку с для цикла, а затем использовать Curl размещать

$str = ''; 
for($i = 11; $i <= 20; $i++) 
{ 
$str .= $i . ' ';  
} 
$ch = curl_init(); //http post to another server 
curl_setopt($ch, CURLOPT_URL,"http://xxxx"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=$username&password=$password&string=$str"); 

// receive server response ... 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$server_output = curl_exec ($ch); 
print_r($server_output); 
curl_close ($ch); 
+0

В чем проблема? Какие ошибки вы получаете? Что вы ожидаете? – Kami

+0

Возможно, это проблема? – putvande

+0

Создайте значение 'CURL_POSTFIELDS' в строке перед передачей, затем используйте' curl_escape' для его кодирования - пробелы будут проблемой, предлагаемой @putvande. Кроме того, подсказка о проблеме, которую вы на самом деле имеете, будет полезна – DaveyBoy

ответ

0

Если у вас есть доступ к сценарию вы звоните с завитком, попробуйте добавить:

var_dump($_POST); 

и посмотреть, что будет напечатано.

Я просто сделал ваш код немного более читаемым. Но это правильно. Должен работать.

Попробуйте взглянуть на файл журнала php_errors и посмотреть, если он что-то срабатывает.

<?php 

$str = ''; 
for($i = 11; $i <= 20; $i++) { 
    $str .= $i . ' '; 
} 

$ch = curl_init(); //http post to another server 
curl_setopt($ch, CURLOPT_URL   , 'http://xxxx'); 
curl_setopt($ch, CURLOPT_POST   , 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS , 'username=' . $username . '&password=' . $password . '&string=' . $str); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$server_output = curl_exec ($ch); 

print_r($server_output); 

curl_close($ch); 

@Stoic Передача массива в POSTFIELDS определяет заголовок Content-type = multipart. Может изменить ответ.

+0

Когда 'google.com' начал принимать имя пользователя и пароль? –

+0

Нет реального смысла –

0

Я понимаю, что ваш код правильно, но вы можете использовать следующую функцию в качестве помощника:

<?php 
$url = "http://xxxx"; 
$str = implode(" ", range(11,20)); 
$data = array("username" => $username, "password" => $password, "string" => $str); 

$server_output = processURL($url, $data); 
print_r($server_output); 

function processURL($url, $data = array()){ 
    $ch=curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    $response = curl_exec ($ch); 
    curl_close ($ch); 
    return $response; 
} 

Обратите внимание, что, я понимаю, что с помощью range немного медленнее, чем петли for, но я как это для его читаемости и чистого кода :)

Смежные вопросы