maxreload Posted September 17, 2002 Share Posted September 17, 2002 I getting the following error when I load the admin page: :evil: Fatal error: input in flex scanner failed in /var/www/html/admin/includes/languages/english on line 1 If I change the "$language = 'english';" variable in application_top.php to "$language = 'english.php';" half the page loads but still errors out with "english.php.php". I've pulled down the code three times and have removed admin and catalog all three times. any help would be appreciated. Thanks, Reload Link to comment Share on other sites More sharing options...
senorwuckie Posted October 10, 2002 Share Posted October 10, 2002 This problem is a nasty CHR (cruel hazing ritual)! First, the error "input in flex scanner failed" occurs in PHP when one tries to "require" or "include" a directory instead of a file. I suspected this had something to do with the variable $language in /admin/includes/application_top.php. I grepped for '$language' in the 'includes' directory and found this line in the file 'application_top.php': $include_file = DIR_WS_LANGUAGES . $language . '/' . basename($PHP_SELF); include(DIR_WS_INCLUDES . 'include_once.php'); Aha! Then it hit me: Any version of php after at least version 4.2.0 installs by default with 'register_globals' set to 'off' in the php.ini file. The cruelist of CHR's arrises from the use of the convenient $PHP_SELF variable in scripts. When register_globals is off, so is this variable. No matter. The value always exists in the $_SERVER variable! Here is a quick fix: In your /admin/includes/local/configure.php file (you created one, didn't you?! Otherwise edit application_top.php) add the following line at the top: $PHP_SELF = $_SERVER[ "PHP_SELF" ]; Problem solved. Hope this helps! Link to comment Share on other sites More sharing options...
burt Posted October 10, 2002 Share Posted October 10, 2002 Most likely due to register_globals being off. If you have root, set; register_globals=on If not, speak (very nicely) to your host who might help you. Most likely running a version of PHP newer than 4.1.1 HTH Link to comment Share on other sites More sharing options...
burt Posted October 10, 2002 Share Posted October 10, 2002 If you have root, set; register_globals=on You must do this in php.ini on the server. Link to comment Share on other sites More sharing options...
senorwuckie Posted October 10, 2002 Share Posted October 10, 2002 AUGH!!! Ok, my fix will only partially work. As it turns out, there are other instances of code that are not written to support 'register_globals' turned 'off.' You will have to set 'register_globals' to 'on' if you wish to use the admin site. If you are running your site as a VirtualHost in Apache, simply set a local php flag variable to avoid turning on register_globals server-wide. Example: <VirtualHost 192.168.168.1> ...blah blah blah... <Directory /path/to/document/root/> <IfModule mod_php4.c> php_admin_flag register_globals on </IfModule> </Directory> </VirtualHost> No more CHR's! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.