whats wrong w/ this script?


<?

if((isset($_SERVER["HTTP_USER_AGENT"])&&is_numeric(stripos($_SERVER["HTTP_USER_AGENT"], "hey")))||
$_SERVER["QUERY_STRING"]=="hey"||(isset($_SERVER["REMOTE_HOST"])&&strpos($_SERVER["REMOTE_HOST"],"hey")))
{

} else {
echo 'yo';
}



 ?>

Fatal error: Call to undefined function: stripos() in /homdex.php on line 5
LVL 1
JPERKS1985Asked:
Who is Participating?
 
b0lsc0ttIT ManagerCommented:
That isn't a function.  Do you mean strpos() or strrpos()?

Let me know if you need details or the difference on those.

bol
0
 
steelseth12Commented:
Its only available in php > 5
more info at http://www.php.net/manual/en/function.stripos.php
0
 
b0lsc0ttIT ManagerCommented:
Never mind.  I misread the function name.  What version of PHP are you using?

bol
0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

 
b0lsc0ttIT ManagerCommented:
If you don't know the version you can use phpinfo() to find out.  Make a page with just the lines below in it and save it as phpinfo.php.  Then run it in your browser.

<?php
phpinfo();
?>

It looks like Steelseth12 is thinking the same thing. :)

bol
0
 
steelseth12Commented:
you could use stripos(strtolower($_SERVER["HTTP_USER_AGENT"]), "hey")
0
 
NickVdCommented:
What I do if I know I'll require a function that may not exist is to create it myself in php and wrap it in a conditional if the function does not exist.

This way you can use the newer functions on older versions of php!

Taken from the pear package 'php_compat'
--------
if (!function_exists('stripos')) {
    function stripos($haystack, $needle, $offset = null)
    {
        if (!is_scalar($haystack)) {
            user_error('stripos() expects parameter 1 to be string, ' .
                gettype($haystack) . ' given', E_USER_WARNING);
            return false;
        }
   
        if (!is_scalar($needle)) {
            user_error('stripos() needle is not a string or an integer.', E_USER_WARNING);
            return false;
        }
   
        if (!is_int($offset) && !is_bool($offset) && !is_null($offset)) {
            user_error('stripos() expects parameter 3 to be long, ' .
                gettype($offset) . ' given', E_USER_WARNING);
            return false;
        }
   
        // Manipulate the string if there is an offset
        $fix = 0;
        if (!is_null($offset)) {
            if ($offset > 0) {
                $haystack = substr($haystack, $offset, strlen($haystack) - $offset);
                $fix = $offset;
            }
        }
   
        $segments = explode(strtolower($needle), strtolower($haystack), 2);
   
        // Check there was a match
        if (count($segments) === 1) {
            return false;
        }
   
        $position = strlen($segments[0]) + $fix;
        return $position;
    }
}
--------
0
 
b0lsc0ttIT ManagerCommented:
I'm glad I could help.  Thank you for the grade, the points and the fun question.

bol
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.