2015-07-15 3 views
0

Я пытаюсь отправить запрос POST с помощью функции stream_context_create(), но я не получаю ожидаемый результат.Http-запрос с stream_context_create()

потока (коды ниже):

  1. index.php - принимает входные данные от пользователя через форму и представляет его submit.php.
  2. submit.php - принимает запрос POST и отображает соответствующий результат.
  3. upload.php - использует stream_context_create() для отправки запроса POST на submit.php.

коды:


index.php

<html> 
    <body> 
     <form method="POST" action="submit.php"> 
      <input type="text" name="field" /> 
      <button id="submit">Upload</button> 
      <input type="hidden" name="submit" /> 
     </form> 
     <script> 
      document.getElementById('submit') 
       .addEventListener('click', function(){ 
        document.querySelector('form').submit(); 
       }, false); 
     </script> 
    </body> 
</html> 

submit.php

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    echo "<input type='text' value='value = " . $_POST['field'] . "' />"; 
} 
else { 
    echo "form not submitted correctly"; 
} 
?> 

upload.php

<?php 
$url = 'submit.php'; 
$data = array('field' => 'Check1'); 
$options = array(
    'http' => array(
     'header' => "Content-type: application/x-www-form-urlencoded\r\n", 
     'method' => 'POST', 
     'content' => http_build_query($data), 
     ), 
    ); 
$context = stream_context_create($options); 
$fp = fopen('submit.php', 'r', false, $context); 
fpassthru($fp); 
fclose($fp); 
?> 

Выход получил при загрузке upload.php

"; } else { echo "form not submitted correctly"; } ?> 
/*******************************************************/ 


Я не знаю, что происходит не так? Любые другие решения для отправки запроса POST проверяются.

+0

Во-первых, вы должны исправить некорректный HTML. –

+0

Во-вторых, вывод, который вы показываете нам, не соответствует исходному коду, который у вас есть. Пожалуйста, напишите больше кода. –

+0

Я исправил неверный HTML (по крайней мере, по мне), но для вывода я скопировал его как таковой) – user3159395

ответ

0

Проблема была с адресом. Изменение URL из submit.php в http://localhost/submit.php сделал работу, как показано ниже:

$fp = fopen('submit.php', 'r', false, $context);

в

$fp = fopen('http://localhost/submit.php', 'r', false, $context);

+0

Исправить. Чтение * .php-файла с жесткого диска не выполняет его автоматически как скрипт. Обработка его с помощью веб-сервера с поддержкой PHP. –

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