PHP 4.0 Bug #6203: imap_search() munges variables
| From: | max at the-triumvirate dot net | Date: | Wed, 16 Aug 2000 21:47:32 +0000 |
| Subject: | PHP 4.0 Bug #6203: imap_search() munges variables | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-29188@lists.php.net to get a copy of this message | ||
From: max@the-triumvirate.net
Operating system: RH6.2
PHP version: 4.0.1pl2
PHP Bug Type: IMAP related
Bug description: imap_search() munges variables
After running the imap_search() function the variable in which the IMAP search query was help gets
changed such that any subsequent calls to imap_search() fail. The following code:
#########CODE BEGIN###########
<?php
$user = '****';
$pass = '****';
$folders = array("INBOX", "mail/sent-mail");
$query = 'SUBJECT "babble" BODY "babble"';
echo '$query before imap_open() [', $query, "]<br>\n";
$stream = imap_open("{host:143}", $user, $pass);
echo '$query after imap_open() [', $query, "]<br>\n";
for ($i = 0; $i < count($folders); $i++) {
echo '$query before imap_open() [', $query, "]<br>\n";
$stream = @imap_open("{host:143}" . $folders[$i],
$user, $pass, OP_READONLY);
echo '$query after imap_open() [', $query, "]<br>\n";
if ($stream) {
echo '$query before imap_search() [', $query, "]<br>\n";
$results = imap_search($stream, $query, SE_UID);
echo '$query after imap_search() [', $query, "]<br>\n";
if (is_array($results)) {
echo "found ", count($results), " messages<br><br>\n";
}
imap_close($stream);
}
}
?>
#########CODE END###########
yeilds the following results:
$query before imap_open() [SUBJECT "babble" BODY "babble"]
$query after imap_open() [SUBJECT "babble" BODY "babble"]
$query before imap_open() [SUBJECT "babble" BODY "babble"]
$query after imap_open() [SUBJECT "babble" BODY "babble"]
$query before imap_search() [SUBJECT "babble" BODY "babble"]
$query after imap_search() [SUBJECT"babble BODY"babble]
$query before imap_open() [SUBJECT"babble BODY"babble]
$query after imap_open() [SUBJECT"babble BODY"babble]
$query before imap_search() [SUBJECT"babble BODY"babble]
$query after imap_search() [SUBJECT"babble BODY"babble]
$query before imap_open() [SUBJECT"babble BODY"babble]
$query after imap_open() [SUBJECT"babble BODY"babble]
$query before imap_search() [SUBJECT"babble BODY"babble]
$query after imap_search() [SUBJECT"babble BODY"babble]
Another test I ran was to "backup" $query:
$backup = $query;
Even if $backup is used to run the imap_search() both $query and $backup are munged.
Test Platforms:
linux rh6.2 2.2.16 (i386)
solaris 2.6 (sun ultra 5)
apache 1.3.12
php 4.0.1pl2
+imap 4.7c
+mysql 3.22.32
+openldap 1.2.11
+gd 1.8.2
+gdbm 1.8.0
+gettext 0.10.35
+zlib 1.1.3