Package home | Report new bug | New search | Development Roadmap Status: Open | Feedback | All | Closed Since Version 1.5.0

Bug #6618 Undefined variable or offset
Submitted: 2006-01-29 10:09 UTC Modified: 2006-02-05 16:51 UTC
From: struchkov at gmail dot com Assigned: heino
Status: Closed Package: Net_NNTP (version 1.3.2 (& 1.0.1))
PHP Version: 5.1.2 OS: Linux
Roadmaps: (Not assigned)    
Subscription  


 [2006-01-29 10:09 UTC] struchkov at gmail dot com
Description: ------------ In my test there are many php-messages like this: 1) PHP Notice: Undefined variable: groups in /usr/share/pear/Net/NNTP/Protocol/Client.php on line 652 and 2) PHP Notice: Undefined offset: 1 in /usr/share/pear/Net/NNTP/Protocol/Client.php on line 649 PHP Notice: Undefined offset: 2 in /usr/share/pear/Net/NNTP/Protocol/Client.php on line 649 I think that this code decide situation above. 1) case 215: // RFC2980: 'information follows' $data = $this->_getTextResponse(); if (PEAR::isError($data)) { return $data; } $groups=array(); foreach($data as $line) { preg_match("/^(.*?)\s(.*?$)/", trim($line), $matches); $groups[$matches[1]] = (string) $matches[2]; } return $groups; 2) foreach($data as $line) { if (preg_match("/^(.*?)\s(.*?$)/", trim($line), $matches)) $groups[$matches[1]] = (string) $matches[2]; }

Comments

 [2006-02-01 07:30 UTC] heino at php dot net
Which version of Net_NNTP are you using? My guess would be v1.0.1. 1) The first notice should already be fixed - at least in the current beta release (v1.3.2). 2) As for the second notice it's rather hard to find a possible bug without some debugging data. A quallified guess would be that your server has problems with the wildcard parameter, or the server simply doesnøt handle the 'LIST NEWSGROUPS' command correctly...
 [2006-02-01 10:06 UTC] struchkov at gmail dot com
Hi Heino! I will try to upgrade packege manual, because command 'pear updgrade-all' do nothing. After weekend I email you list of strange servers. There are a lot of servers in my program make this notices.
 [2006-02-01 10:30 UTC] heino at php dot net
I believe 'pear upgrade Net_NNTP-beta' should do the trick ;-)
 [2006-02-01 10:40 UTC] heino at php dot net
Looking more closely I saw what looks like a minor typo. Try to replace the line "if (preg_match("/^(.*?)\s(.*?$)/", trim($line), $matches))" with "if (preg_match("/^(.*?)\s(.*?)$/", trim($line), $matches))" The $ character should of cause be located at the end of the regexp...
 [2006-02-05 14:10 UTC] struchkov at gmail dot com
I do that you advise me and upgrade to beta. But now I have error Undefined variable: debug in /usr/share/pear/Net/NNTP/Protocol/Client.php on line 343 You must use if (isset($debug) && $debug)
 [2006-02-05 14:22 UTC] struchkov at gmail dot com
I found test-case for next notice: PHP Notice: Undefined offset: 1 in /usr/share/pear/Net/NNTP/Protocol/Client.php on line 1504 PHP Notice: Undefined offset: 2 in /usr/share/pear/Net/NNTP/Protocol/Client.php on line 1504 Try to use 'infa.abo.fi' as nntp-server and do 'getDescriptions' command. My fix using ' if (preg_match(....' in this case is helped.
 [2006-02-05 16:51 UTC] heino at php dot net
The NNTP daemon at 'infa.abo.fi' sends empty fields for groups without descriptions. This is semi-non-standard, and broke the the regexp, since the trim() also removing the whitespace between the fields, because of the missing description...