ID: 9238
User Update by: [EMAIL PROTECTED]
Status: Closed
Bug Type: Strings related
Description: strpos() cannot indicate success when matching char is first

Thank you.  I would recommend making a minor point in the documentation to clarify the 
requirement of checking against false (or != false) explicitly.  I imagine many people 
would be bitten by this little gotcha, particularly when coming from C backgrounds 
where if !() is used for if () == false.

Thanks for the swift response.  Your suggested work-around works just fine.

=Rob=


Previous Comments:
---------------------------------------------------------------------------

[2001-02-13 12:48:12] [EMAIL PROTECTED]
all you need is
if( false !== strpos($SSL_PROTOCOL,"SSL")) || false !== (strpos($SSL_PROTOCOL,"TLS")) 
)


---------------------------------------------------------------------------

[2001-02-13 07:39:38] [EMAIL PROTECTED]
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

---------------------------------------------------------------------------


Full Bug description available at: http://bugs.php.net/?id=9238


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to