另一家Stackoverflow的人说我应该把这个贴在这里。我已经阅读和调整代码三天了,但我想不出这一点,因为我是php新手。编写这个php登录脚本到远程服务器的开发人员没有为WordPress编码,也没有为我需要的自动登录编码。我想我已经找到了我没有在这里发布的代码末尾的自动登录。
他为自己的数组创建了这段代码,该数组将为三个永远不会更改的api字符串设置值,但我需要将登录WordPress用户的用户名和密码包含在他的数组中。数组信息稍后在脚本中通过xml传递。这是用于自动登录到另一台服务器的SSL,当单击图像时,它会运行php代码。
这是我刚从他那里得到的代码,但我不相信这是正确的,因为当我插入记事本时,记事本++中的所有颜色都发生了变化:
// Set the Query POST parameters - array
$query_vals = array(
\'api_username\' => \'api-username-goes-here\',
\'api_password\' => \'password-here\',
\'api_key\' => \'api-key-here’,
\'username\' => $current_user[‘user_login’],
\'password\' => $current_user[‘user_pass’]
);
我从Stackoverflow的同事那里得到的建议是:
您需要首先在代码中的某个地方调用此函数:
global $current_user;
get_currentuserinfo();
然后,您需要将数组更改为以下内容:
\'username\' => $current_user->user_login
然后有人发布了我发布的更正代码示例:
// Set the Query POST parameters
$query_vals = array(
\'api_username\' => \'api-username-goes-here\',
\'api_password\' => \'password-here\',
\'api_key\' => \'api-key-here\',
\'username\' => $current_user[\'user_login\'],
\'password\' => $current_user[\'user_pass\']
);
所以现在我真的很困惑该怎么办,因为我不知道该怎么搞砸开发人员的阵列。所以我想我的问题是,如何调整传递三个不变api字符串的代码,以及WP当前登录的用户用户名和密码?
我正在使用文件副本,以便原始代码不会被破坏。
这是onclick事件调用的整个php文件:
error_reporting(E_ERROR);
ini_set(‘display_errors’,true);
// Set the Query POST parameters
$query_vals = array(
\'api_username\' => \'website-api-username\',
\'api_password\' => \'api-password\',
\'api_key\' => \'api-key goes here\',
\'username\' => $current_user[\'user_login\'],
\'password\' => $current_user[\'user_pass\']
);
// Generate the POST string
$postdata = \'\';
foreach($query_vals as $key => $value) {
$postdata .= $key.\'=\'.urlencode($value).\'&\';
}
// Chop off the trailing ampersand
$postdata = rtrim($postdata, \'&\');
// create a new cURL resource
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, \'https://third-party-provider.com/encrypt_login.xml\');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
// Save response to a string
$response = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($response);
// post the user data
$xml"&encrypted_username=".$encrypted_username"&encrypted_password=".$encrypted_password\';
if ($xml = FALSE)
$url = (\'https://website-that-is-originating-the-array.com/error\')
;
// Save response to a string
//var_dump($xml);
echo "Status: ".$xml->status;
这是除了结束标记之外的整个php文件。