Curl ve php ile POST veri gönderme

3 Cevap php

Selamlar.

Yani, ben bir Amazon EC2 Fedora Core 8 koşuyorum. Ben httpd, php5 ve libcurl ve diğer şeyler bir grup kurdum. Harika çalışıyor gibi görünüyordu, ama sonra POST veri benim php komut kıvrılmayla tarafından gönderilen olmadığını fark etti. Komut satırında aynı isteği Tho çalışır. Ben de benim yerel makinede (Win XP) ve başka bir uzak makineye (Ubuntu) aynı php scriptler koştu ve onlar iyi çalıştırmak, POST veri gönderilen, ancak FC8 üzerinde. Herhangi bir özel yapılandırma gerektirir mi? Herhangi bir güvenlik duvarı sorunları?

Burada PHP kodu:

error_reporting(E_ALL);
$ch = curl_init("http://foller.me/tmp/postdump.php");
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, "something=somewhere");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);

$response = curl_exec($ch);

echo $response;
curl_close($ch);

İşte gelen curl komutu var:

curl -d "something=somethingelse" http://foller.me/tmp/postdump.php

Ben de apache error_log karşılık gelen girişi buldum, ve burada ben ile geldi ne:

* About to connect() to foller.me port 80 (#0)
*   Trying 75.101.138.148... * connected
* Connected to foller.me (75.101.138.148) port 80 (#0)
> GET /tmp/postdump.php HTTP/1.1
Host: foller.me
Accept: */*

< HTTP/1.1 200 OK
< Date: Tue, 07 Jul 2009 10:32:18 GMT
< Server: Apache/2.2.9 (Fedora)
< X-Powered-By: PHP/5.2.6
< Content-Length: 31
< Connection: close
< Content-Type: text/html; charset=UTF-8
< 
* Closing connection #0

POST verileri, bkz gönderiliyor değil mi? Herhangi bir fikir?

Thanks in advance everyone. ~ K.

3 Cevap

Bu GET POST isteği döner gibi görünüyor:

curl_setopt($ch, CURLOPT_NOBODY, 0);

Bu satırı kaldırmak ve çalışır.

CURLOPT_NOBODY

A non-zero parameter tells the library to not include the body-part in the output. This is only relevant for protocols that have separate header and body parts.

Bu alanda bir uzman ama biraz farklı çalışıyor benim kendi çalışma kodu var. Belki bu yardımcı olacaktır

// Open the cURL session
	$curlSession = curl_init();

	// Set the URL
	curl_setopt ($curlSession, CURLOPT_URL, $url);

It) ilk önce daha sonra, url ayarlar (curl_init yapar ...

$rawresponse = curl_exec($curlSession);

yani ... Hiçbir fikrim yok ama belki url ayarladıktan sonra nasılsa bir fark yaratıyor?

Ayrıca gördüm this post yerine dize bir dizi olarak sonrası alanları gönderme işaret ettiği