Results 1 to 10 of 29

Hybrid View

  1. #1
    Join Date
    Dec 2009
    Location
    Amersfoort, The Netherlands
    Posts
    2,845
    Plugin Contributions
    25

    Default Re: Need some help diagnosing functions_general,php errors

    Quote Originally Posted by philip937 View Post
    Wow loads of ideas, just replied to what I thought was te last post then boom all of a sudden I had all these great suggestions.
    Now @Design75 did your fix work? Does it work when applying a filter and then going to the second page of te filter results

    @gjh42 I will try your suggestion also thanks for your input, and thank you for explaining the code :-)

    @DrByte how can I incorporate that fix with the dynamic filter code?

    Thanks all
    Wow indeed ;)

    @philip937: My fix worked, but gjh42 is better. Like he said, my fix always assumes an integer, which may not be the case.

    @gjh42 thank you for the lesson, like said before. I am learning PHP bit by bit. Everyday I am understanding a little more.

    @DrByte, I am using the functions_general.php that came with ZC 1.5.1, and merged the dynamic filter code in to it.

    This is how the merged result looks like, including Glenn's fix.
    PHP Code:
      function zen_get_all_get_params($exclude_array ''$search_engine_safe true) {

        if (!
    is_array($exclude_array)) $exclude_array = array();
        
    $exclude_array array_merge($exclude_array, array(zen_session_name(), 'main_page''error''x''y'));
        
    $get_url '';
        if (
    is_array($_GET) && (sizeof($_GET) > 0)) {
          
    reset($_GET);
          while (list(
    $key$value) = each($_GET)) {
    // bof dynamic filter 1 of 3
            
    if ( (!in_array($key$exclude_array)) && (is_string($value) && strlen($value) > || is_array($value) && array_filter($value) ) && ($key != 'main_page') && ($key != zen_session_name()) && ($key != 'error') && ($key != 'x') && ($key != 'y') ) {
    // eof dynamic filter 1 of 3
    // bof dynamic filter 2 of 3
                
    if (is_array($value)) {
                  foreach(
    $value as $arr){
                    
    $get_url .= zen_sanitize_string($key) . '[]=' rawurlencode(stripslashes($arr)) . '&';
                  }
                } else {
    // eof dynamic filter 2 of 3
                  
    $get_url .= zen_sanitize_string($key) . '=' rawurlencode(stripslashes($value)) . '&';
    // bof dynamic filter 3 of 3
          
    }
    // eof dynamic filter 3 of 3
              
            
    }
          }
        }
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);

        return 
    $get_url;
      } 

  2. #2
    Join Date
    Aug 2009
    Location
    Bedford, England
    Posts
    966
    Plugin Contributions
    0

    Default Re: Need some help diagnosing functions_general,php errors

    Thanks guys, just got to work so will have to test later this evening on my set up.

    Many many many thanks :)
    Phil Rogers
    A problem shared is a problem solved.

  3. #3
    Join Date
    Aug 2009
    Location
    Bedford, England
    Posts
    966
    Plugin Contributions
    0

    Default Re: Need some help diagnosing functions_general,php errors

    Quote Originally Posted by Design75 View Post
    Wow indeed ;)

    @philip937: My fix worked, but gjh42 is better. Like he said, my fix always assumes an integer, which may not be the case.

    @gjh42 thank you for the lesson, like said before. I am learning PHP bit by bit. Everyday I am understanding a little more.

    @DrByte, I am using the functions_general.php that came with ZC 1.5.1, and merged the dynamic filter code in to it.

    This is how the merged result looks like, including Glenn's fix.
    PHP Code:
      function zen_get_all_get_params($exclude_array ''$search_engine_safe true) {

        if (!
    is_array($exclude_array)) $exclude_array = array();
        
    $exclude_array array_merge($exclude_array, array(zen_session_name(), 'main_page''error''x''y'));
        
    $get_url '';
        if (
    is_array($_GET) && (sizeof($_GET) > 0)) {
          
    reset($_GET);
          while (list(
    $key$value) = each($_GET)) {
    // bof dynamic filter 1 of 3
            
    if ( (!in_array($key$exclude_array)) && (is_string($value) && strlen($value) > || is_array($value) && array_filter($value) ) && ($key != 'main_page') && ($key != zen_session_name()) && ($key != 'error') && ($key != 'x') && ($key != 'y') ) {
    // eof dynamic filter 1 of 3
    // bof dynamic filter 2 of 3
                
    if (is_array($value)) {
                  foreach(
    $value as $arr){
                    
    $get_url .= zen_sanitize_string($key) . '[]=' rawurlencode(stripslashes($arr)) . '&';
                  }
                } else {
    // eof dynamic filter 2 of 3
                  
    $get_url .= zen_sanitize_string($key) . '=' rawurlencode(stripslashes($value)) . '&';
    // bof dynamic filter 3 of 3
          
    }
    // eof dynamic filter 3 of 3
              
            
    }
          }
        }
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);

        return 
    $get_url;
      } 
    LOVE YOU ALL!!!! SORTED.
    Phil Rogers
    A problem shared is a problem solved.

  4. #4
    Join Date
    Jan 2004
    Posts
    66,446
    Plugin Contributions
    81

    Default Re: Need some help diagnosing functions_general,php errors

    Quote Originally Posted by Design75 View Post
    This is how the merged result looks like, including Glenn's fix.
    PHP Code:
      function zen_get_all_get_params($exclude_array ''$search_engine_safe true) {

        if (!
    is_array($exclude_array)) $exclude_array = array();
        
    $exclude_array array_merge($exclude_array, array(zen_session_name(), 'main_page''error''x''y'));
        
    $get_url '';
        if (
    is_array($_GET) && (sizeof($_GET) > 0)) {
          
    reset($_GET);
          while (list(
    $key$value) = each($_GET)) {
    // bof dynamic filter 1 of 3
            
    if ( (!in_array($key$exclude_array)) && (is_string($value) && strlen($value) > || is_array($value) && array_filter($value) ) && ($key != 'main_page') && ($key != zen_session_name()) && ($key != 'error') && ($key != 'x') && ($key != 'y') ) {
    // eof dynamic filter 1 of 3
    // bof dynamic filter 2 of 3
                
    if (is_array($value)) {
                  foreach(
    $value as $arr){
                    
    $get_url .= zen_sanitize_string($key) . '[]=' rawurlencode(stripslashes($arr)) . '&';
                  }
                } else {
    // eof dynamic filter 2 of 3
                  
    $get_url .= zen_sanitize_string($key) . '=' rawurlencode(stripslashes($value)) . '&';
    // bof dynamic filter 3 of 3
          
    }
    // eof dynamic filter 3 of 3
              
            
    }
          }
        }
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);

        return 
    $get_url;
      } 
    @philip et al,
    Do you mind testing out this cleaned up variation? I've taken a look at its impact on core code, but not with the plugins you're integrating it for, so feedback from that angle is what's most needed. If you can also test it with the products-notification stuff on checkout_success pages, that'd be appreciated also.
    (If this all tests correctly, we'll look at merging it into core so future plugin integration will be simpler because this will be able to be skipped.)

    PHP Code:
      function zen_get_all_get_params($exclude_array = array(), $search_engine_safe true) {
        if (!
    is_array($exclude_array)) $exclude_array = array();
        
    $exclude_array array_merge($exclude_array, array(zen_session_name(), 'main_page''error''x''y'));
        
    $get_url '';
        if (
    is_array($_GET) && (sizeof($_GET) > 0)) {
          
    reset($_GET);
          while (list(
    $key$value) = each($_GET)) {
            if (!
    in_array($key$exclude_array)) {
              if (!
    is_array($value)) {
                if (
    is_string($value) && strlen($value) > 0) {
                  
    $get_url .= zen_sanitize_string($key) . '=' rawurlencode(stripslashes($value)) . '&';
                }
              } else {
                foreach(
    array_filter($value) as $arr){
                  
    $get_url .= zen_sanitize_string($key) . '[]=' rawurlencode(stripslashes($arr)) . '&';
                }
              }
            }
          }
        }
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);

        return 
    $get_url;
      } 
    and /includes/classes/shopping_cart.php line 1904-1906:
    PHP Code:
    //      zen_redirect(zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action', 'notify', 'main_page'))));
    //      zen_redirect(zen_href_link(FILENAME_ACCOUNT_NOTIFICATIONS, zen_get_all_get_params(array('action', 'notify', 'main_page'))));
          
    zen_redirect(zen_href_link($_GET['main_page'], zen_get_all_get_params(array('action''notify''main_page')))); 
    (just added the 'notify', in the middle of the last array on line 1906) (this is needed to skip displaying the notify[]= params when using the checkout-success notifications checkboxes dialog).
    .

    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. #5
    Join Date
    Aug 2009
    Location
    Bedford, England
    Posts
    966
    Plugin Contributions
    0

    Default Re: Need some help diagnosing functions_general,php errors

    Will do, ill let you know the outcome as soon as I get around to it
    Phil Rogers
    A problem shared is a problem solved.

  6. #6
    Join Date
    Aug 2009
    Location
    Bedford, England
    Posts
    966
    Plugin Contributions
    0

    Default Re: Need some help diagnosing functions_general,php errors

    Quote Originally Posted by DrByte View Post
    @philip et al,
    Do you mind testing out this cleaned up variation? I've taken a look at its impact on core code, but not with the plugins you're integrating it for, so feedback from that angle is what's most needed. If you can also test it with the products-notification stuff on checkout_success pages, that'd be appreciated also.
    (If this all tests correctly, we'll look at merging it into core so future plugin integration will be simpler because this will be able to be skipped.)

    PHP Code:
      function zen_get_all_get_params($exclude_array = array(), $search_engine_safe true) {
        if (!
    is_array($exclude_array)) $exclude_array = array();
        
    $exclude_array array_merge($exclude_array, array(zen_session_name(), 'main_page''error''x''y'));
        
    $get_url '';
        if (
    is_array($_GET) && (sizeof($_GET) > 0)) {
          
    reset($_GET);
          while (list(
    $key$value) = each($_GET)) {
            if (!
    in_array($key$exclude_array)) {
              if (!
    is_array($value)) {
                if (
    is_string($value) && strlen($value) > 0) {
                  
    $get_url .= zen_sanitize_string($key) . '=' rawurlencode(stripslashes($value)) . '&';
                }
              } else {
                foreach(
    array_filter($value) as $arr){
                  
    $get_url .= zen_sanitize_string($key) . '[]=' rawurlencode(stripslashes($arr)) . '&';
                }
              }
            }
          }
        }
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);
        while (
    strstr($get_url'&&')) $get_url str_replace('&&''&'$get_url);

        return 
    $get_url;
      } 

    above tested ok. haven't tested the second part. I don't use product notifications maybe someone that does could test that bit? does it only have an effect if you do use product notifications?
    Phil Rogers
    A problem shared is a problem solved.

  7. #7
    Join Date
    Jan 2004
    Posts
    66,446
    Plugin Contributions
    81

    Default Re: Need some help diagnosing functions_general,php errors

    Yes, the second part is necessary in case you ever use the product-notification feature, especially on the checkout-success page.
    .

    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.

 

 

Similar Threads

  1. Need to display Product ID in functions_general.php to edit Category List Showcase
    By vandiermen in forum Templates, Stylesheets, Page Layout
    Replies: 1
    Last Post: 9 Mar 2009, 03:25 AM
  2. Need to override functions_general.php
    By lbowenc in forum Templates, Stylesheets, Page Layout
    Replies: 4
    Last Post: 28 Mar 2008, 12:18 PM
  3. Replies: 2
    Last Post: 1 Jul 2007, 05:10 AM

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