PHP + kıvırmak, HTTP POST örnek kod?

5 Cevap php

Herkes nasıl bir HTTP POST ile bir php curl yapmak için bana gösterebilir misin?

Ben bu gibi veri göndermek istiyorum:

username=user1, password=passuser1, gender=1

Için www.domain.com

Ben kıvırmak result=OK gibi bir yanıt dönmek bekliyoruz. Herhangi bir örnek var mı?

5 Cevap

Burada php / curl örnekler göreceksiniz: http://curl.haxx.se/libcurl/php/examples/, özellikle http://curl.haxx.se/libcurl/php/examples/simplepost.html


<?php
//
// A very simple PHP example that sends a HTTP POST to a remote site
//

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://www.mysite.com/tester.phtml");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            "postvar1=value1&postvar2=value2&postvar3=value3");

// in real life you should use something like:
// curl_setopt($ch, CURLOPT_POSTFIELDS, 
//          http_build_query(array('postvar1' => 'value1')));

// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec ($ch);

curl_close ($ch);

// further processing ....
if ($server_output == "OK") { ... } else { ... }

?>

Form yönlendirmeleri, kimlik doğrulama, tanımlama, SSL (https), ya da POST değişkenleri bekliyor tamamen açık bir komut dışında başka bir şey kullanıyorsa, sizin dişler gerçekten hızlı nashing başlatmak için gidiyoruz. Snoopy, bir göz atın yükü bir sürü kurmak için ihtiyacı çıkarmadan aklınızda tam olarak ne yapar.

A live example of using php curl_exec to do an HTTP post:

Foobar.php adlı bir dosyada bu koyun:

<?php
  $ch = curl_init();
  $rainbowdash = "bestpony";
  $fields = array( 'myvalues'=>$rainbowdash, 'spammity'=>'mcspam');
  $postvars = ''; 
  foreach($fields as $key=>$value) {
    $postvars .= $key . $value;
  }
  $url = "https://login.yahoo.com/config/login_verify2?.src=finance:80";
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_POST,count($fields));
  curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
  curl_setopt($ch,CURLOPT_TIMEOUT, 20);
  $response = curl_exec($ch);
  print "curl response is:" . $response;
  curl_close ($ch);

?>

Sonra php foobar.php, o ekrana çıktı bu tür dökümleri komutu çalıştırın:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Sign in to Yahoo</title>

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<body>
  A mountain of content is returned, removed for great justice.
</body>
</html>

Yani yahoo.com için bir PHP POST yaptım ve onu gökkuşağı çizgi iyi midilli olduğunu ısrar veri gönderdi ve sunucu sonrası verileri göz ardı ve size giriş olduğunu söyler içeriğin bir dağ verdi.

Sunucu sonrası değişkenleri okumak için programlanmış olsaydı, o dayalı farklı bir şey yapmaya karar verebilir.

Eğer kendi web sitesi bilgi aktardığı IF Bir basit cevabı OTURUM değişken kullanmaktır. Ile php sayfası başlayın:

session_start();

Bir noktada PHP oluşturmak ve bir OTURUM değişkene atamak yerine bir POST değişkeni kullanarak, oturumda bir sonraki sayfaya geçmek istediğiniz bilgi varsa. Örnek:

$_SESSION['message']='www.'.$_GET['school'].'.edu was not found.  Please try again.'

Ardından bir sonraki sayfada sadece bu OTURUM değişken başvuru. NOT: Bunu kullandıktan sonra, onu yok emin olun, bu nedenle kullanılan sonra kalıcı değil:

if (isset($_SESSION['message'])) {echo $_SESSION['message']; unset($_SESSION['message']);}

Here are some boilerplate code for PHP + curl http://www.webbotsspidersscreenscrapers.com/DSP_download.php

Bu kütüphane dahil gelişimini kolaylaştıracaktır

<?php
# Initialization
include("LIB_http.php");
include("LIB_parse.php");
$product_array=array();
$product_count=0;

# Download the target (store) web page
$target = "http://www.tellmewhenitchanges.com/buyair";
$web_page = http_get($target, "");
    ...
?>