您好我试图使用PHP和Curl登录网站。我遇到的问题是我要登录的网站上的输入字段的名称具有脚本认为是变量的名称。所以当我运行脚本时,我得到一个错误,说明未定义的变量。
$fields = "ctl00$MainContent$EmailText=xxxx@xxxx.com&ctl00$MainContent$PasswordText=xxxx";
我得到的错误是:
Notice: Undefined variable: MainContent
Notice: Undefined variable: EmailText
Notice: Undefined variable: PasswordText
有什么方法吗?
答案 0 :(得分:3)
使用单引号:
$fields = 'ctl00$MainContent$EmailText=xxxx@xxxx.com&ctl00$MainContent$PasswordText=xxxx';
答案 1 :(得分:2)
是的,将字符串放在single quotes内而不是双倍。
答案 2 :(得分:2)
如果使用变量定义的'而不是',php将不会解释其中的内容。请参阅:http://php.net/manual/en/language.types.string.php
此外,我总是使用curl-option 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);