Bug #43897 [Opn->Fbk]: $ie not cleared on IE quit
| From: | cmb@php.net | Date: | Mon, 03 May 2021 12:24:02 +0000 |
| Subject: | Bug #43897 [Opn->Fbk]: $ie not cleared on IE quit | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-233660@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=43897&edit=1
ID: 43897
Updated by: cmb@php.net
Reported by: csaba at alum dot mit dot edu
Summary: $ie not cleared on IE quit
-Status: Open
+Status: Feedback
Type: Bug
Package: COM related
Operating System: Win XP Pro
PHP Version: 5.2.5
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Is this still an issue with any of the actively supported PHP
versions[1]?
[1] <https://www.php.net/supported-versions.php>
Previous Comments:
------------------------------------------------------------------------
[2008-01-20 02:52:11] csaba at alum dot mit dot edu
Description:
------------
In the code below, if the visible IE is closed, whether by script or by the user, the bug manifests
itself. What will happen is that there will be a sequence of (ReadyState) 4's displayed while
IE is extant. When IE is closed, "Exiting" should be printed, but what happens is that a
sequence of ReadyState=0's is printed, which is a bug.
The bug only happens if there are no instances of IE when the script is run.
The second instance of $ie has to be 'static'
Csaba Gabor from Vienna
Reproduce code:
---------------
<?php
// IE being closed doesn't terminate script
// if there are no IE instances on startup
$ie = new COM("InternetExplorer.Application");
$ie->visible = true;
$ie->Navigate2 ("about:blank");
$ie2 = new COM("InternetExplorer.Application");
try { while ($ie->ReadyState>=0) {
print $ie->ReadyState;
com_message_pump(200); } }
catch (com_exception $e) {}
print "Exiting";
?>
Expected result:
----------------
I expect to see a sequence of 4s until I close IE, and then I expect to see Exiting printed
Actual result:
--------------
A sequence of 4s is printed, but when I close IE a sequence of 0s is printed which doesn't
terminate till I use the windows task manager (ctrl+alt+delete) to kill the iexplore process. (One
could also use ctrl+C in the Cmd window, but that leaves a hidden IE instance, so the bug won't
show itself next time around, until the IE is removed).
The bug manifests itself without user actions if
$ie->Quit();
is inserted right above the 'try' line
If there is already an instance of IE in existence, then the bug does not happen.
The bug will also show itself if the '$ie2' line is replaced with:
ieStatic();
function ieStatic() {
static $ie;
$ie = new COM("InternetExplorer.Application"); }
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=43897&edit=1