1

こんにちは、PHP と Curl を使用して Web サイトにログインしようとしています。私が抱えている問題は、ログインしたい Web サイトの入力フィールドの名前に、スクリプトが変数と見なす名前があることです。そのため、スクリプトを実行すると、未定義の変数というエラーが表示されます。

$fields = "ctl00$MainContent$EmailText=xxxx@xxxx.com&ctl00$MainContent$PasswordText=xxxx";

私が得ているエラーは次のとおりです。

Notice: Undefined variable: MainContent 

Notice: Undefined variable: EmailText

Notice: Undefined variable: PasswordText

これを回避する方法はありますか?

4

3 に答える 3

3

一重引用符を使用します。

$fields = 'ctl00$MainContent$EmailText=xxxx@xxxx.com&ctl00$MainContent$PasswordText=xxxx';
于 2012-09-16T20:52:06.387 に答える
2

はい、文字列を二重引用符ではなく単一引用符で囲みます。

于 2012-09-16T20:52:04.493 に答える
2

変数定義の " の代わりに ' を使用すると、php は内部のコンテンツを解釈しません。参照: http://php.net/manual/en/language.types.string.php

さらに、post-field の処理には常に curl オプション CURLOPT_POSTFIELDS を使用します。これにより、値を含む配列を送信できるため、より美しいコードが得られます。

$curlhandle = curl_init();
$post_values = array(
    'ctl00$MainContent$EmailText' => 'xxxx@xxxx.com'
    'ctl00$MainContent$PasswordText' => 'xxxx'
);
curl_setopt($curlhandle, CURLOPT_POST, true);
curl_setopt($curlhandle, CURLOPT_POSTFIELDS, $post_values);
于 2012-09-16T20:57:23.360 に答える