Page 2 of 5 FirstFirst 1234 ... LastLast
Results 11 to 20 of 42
  1. #11
    Join Date
    Jan 2004
    Posts
    66,373
    Blog Entries
    7
    Plugin Contributions
    274

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    Quote Originally Posted by dbltoe View Post
    Any suggestions of other things we might check would be GREATLY appreciated.
    From a diagnostics perspective, you could try to capture information about whatever the offending component is by inserting this line at line 152:
    Code:
            if (is_array($value)) trigger_error('GET param found to be array: ' . print_r($value, true) . '  --- contents of GET: ' . print_r($_GET, true));
    Depending on your PHP configuration, that should dump the offending details into the myDebug-xxxxx.log logs, as per https://www.zen-cart.com/tutorials/index.php?article=82

    DO NOT TRY THIS IF YOU ARE USING A VERSION OLDER THAN v1.3.9a !!!!!!!!!
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

  2. #12
    Join Date
    Aug 2007
    Location
    Gijón, Asturias, Spain
    Posts
    2,586
    Plugin Contributions
    30

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    I got a debug file with this identical error today.
    First error ever on the live shop.

    Order confirmed at 15:19:58 (using 4b payment module, Spain)
    Debug Warning at 15:20:24

    ZC 1.39h
    PHP Version: 5.3.8 (Zend: 2.3.0)
    PHP Safe Mode: Off
    PHP Memory Limit: 128M
    Database: MySQL 5.0.92-community-log
    HTTP Server: Apache

    Main mods, IH2, Ceon Advanced Shipper, 4b payment module...a long list.

    I've put in the suggested debug code.
    Steve
    github.com/torvista: Spanish Language Pack, Google reCaptcha, Structured Data, Multiple Copy-Move-Delete, Image Checker, BackupMySQL Admin/Auto...

  3. #13
    Join Date
    Aug 2007
    Location
    Gijón, Asturias, Spain
    Posts
    2,586
    Plugin Contributions
    30

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    Ok, I got two of these today.

    1)
    Order at 10:53:12
    Debug at 10:54:01
    Payment - Moneyorder
    Shipping - Advanced Shipper
    [06-Oct-2011 10:54:01] PHP Notice: GET param found to be array: Array
    (
    [0] => 47
    )
    --- contents of GET: Array
    (
    [main_page] => index
    [action] => notify
    [notify] => Array
    (
    [0] => 47
    )

    )
    in /whatever/includes/functions/functions_general.php on line 152
    [06-Oct-2011 10:54:01] PHP Warning: strlen() expects parameter 1 to be string, array given in /whatever/includes/functions/functions_general.php on line 153
    2)
    Order at 11:48:57
    Debug at 11:49:25
    Payment - 4b (offsite credit card gateway)
    Shipping - Advanced Shipper
    [06-Oct-2011 11:49:25] PHP Notice: GET param found to be array: Array
    (
    [0] => 56
    )
    --- contents of GET: Array
    (
    [main_page] => index
    [action] => notify
    [notify] => Array
    (
    [0] => 56
    )

    )
    in /whatever/includes/functions/functions_general.php on line 152
    [06-Oct-2011 11:49:25] PHP Warning: strlen() expects parameter 1 to be string, array given in /whatever/includes/functions/functions_general.php on line 153
    I don't find anything I can relate to those numbers 47 and 56 in the order.

    So, any more clues I can give you?

    Thanks
    Steve
    Steve
    github.com/torvista: Spanish Language Pack, Google reCaptcha, Structured Data, Multiple Copy-Move-Delete, Image Checker, BackupMySQL Admin/Auto...

  4. #14
    Join Date
    Jan 2004
    Posts
    66,373
    Blog Entries
    7
    Plugin Contributions
    274

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    Why are you passing a [notify] in your $_GET in the first place? What addon is doing that, and why?
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

  5. #15
    Join Date
    Aug 2007
    Location
    Gijón, Asturias, Spain
    Posts
    2,586
    Plugin Contributions
    30

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    Why are you passing a [notify] in your $_GET in the first place?
    No idea. Nothing I have actually coded myself.

    I've done some searching and the only references I can find to notify and get would be in the shopping cart class, for example:

    zen_redirect(zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action', 'notify', 'main_page'))));

    but this is a stock file and I don't really understand what I'm looking at or for.

    Can you suggest more that I can add to the debug info to help locate this? Or a construct I could search for in the code?
    Steve
    github.com/torvista: Spanish Language Pack, Google reCaptcha, Structured Data, Multiple Copy-Move-Delete, Image Checker, BackupMySQL Admin/Auto...

  6. #16
    Join Date
    Jan 2004
    Posts
    66,373
    Blog Entries
    7
    Plugin Contributions
    274

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    Quote Originally Posted by dbltoe View Post
    Still rearing it's ugly head from time to time but have not aggressively pursued it as I can't seem to find anything that dies because of it.

    Are you actually able to determine anything that is not working due to this error?
    It's only a "PHP Warning", so is not causing any script executions to fail.
    Thus, it's a minor issue.

    Indeed, thanks to some of torvista's debug data, I've found the cause, and it's an extremely minor issue.

    Quote Originally Posted by dbltoe View Post
    Several of our sites are getting:
    PHP Warning: strlen() expects parameter 1 to be string, array given in /home/site_name/public_html/includes/functions/functions_general.php on line 152

    Commonalities are ... all debug files to the cache directory are timestamped at the conclusion of an order.
    ...
    AND, only occasionally does any site throw this error. One site has 25+ orders this month with a mixture of PayPal and AIM. Only two orders (one for each) has thrown the error.
    It only occurs at the conclusion of an order because it's specifically triggered only when the user is presented with a list of product-notification choices and they click the submit button on that page to update those choices. (It might also trigger on the account_notifications page if they were to visit there.)

    The warning is harmless, and can be safely ignored.

    If it's keeping you awake at night, you could move the in_array() condition check to the beginning of the list, by changing the line from
    Code:
            if ( (strlen($value) > 0) && ($key != 'main_page') && ($key != zen_session_name()) && ($key != 'error') && (!in_array($key, $exclude_array)) && ($key != 'x') && ($key != 'y') ) {
    to
    Code:
            if ( (!in_array($key, $exclude_array)) && (strlen($value) > 0) && ($key != 'main_page') && ($key != zen_session_name()) && ($key != 'error') && ($key != 'x') && ($key != 'y') ) {
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

  7. #17
    Join Date
    Aug 2007
    Location
    Gijón, Asturias, Spain
    Posts
    2,586
    Plugin Contributions
    30

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    If it's keeping you awake at night,
    Absolutely!

    Thanks for the solution.
    Steve
    github.com/torvista: Spanish Language Pack, Google reCaptcha, Structured Data, Multiple Copy-Move-Delete, Image Checker, BackupMySQL Admin/Auto...

  8. #18
    Join Date
    Aug 2007
    Location
    Gijón, Asturias, Spain
    Posts
    2,586
    Plugin Contributions
    30

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    just got a new debug using modified code as above:

    [17-Oct-2011 09:39:27] PHP Notice: GET param found to be array: Array
    (
    [0] => 280
    )
    --- contents of GET: Array
    (
    [main_page] => index
    [action] => notify
    [notify] => Array
    (
    [0] => 280
    )

    )
    in blah..blah/includes/functions/functions_general.php on line 152
    Steve
    github.com/torvista: Spanish Language Pack, Google reCaptcha, Structured Data, Multiple Copy-Move-Delete, Image Checker, BackupMySQL Admin/Auto...

  9. #19

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    Hi

    Did you apply the modification suggested by DrByte?

    I did and I no longer have the error, if you check the new beta version 1.5 this modif is applied in the file functions_general.php.


  10. #20
    Join Date
    Aug 2007
    Location
    Gijón, Asturias, Spain
    Posts
    2,586
    Plugin Contributions
    30

    Default Re: PHP Warning: strlen() expects parameter 1 to be string

    Did you apply the modification suggested by DrByte?
    just got a new debug using modified code as above:
    yes, I am using the modified code.
    Steve
    github.com/torvista: Spanish Language Pack, Google reCaptcha, Structured Data, Multiple Copy-Move-Delete, Image Checker, BackupMySQL Admin/Auto...

 

 
Page 2 of 5 FirstFirst 1234 ... LastLast

Similar Threads

  1. v153 PHP Warning: addslashes() expects parameter 1 to be string
    By BlackOrchidCouture in forum General Questions
    Replies: 2
    Last Post: 17 Sep 2014, 10:47 PM
  2. PHP Warning: addslashes() expects parameter 1 to be string, array given
    By schoolboy in forum All Other Contributions/Addons
    Replies: 11
    Last Post: 10 May 2013, 02:19 PM
  3. v139e PHP Warning: strlen() expects parameter 1 to be string, array given in
    By irishshopper in forum Basic Configuration
    Replies: 4
    Last Post: 7 Mar 2013, 08:06 PM
  4. v139h PHP Warning: strip_tags() expects parameter 1 to be string, array given
    By BlessIsaacola in forum General Questions
    Replies: 1
    Last Post: 6 Mar 2012, 01:32 PM
  5. v150 PHP Warning: strlen() expects parameter 1 to be string, array given
    By caffeitalia in forum General Questions
    Replies: 1
    Last Post: 1 Feb 2012, 03:17 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR