2014-12-02 4 views
0

Мне нужно сделать сообщение с помощью PHP, но я не могу заставить его работать. низкий html запрос работаетPHP post request

<form action="http://example.com/form.php" method="post" id="form-success"> 
<input type="hidden" name="id" id="itemid" value="12345"> 
<input type="hidden" name="key" id="sh" value="79c830e5bf78218685a350cd5df3cdac"> 
<input type="submit"/> 
</form> 

Я пробовал эти два способа запросить в php, но оба не работают.

$content = http_build_query(array('id'=>'12345','key'=>'79c830e5bf78218685a350cd5df3cdac')); 

$context = stream_context_create(array(
    'http' => array(
     'method' => 'POST', 
     'content' => $content, 
    ) 
)); 

$result = file_get_contents('http://example.com/form.php', null, $context); 

echo $result; 

и

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://example.com/form.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, array('id'=>'12345','key'=>'79c830e5bf78218685a350cd5df3cdac'); 

$pagina = curl_exec ($ch); 

echo $pagina; 

не сообщение об ошибке, просто знаю, что страница не перенаправляется правильно. любые идеи? спасибо

+2

Может быть блоки сервера некоторые пользовательские агенты (или нет строки агента пользователя). Попробуйте добавить строку пользовательского агента в curl http://davidwalsh.name/set-user-agent-php-curl-spoof –

+0

Когда вы отправляете форму, вы будете перенаправлены на form.php с вашими данными в $ _POST. Что именно, не работает? Чего вы пытаетесь достичь. –

+0

изменить агент пользователя не работает! –

ответ

0

Я использую это:

function file_get_contents_post($url, $var_post = array()) { 
    define('MULTIPART_BOUNDARY', '--------------------------'.microtime(true)); 
    $header = 'Content-Type: multipart/form-data; boundary='.MULTIPART_BOUNDARY; 
    $content = '' ; 

    foreach ($var_post as $key => $value) { 
     $content .= "--".MULTIPART_BOUNDARY."\r\n". 
        "Content-Disposition: form-data; name=\"".$key."\"\r\n\r\n". 
        $value."\r\n"; 
    } 

    $content .= "--".MULTIPART_BOUNDARY."--\r\n"; 

    $context = stream_context_create(array(
     'http' => array(
       'method' => 'POST', 
       'header' => $header, 
       'content' => $content, 
     ) 
    )); 
    return file_get_contents($url, false, $context) ; 
} 
+0

не работал, по-прежнему та же проблема. –