html - 藉由PHP呼叫COM “InternetExplorer.Application”,如何不用name属性模拟用户登入?

php中文网
发布: 2016-06-06 20:50:46
原创
1466人浏览过

我有一个登入页面(http://**.com/def.php)页的表单代码范例:

<form action="abc.php" method="POST" name="f_action">
<input type="text" name="id">
<input type="password" name="pwd">
<input type="submit" value="OK" name="action">
</form>
登录后复制

我藉由PHP呼叫COM “InternetExplorer.Application”去填写表单并登入,代码如下:

<?php
$Browser = new COM('InternetExplorer.Application');
$Browserhandle = $Browser->HWND;
$Browser->Visible = true;
$f1_url = "http://**.com/def.php";
$Browser->Navigate($f1_url);
sleep(5);
$Browser->Document->f_action->id->focus();
$Browser->Document->f_action->id->value = "username";
$Browser->Document->f_action->pwd->focus();
$Browser->Document->f_action->pwd->value = "password";
$Browser->Document->f_action->action->focus();
$Browser->Document->f_action->action->click();
$Browser->Quit();
?>
登录后复制

里面是藉由Name属性找到要控制的元素,但若是我将范例页面的表单代码改成:

<form action="abc.php" method="POST">
登录后复制

将「name="f_action"」改成「无Name属性」,这样php代码要如何改写才能同样可让COM “InternetExplorer.Application”填写表单并登入?

灵思AI
灵思AI

专业的智能写作辅助平台

灵思AI 202
查看详情 灵思AI

感谢!

立即学习PHP免费学习笔记(深入)”;

回复内容:

我有一个登入页面(http://**.com/def.php)页的表单代码范例:

<form action="abc.php" method="POST" name="f_action">
<input type="text" name="id">
<input type="password" name="pwd">
<input type="submit" value="OK" name="action">
</form>
登录后复制

我藉由PHP呼叫COM “InternetExplorer.Application”去填写表单并登入,代码如下:

<?php
$Browser = new COM('InternetExplorer.Application');
$Browserhandle = $Browser->HWND;
$Browser->Visible = true;
$f1_url = "http://**.com/def.php";
$Browser->Navigate($f1_url);
sleep(5);
$Browser->Document->f_action->id->focus();
$Browser->Document->f_action->id->value = "username";
$Browser->Document->f_action->pwd->focus();
$Browser->Document->f_action->pwd->value = "password";
$Browser->Document->f_action->action->focus();
$Browser->Document->f_action->action->click();
$Browser->Quit();
?>
登录后复制

里面是藉由Name属性找到要控制的元素,但若是我将范例页面的表单代码改成:

<form action="abc.php" method="POST">
登录后复制

将「name="f_action"」改成「无Name属性」,这样php代码要如何改写才能同样可让COM “InternetExplorer.Application”填写表单并登入?

感谢!

立即学习PHP免费学习笔记(深入)”;

这两天净回答跟 DOM 有关的问题了 ... 也不知道是为什么 ...

额 ... 以上是题外话 ... 你这个问题 ... 如果你都能写到这里了 ... 再继续一步应该不是什么难事 ...

编程除了需要严谨 ... 有时候在遇到不知道的问题时也需要天马行空的想象力和不怕碰壁的尝试 ...

<?php
/* just copied six lines below ... */
$Browser = new COM('InternetExplorer.Application');
$Browserhandle = $Browser->HWND;
$Browser->Visible = true;
$f1_url = "http://**.com/def.php";
$Browser->Navigate($f1_url);
sleep(5);

/* $allforms is NOT an array ... it is an iterator ... */
$allforms = $Browser->Document->getElementsByTagName( 'form' );

/* current() is not implemented ... so we have to run a loop ... */
foreach( $allforms as $theform ) {

    /* i also copied these six lines and did some text replace work ... */
    $theform->id->focus();
    $theform->id->value = "username";
    $theform->pwd->focus();
    $theform->pwd->value = "password";
    $theform->action->focus();
    $theform->action->click();
    
}

/* bye browser ... have a nice day ... */
$Browser->Quit();
登录后复制

事实上你可以处理网页上的所有元素 ... 都是这一个道理 ...

恩恩 ... 就是这样啦 ...

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号