1

私が開発しているシステムでは、プログラムで特定のページに移動する必要があります。フォームの 1 つのフィールドに入力し (入力要素の ID と名前はわかっています)、送信して結果を保存します。

私は、情報を取得しているサイトからもこれを行う許可を持っています。

私が抱えている問題は、スクリプトが機能していると思いますが、外部フォームの「アクション」が同じページにリダイレクトされ、結果を表に表示しているため、個人の Web ページを同じディレクトリにリダイレクトしようとするだけです。もちろん、これは私のサーバーには存在しません。

どんな助けでも大歓迎です、私がこれまでに持っているものは次のとおりです:

//extract data from the post
extract($_POST);

//set POST variables

//URL IS SET, I HAVE JUST TOOK IT OUT OF THIS CODE SNIPPET
$urltopost = 'blahblah.com';

$datatopost = array ( 
's_3_2_5_0' => 0130016825566667, 'SWEFo' => 'SWEForm3_0',  'SWEField' => 's_3_1_0_0', 'SWENeedContext' => 'true',
'W' => 't', 'SWECmd' => 'InvokeMethod', 'SWEMethod' => 'SearchForLicence', 'SWESP' => 'false', 'SWEDIC' => 'false',
'SWEReqRowId' => '0','SWEView' => 'LDL+Licence+Query+View','SWEC' => '3','SWEBID' => '1363349905','SWEGHOTO' => 'true',
'SWETS' => '1363349913267', 'SWEApplet' => 'LDL+Query+Licences');

$ch = curl_init ($urltopost);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
$returndata = curl_exec ($ch);

echo $returndata;
4

1 に答える 1

1

フォームは、リダイレクトを行う JavaScript を含む HTML を返します。

window.location.replace("/web/start.swe?SWECmd=GotoView&SWEView=LDL+Asset+Query‌​+Results+View&SWERF=1");

出力する前に $returndata からそれを削除する必要があります。とにかく、画像の URL のように、HTML には他にも多くの相対 URL があります。

結果からデータだけを抽出し、独自の HTML ページを作成することをお勧めします (SO で「PHP を使用して HTML からデータを抽出する」を検索してください)。

于 2013-04-16T11:23:01.000 に答える