有人熟悉 Chilkat ActiveX HTTP component 或 Pearl LWP 吗?我正在尝试重现我们目前在 Pearl 中使用的一些代码。我要做的是登录互联网设备并读取日志文件。
登录需要 cookie。在普通的网络浏览器中,我可以只使用 http://test.com:3800/login.tgi?Username=BOB&Password=12345。然后,一旦登录 cookie 存储在浏览器中,我就可以导航到日志文件页面。
工作珍珠代码是
function members_only() {
$cookie_name = 'cookie_name';
$error_url = home_url($path = '/403-error/');
global $pagenow;
$array_cookie_value = json_decode( stripslashes($_COOKIE[$cookie_name]),true);
$woo_user_id = $array_cookie_value['user_id'];
$user_meta = get_user_meta($woo_user_id);
$user_order_status = $user_meta['doris_shop_enabled'][0];
if ( is_admin() || is_front_page() || $pagenow == 'wp-login.php' || is_page('403-error') ) {
echo('Do nothing');
} elseif ( !isset($_COOKIE[$cookie_name]) || (isset($_COOKIE[$cookie_name]) && $user_order_status === 0) ) {
wp_safe_redirect( $error_url );
exit;
} else {
echo("Very limited.");
}
}
add_action( 'wp','members_only' );
我使用 activeX 组件在 VB 中快速完成了这些,但我什至没有成功登录。
$unique = array_map("unserialize",array_unique(array_map("serialize",$data)));
echo "<pre>";
print_r($unique);
echo "</pre>";
Auth 正在返回
my $Authenticate = "http://test.com:3800/login.tgi?username=BOB&Password=12345";
my $action = "http://test.com:3800/log”;
use strict qw/refs/;
use HTTP::Cookies;
use LWP::UserAgent;
use HTTP::Request::Common qw/POST GET/;
my $Browser = LWP::UserAgent->new(
cookie_jar => HTTP::Cookies->new,requests_redirectable => [],timeout => 10,pragma => "no-cache",max-age => 0,agent => "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"
);
my $Page = $Browser->request(GET $Authenticate);
if ($Page->is_success) { my $Page = $Browser->request(GET $action); }
else { print $ErrorPage; die; }
如果我用另一个 URL 代替登录 URL,或者省略登录凭据(所以它只是)http://test.com:3800 Auth 为我提供了该网页的正确 HTML。
谁能看到 2 个代码片段之间的任何不同之处,或者想出我可能遇到此问题的原因?