2011-12-17 3 views
2

私はABCというウェブページを持っています。このウェブページには、1つの入力「ID」だけを含むフォームが含まれています。 IDを入力して送信すると、IDがサーバーに送信され、別のページに情報が印刷されます。どのようにデータを投稿し、PHPを使用してアクションページから結果を得ることができますか?

私はフォームページのウェブアドレスは知っていますが、結果ページは知っていません。

スクリプトからIDを投稿し、結果ページを変数に入れたいとします。

私が試したことを、これまでのコードは:

function getUrl($url, $method='', $vars=''){ 

    $ch = curl_init(); 
    if ($method == 'post') { 
     $str = ""; 
     foreach($vars as $var => $ele){ 
      $str .= $var; 
      $str .= "="; 
      $str .= $ele; 
      $str .= "&"; 
     } 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $str); 
    } 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'asd.txt'); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'asd.txt'); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 50000); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 50000); 

    $buffer = curl_exec($ch); 
    curl_close($ch); 
    unset($ch); 
    return $buffer; 
} 

$loginUrl = 'http://app2.sgk.gov.tr/AylikHesap/servlet/'; 
$loginFields = array('mernisno'=>'xxx'); 
$remotePageUrl = 'http://app2.sgk.gov.tr/AylikHesap/servlet/com.sgk.aylikhesap.servlet.EventMultiplexer'; 

$login = getUrl($loginUrl, 'post', $loginFields); 

$remotePage = getUrl($remotePageUrl); 

echo $remotePage; 

それは結果を持参してください。 xxxは、私が話しているIDです。

どうすればよいですか?

+1

curlの仕事のように聞こえる –

+0

私はそう思っていましたが、私は望んでいます... – gzg

+1

あなたが試して失敗したコードがあれば、それを投稿して、元の質問の枠組みよりも役に立ちます。 –

答えて

-1

CSRF

あなたはサイトからデータを取得するが、他の言葉であなたがドメイン間でフォームデータをポストすることはできませんので、ほとんどのサイトの、トークンの検証のいくつかの並べ替えを実装することができます。

+0

多分、私は十分理解していません。異なるドメインを通じてフォームにデータを投稿することは不可能であると言いますか? – gzg

+0

wikiを修正してください。 問題のサイトに公開APIがある場合を除きます。 – Philip

+0

しかし私は前にそれをしました。それはちょうどこのウェブページが私に抵抗するようです。 – gzg

1

あなたが何らかの理由でZend Frameworkのを使用しない場合、あなたはthis functionを使用することができ、この

$client = new Zend_Http_Client(); 
$client->setUri('http://example.com/login.php'); 
$client->setParameterPost('ID', 1234); 
$response = $client->request('POST'); 
$result = $response->getBody(); 

ためZend_Http_Clientを使用することができます。

+0

Zend_Http_Clientクラスを使用するためにZendフレームワークを使用する必要がありますか?ソースコードなどから手動で使用することはできますか? – gzg

+0

私の答えを編集しました。 – Alex

+0

ありがとうございますが、私の場合はうまくいきませんでした。私はどこかで間違っていると思う。あなたのソリューションは200を返す、それは素晴らしいですが、それは私に結果ページを提供していません。フォームページを印刷するだけです。 – gzg

関連する問題