PHP 4.0 Bug #9238: strpos() cannot indicate success when matching char is first
| From: | phpbug at paypc dot com | Date: | Tue, 13 Feb 2001 12:39:39 +0000 |
| Subject: | PHP 4.0 Bug #9238: strpos() cannot indicate success when matching char is first | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-46479@lists.php.net to get a copy of this message | ||
From: phpbug@paypc.com
Operating system: Linux 2.2.17+openwall
PHP version: 4.0.3pl1
PHP Bug Type: Strings related
Bug description: strpos() cannot indicate success when matching char is first
Sample script:
(Note, this will never report SSL even when $SSL_PROTOCOL=SSLv3 or TLSv1)
<?php
echo $SSL_PROTOCOL;
echo "<BR>Your connection method is: ";
if ( (strpos($SSL_PROTOCOL,"SSL")) || (strpos($SSL_PROTOCOL,"TLS")) )
{
echo "SSL!";
}
else
{
echo "non-SSL!";
}
?>
The documentation says strpos() returns FALSE if no match. But what about a match on the first
character (index 0)? Seems like the index returned should have been 1-based instead.
The routine is flawless when the code is rewritten thusly:
<?php
echo $SSL_PROTOCOL;
echo "<BR>Your connection method is: ";
if ( (strpos($SSL_PROTOCOL,"SL")) || (strpos($SSL_PROTOCOL,"LS")) )
{
echo "SSL!";
}
else
{
echo "non-SSL!";
}
?>
configuration line for PHP4 build:
Command './configure' '--with-mhash=/usr/local'
'--with-mcrypt=/usr/local' '--with-mysql=/usr/local'
'--enable-trans-sid' '--with-mm=/usr/local' '--enable-memory-limit'
'--with-zlib' '--enable-inline-optimization' '--with-imap=/usr/local'
'--with-imap-ssl' '--with-gmp' '--with-gd' '--with-cpdflib'
'--with-pdflib' '--with-tiff-dir' '--with-jpeg-dir'
'--with-png-dir' '--enable-track-vars' '--enable-bcmath'
'--enable-calendar' '--with-db3' '--enable-ftp'
'--enable-shmop' '--enable-sockets' '--enable-sysvsem'
'--enable-sysvshm' '--with-apache=../apache_1.3.14'
OpenSSL 0.9.6, mod_ssl/2.7.1
--
Edit Bug report at: http://bugs.php.net/?id=9238&edit=1