2010-02-05 2 views
0

простой скриптPHP: Публикуйте данные с заголовками .... не работает

<?php 
$host = "mysite.com"; 
$path = "/test.php"; 
$data = "drivingMeCrazy"; 
$data = urlencode($data); 

header("POST $path HTTP/1.1\r\n"); 
header("Host: $host\r\n"); 
header("Content-type: application/x-www-form-urlencoded; charset=utf-8\r\n"); 
header("Content-length: " . strlen($data) . "\r\n"); 
header("Connection: close\r\n\r\n"); 
header($data); 
?> 

При выполнении этого, мой сервер просто дает мне Внутренняя ошибка. Все, что мне нужно сделать, это просто ... ПОСТ. Ничего больше. Мне не нужен ответ или что-то еще.

Следующие функции отсюда: http://www.sixapart.com/pronet/docs/trackback_spec.

ответ

0

нашел ответ, который я искал здесь:

http://bytes.com/topic/php/answers/1211-doing-http-post

Curl бы работал. Я просто хотел сделать эту работу на другой платформе, поэтому я хотел найти самый прямой способ. Еще раз спасибо.

2

header function предназначен для установки заголовка ответа. Если вы хотите сделать запрос на другой сервер, попробуйте cURL.

+0

Спасибо за исправление моего сообщения. Как вы добавляете код здесь, хотя ... серьезно? :) Я знаю, что есть кнопка кода, но я ненавижу наличие пустых, невидимых пространств, которые, я думаю, нужно вводить между ними. Есть ли способ использовать теги, такие как [код] или что-то еще? который будет отформатировать его правильно и дать вам возможность увидеть, где вы на самом деле вставляете код. –

+0

@Senica Префикс каждой строки кода с 4 пробелами или использование обратных тиков (ключ ~) для разметки 'code' inline. Отредактируйте сообщение, и вы увидите, как другие улучшили разметку. – meagar

1

Вы не можете использовать header() для отправки данных на сторонний сервер. header() просто отправляет информацию заголовка клиенту, отправляя запрос на ваш веб-сервер.

Посмотрите в завиток библиотеку для инициирования запросов на 3 стороны с вашего сервера на стороне PHP:

http://ca.php.net/manual/en/book.curl.php

Я не могу ручаться за эту библиотеку, но это, кажется, свободно распространяемая реализация Trackbacks для PHP:

http://sourceforge.net/projects/phptrackback/

2

Вы ищете что-то вроде этого:

$process = curl_init($host);                   
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders)); //<-- update to reflect your content-type 
curl_setopt($process, CURLOPT_HEADER, 1);                   
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password); // <-- you probably don't need that             
curl_setopt($process, CURLOPT_TIMEOUT, 30);                   
curl_setopt($process, CURLOPT_POST, 1);                    
curl_setopt($process, CURLOPT_POSTFIELDS, $payloadName);                
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);                 
$return = curl_exec($process); 
+0

s/your/you/i – meagar

+0

Хорошо - исправлено! wooooooooo –

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