Jump to content

Foxtel

Members
  • Content count

    51
  • Joined

  • Last visited

Everything posted by Foxtel

  1. Foxtel

    PayPal WPP Direct Payments & Express Checkout Support

    Guys, Thank you for looking at this issue. Here is more data: This is how the URL looks before clicking the EC button https://site.com/login.php? osCsid=kk0am7ua87va407jikil2l8gh59bv44j Here is what the “Return to MySite” link looks like before clicking it. https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_flow& SESSION=14fUmubjb5gBcwfO29wXtg7fce6z2nVGbax7GpRM79fjHzbUHs3RgHO_cAPHWCATfYtdt0& dispatch=bc5314bce0773f1548350520788c6b0a2a4db51fcb2331ceef7fb41825ec0afe# I don’t see the osCsid or the 32 alpha-numeric id anywhere on the path, it might be that it has been hashed. Now when I click the “Return to MySite” here is what the return URL looks like https://site.com/login.php?ec_cancel=1%7Fk0am7ua87va407jikil2l8gh59bv44j&token=EC-6V1023803P8894213 And the cart is empty due to the osCsid converting to %7F Here is another test scenario: Client is in login.php and decides to pay with paypal EC Client logs in Paypal and proceeds with authorizing payment Client gets taken back to checkout_shipping.php to continue with checkout. In the scenario above there where NO issue when coming back form EC to mysite. The osCsid was NOT converted to %7F and that cart contents where NOT lost. This looks like it *might* be a sandbox issue with the “Return to MySite”. Both GM1 and I had the same issue and we both where using the sandbox. It would be good if other people using the sandbox could test this scenario to see if they also see the issue. If we could confirm that other people using the sandbox are also experiencing the same issue, then we can be more confident that it’s definitely a sandbox bug with the “Return to MySite”. Looks like people using the paypal’s LIVE server are NOT seeing this issue. This is a good sing indicating that this *might* be a sandbox bug. I will follow up with PayPal Technical support on this issue. I will let you guys know if I find anything out. Thank you for you help.
  2. Foxtel

    PayPal WPP Direct Payments & Express Checkout Support

    I just tested it on a vanilla install of oscommerce with the only contribution being PayPal WPP Direct Payments & Express Checkout and the same issue happened when canceling back from EC. I get the %7F instead of osCsid. Thank you for your support.
  3. Foxtel

    PayPal WPP Direct Payments & Express Checkout Support

    In file paypal_wpp.php and in function function ec_step1() There is this code. if (tep_session_is_registered('customer_first_name') && tep_session_is_registered('customer_id')) { $redirect_path = FILENAME_CHECKOUT_SHIPPING; $redirect_attr = 'ec_cancel=1'; } else { $redirect_path = FILENAME_LOGIN; $redirect_attr = 'ec_cancel=1'; } //The docs say that these should be urlencoded, but spits out errors when they I do it $order_info['PAYPAL_RETURN_URL'] = tep_href_link(FILENAME_EC_PROCESS, '', 'SSL'); $order_info['PAYPAL_CANCEL_URL'] = tep_href_link($redirect_path, $redirect_attr, 'SSL'); The function prototype is this function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) So it looks like all the parameters are being passed to the function correctly. I stepped through the code and $order_info['PAYPAL_CANCEL_URL'] variable has the correct path back the site and the full osCsid=xxxxx.xxxxxx.xxxxx. The path looks correct and there is no %7F. Once the client is taken to EC and they click the “Return to mysite” is when the issue happened and the osCsid is messed up. Looks like the correct CANCEL_URL is being sent correctly to EC but on a cancel from EC back to the site is when the osCsid is messed up with the %7F Not sure if this is an issue on the paypal test sandbox server. I don’t currently have a live account with paypal so I’m not able to test if there’s any difference between the sandbox or the live server. Any other thoughts? Regards, Marizka
  4. Foxtel

    PayPal WPP Direct Payments & Express Checkout Support

    Thank you Dynamoeffects for this contribution and your support. I have quoted GM1, because I’m having the exact same issue. I also have a sandbox account where I’m doing all the testing. I have tested this issue on both the test sever running XAMPP and the real server running Linux/Apache Test Server Running (on Windows) XAMPP Apache/2.2.0 PHP/5.1.2 Linux Server SuSe10.1 Apache/2.2.0 PHP/5.2.0 I do have Chemo's SEO mod and have disabled it, but the issue is still there. This is how I’m able to recreate the issue: The clients browser is NOT accepting cookies (I’m using FireFox and selectively adding to NOT accept cookies from mysite) So now the osCsid is on the URL as expected when cookies are disable. Client is in the login.php and clicks to use EC and goes to paypals site (In my case is the sand box test server) If the client decides NOT to checkout with paypal and cancels by clicking the “Return to mysite” , the cart empties and the URL has the following https://site.com/login.php?ec_cance=1%7Fcc7ec4386b361cf6ad6ce074db88c24&token=EC-8G909264R35533455 When the %7F is changed back to osCsid=acc7ec4386b361cf6ad6ce074db88c24 the cart has the items that it had before it went to EC. For some reason the osCsid= has change to %7F. I have disable Chemo’s SEO mod but it does NOT solve the issue. When the clients browser is accepting cookies there is NO problems. The client cancels by clicking on “Return to mysite” and the cart still has the items in it. Has anyone else experienced this issue? Does anyone have any suggestion on what the root cause might be? Thank you. Regards, Marizka
  5. Foxtel

    Product Listing in Columns v2.0

    I've been running v2.2 with clean install instructions for quite sometime now. Lately I've notice something strange where the products ALL show up as 1 column only. I have it set up in admin to show up 2 products per row. This issue showed up when I added my 6th main category. If I deleted the category that I just added then the issue went away and the products all showed up 2 per row as I had set in admin, as soon as I added the 6th category and clicked on a product category link again all the products would show as 1 column only. Also, another interesting scenario is if I added a 7th main category there were NO issues with the products showing in 1 column only. I tested this on another test site and I was able to recreate the same issue, on the 6th main category added all the products showed as 1 column only. So, I went and looked at product_listing_col.php in more detail and this is what I found... In the if statement the 2 variable $x and $no_of_listings that are NOT initialize anywhere in product_listing_col.php Just too double check I searched the entire OsCommerce project for $no_of_listings and could not find anything that was initializing the variable $no_of_listings. Then I search for the variable $x and there are many other files that use the variable $x specific to only those file that use it. I did some tests on echoing out the variable $x and $no_of_listings and the values that echoed out was $x= -1 and $no_of_listings = null. These values where making the if statement true and executing the code inside. This unexpected code execution was causing ALL the products to show in 1 column only. I commented out the entire if statement because from my testing there is no logic in product_listing_col.php that makes if ($x == ($no_of_listings -1)) be a valid logic True. /*COMMENTED CODE if ($x == ($no_of_listings -1)) { //BOF version 2.2 modification // fill up the remainder of the table row with empty cells, assumes three products per row! for($column=1; $column < $colnum; $column++) { $list_box_contents[$row][$column + 1] = array('align' => 'center', //bof product listing with attributes 'valign' => $lc_valign, //eof product listing with attributes //2.2 modification ,add width in td 'params' => 'class="productListing-data" width="'.$tdsize.'%"', 'text' => " "); } //EOF version 2.2 modification //the commented code below is the old 2.1 version /* if ($column == '1') { $list_box_contents[$row][$column + 1] = array('align' => 'center', //bof product listing with attributes 'valign' => $lc_valign, //eof product listing with attributes 'params' => 'class="productListing-data"', 'text' => " "); $column ++; } if ($column == '2') { $list_box_contents[$row][$column + 1] = array('align' => 'center', //bof product listing with attributes 'valign' => $lc_valign, //eof product listing with attributes 'params' => 'class="productListing-data"', 'text' => " "); } */ } COMMENTED CODE*/ There also this code that has the same variable in this if statement if ($column >= $colnum || $x == ($no_of_listings -1) ) if ($column >= $colnum || $x == ($no_of_listings -1) ) { $row ++; // we start a new tr here with $list_box_contents $list_box_contents[$row] = array('params' => $class_for_buy_now); $column = 0; } I removed the $x == ($no_of_listings -1) from the if statement so now it looks like this if ($column >= $colnum) { $row ++; // we start a new tr here with $list_box_contents $list_box_contents[$row] = array('params' => $class_for_buy_now); $column = 0; } After the following changes above the products show correctly as set in admin. This issue looks to only surface when you have 6 main categories. Not sure why only the 6th main category causes this issue. The only thing I can think of is that some where in another file variable $x is getting initialized to -1 making the if statement true, causing the 1 column products issue. FYI... Many of us run our shops with register_globals = On, This feature has a security risk, if variables are NOT initialize an intruder can compromise the site by injecting the variable in the URL and making something execute you don’t want. More info here http://us2.php.net/register_globals. Un-initialized variable are time booms waiting to explode. ALLWAYS initialize your variable to some known value as good coding practice.
  6. MYSTERY SOLVED! For my configuration, when Apache Ver2 Server starts up, it pulls many configuration files. These 2 specific ones (httpd.conf and default-server.conf) were the ones that were giving me trouble. The issue was that I was supposed to make my edits to default-server.conf NOT httpd.conf. When I restarted the server, httpd.conf would be executed, then a few lines of code further down in httpd.conf it would include default-server.conf. So, I was setting AllowOverride all in httpd.conf but then when default-server.conf was included it would set it back to default value of AllowOverride None, so my .htaccess never worked. Now, I did my edits to default-server.conf and everything is working as expected. -Marizka
  7. Forgot to mention that when I moved my rewrite rules to httpd.conf, I renamed the .htaccess to a.htaccess so there would not be any conficts between httpd.conf and .htaccess having identical rewrite rules, then restated the sever for the changed to take effect. From reading the Apache Tutorial on .htaccess is where I got some of these ideas to try http://httpd.apache.org/docs/2.2/howto/htaccess.html Here are a few other things that I tried. This code is in my httpd.conf NOTE: This is the only change AllowOverride None This code works only when the shop is in the catalog folder. # use .htaccess files for overriding, AccessFileName .htaccess <Directory "/srv/www/htdocs/catalog"> # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # Ultimate SEO URLs BEGIN Options +FollowSymLinks RewriteEngine On RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-([0-9]+).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pi-([0-9]+).html$ popup_image.php?pID=$2&%{QUERY_STRING} RewriteRule ^(.*)-t-([0-9]+).html$ articles.php?tPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-a-([0-9]+).html$ article_info.php?articles_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pr-([0-9]+).html$ product_reviews.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pri-([0-9]+).html$ product_reviews_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-i-([0-9]+).html$ information.php?info_id=$2&%{QUERY_STRING} # Ultimate SEO URLs END </Directory> Then I change the code to this and it does NOT work. I get the same error that I mentioned before # use .htaccess files for overriding, AccessFileName .htaccess <Directory "/srv/www/htdocs"> # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # Ultimate SEO URLs BEGIN Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-([0-9]+).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pi-([0-9]+).html$ popup_image.php?pID=$2&%{QUERY_STRING} RewriteRule ^(.*)-t-([0-9]+).html$ articles.php?tPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-a-([0-9]+).html$ article_info.php?articles_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pr-([0-9]+).html$ product_reviews.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pri-([0-9]+).html$ product_reviews_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-i-([0-9]+).html$ information.php?info_id=$2&%{QUERY_STRING} # Ultimate SEO URLs END </Directory> Any other ideas? Thank you -Regards Marizka
  8. I tried moving the rewrite rules to httpd.conf as follows and this works. # use .htaccess files for overriding, AccessFileName .htaccess <Directory "/srv/www/htdocs/catalog"> # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All # Ultimate SEO URLs BEGIN Options +FollowSymLinks RewriteEngine On RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-([0-9]+).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pi-([0-9]+).html$ popup_image.php?pID=$2&%{QUERY_STRING} RewriteRule ^(.*)-t-([0-9]+).html$ articles.php?tPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-a-([0-9]+).html$ article_info.php?articles_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pr-([0-9]+).html$ product_reviews.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pri-([0-9]+).html$ product_reviews_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-i-([0-9]+).html$ information.php?info_id=$2&%{QUERY_STRING} # Ultimate SEO URLs END </Directory> Then I tired the same thing but change the paths to my root directory (/srv/www/htdocs) and I get Error Access Denied. # use .htaccess files for overriding, AccessFileName .htaccess <Directory "/srv/www/htdocs"> # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All # Ultimate SEO URLs BEGIN Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-([0-9]+).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pi-([0-9]+).html$ popup_image.php?pID=$2&%{QUERY_STRING} RewriteRule ^(.*)-t-([0-9]+).html$ articles.php?tPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-a-([0-9]+).html$ article_info.php?articles_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pr-([0-9]+).html$ product_reviews.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pri-([0-9]+).html$ product_reviews_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-i-([0-9]+).html$ information.php?info_id=$2&%{QUERY_STRING} # Ultimate SEO URLs END </Directory> I started commenting code to see what was causing the Access Denied Error and when I commented out #RewriteEngine On the site came back up but still the write rules did not seem to work because with I would click on a product then I would get "Object Not Found Error 404". So, commenting out RewriteEngine On is not a good idea, look like that code enables the rewriteEngine. When I do this testing all my files that are in catalog have been transferred to from /srv/www/htdocs/catalog to /srv/www/htdocs. What I want to accomplish is instead of a URL of http://www.site/catalog I want http://www.site.com. Now http://www.site.com works fine only when I disable SEO in admin It's still a mystery to me why my rewrite rules don’t work on my root directory. Can anybody see what I'm over looking? Anybody have and ideas on what's wrong? Thank you. Regards –Marizka
  9. For months I've been using version Ultimate SEO URLs v2.1c with out any issues. I have made updates to this version from the discussion on this thread also without any issues. The following settings have been working for months without any issues The shop was installed in the catalog directory. My .htaccess is as follow # $Id: .htaccess,v 1.3 2003/06/12 10:53:20 hpdl Exp $ # # This is used with Apache WebServers # # For this to work, you must include the parameter 'Options' to # the AllowOverride configuration # # Example: # # <Directory "/usr/local/apache/htdocs"> # AllowOverride Options # </Directory> # # 'All' with also work. (This configuration is in the # apache/conf/httpd.conf file) # The following makes adjustments to the SSL protocol for Internet # Explorer browsers <IfModule mod_setenvif.c> <IfDefine SSL> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 </IfDefine> </IfModule> # If Search Engine Friendly URLs do not work, try enabling the # following Apache configuration parameter # # AcceptPathInfo On # Fix certain PHP values # (commented out by default to prevent errors occuring on certain # servers) # #<IfModule mod_php4.c> # php_value session.use_trans_sid 0 # php_value register_globals 1 #</IfModule> # Ultimate SEO URLs BEGIN Options +FollowSymLinks RewriteEngine On RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-([0-9]+).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pi-([0-9]+).html$ popup_image.php?pID=$2&%{QUERY_STRING} RewriteRule ^(.*)-t-([0-9]+).html$ articles.php?tPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-a-([0-9]+).html$ article_info.php?articles_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pr-([0-9]+).html$ product_reviews.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pri-([0-9]+).html$ product_reviews_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-i-([0-9]+).html$ information.php?info_id=$2&%{QUERY_STRING} # Ultimate SEO URLs END My httpd.conf has this part of code that is related to .htaccess # use .htaccess files for overriding, AccessFileName .htaccess <Directory "/srv/www/htdocs/catalog"> # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All </Directory> The following are setting in admin for SEO URLs Enable SEO URLs? True Add cPath to product URLs? False Add category parent to begining of URLs? True Filter Short Words 0 Output W3C valid URLs (parameter string)? False Enable SEO cache to save queries? True Enable product cache? True Enable categories cache? True Enable manufacturers cache? True Enable articles cache? True Enable topics cache? True Enable information cache? True Enable automatic redirects? True Choose URL Rewrite Type Rewrite Enter special character conversions Remove all non-alphanumeric characters? False Reset SEO URLs Cache False Other Admin settings: Use Search-Engine Safe URLs (still in development) False Other files that are important: /catalog/includes/configuration.php Has all the correct paths and settings /catalog/admin/includes/configuration.php Has all the correct paths and settings Again, all the settings I have listed above have been working for me without any issues for months. Now, here is the issue: I have moved the shop from catalog to my web root directory htdocs (full path /srv/www/htdocs) and every page that does NOT get the rewrite rule is O.K. for example index.php, shopping_cart.php, contact_us.php..ect are O.K but when I click on a product I get a "Object Not Found Error 404". All the products that I hover over have the correct rewrite rule but when I click on any product I get "Object Not Found Error 404" Here are the same settings as I listed above with the changes now for the root directory htdocs. The differences are in bold My .htaccess is as follow # $Id: .htaccess,v 1.3 2003/06/12 10:53:20 hpdl Exp $ # # This is used with Apache WebServers # # For this to work, you must include the parameter 'Options' to # the AllowOverride configuration # # Example: # # <Directory "/usr/local/apache/htdocs"> # AllowOverride Options # </Directory> # # 'All' with also work. (This configuration is in the # apache/conf/httpd.conf file) # The following makes adjustments to the SSL protocol for Internet # Explorer browsers <IfModule mod_setenvif.c> <IfDefine SSL> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 </IfDefine> </IfModule> # If Search Engine Friendly URLs do not work, try enabling the # following Apache configuration parameter # # AcceptPathInfo On # Fix certain PHP values # (commented out by default to prevent errors occuring on certain # servers) # #<IfModule mod_php4.c> # php_value session.use_trans_sid 0 # php_value register_globals 1 #</IfModule> # Ultimate SEO URLs BEGIN Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-([0-9]+).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pi-([0-9]+).html$ popup_image.php?pID=$2&%{QUERY_STRING} RewriteRule ^(.*)-t-([0-9]+).html$ articles.php?tPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-a-([0-9]+).html$ article_info.php?articles_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pr-([0-9]+).html$ product_reviews.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-pri-([0-9]+).html$ product_reviews_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-i-([0-9]+).html$ information.php?info_id=$2&%{QUERY_STRING} # Ultimate SEO URLs END My httpd.conf has this part of code that is related to .htaccess # use .htaccess files for overriding, AccessFileName .htaccess <Directory "/srv/www/htdocs"> # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All </Directory> The following are setting in admin for SEO URLs Enable SEO URLs? True Add cPath to product URLs? False Add category parent to begining of URLs? True Filter Short Words 0 Output W3C valid URLs (parameter string)? False Enable SEO cache to save queries? False (I change this to False while I'm debuging this issue) Enable product cache? True Enable categories cache? True Enable manufacturers cache? True Enable articles cache? True Enable topics cache? True Enable information cache? True Enable automatic redirects? True (Note: It's been discussed in the form that this setting should be False but it has made no difference in my case if its True or False) Choose URL Rewrite Type Rewrite Enter special character conversions Remove all non-alphanumeric characters? False Reset SEO URLs Cache False Other Admin settings: Use Search-Engine Safe URLs (still in development) False Other files that are important: /catalog/includes/configuration.php Has all the correct paths and settings to match the new root directory htdocs /catalog/admin/includes/configuration.php Has all the correct paths and settings match the new root directory htdocs From the testing that I've done it looks like for some reason the .htaccess is NOT being read. I have set Enable SEO URLs? to False and everything is working again without any problems. Other debug tests the I have tried 1. Checked that .htaccess has the correct permission 2. Everytime I make a change to httpd.conf I re-start the server to make sure the change takes effect 3. mod_rewrite is enabled on the server I've seen previous posts having similar issue to the one I have and it seem that the problem most of the time was related to an error in .htaccess. For example not having the correct path set for RewriteBase. But I check and double checked that paths and they all look correct to me. Summary: Everything was working fine for months when the shop was in the directory catalog example( /srv/www/htdocs/catalog) I have moved the shop to the root directory htdocs (/srv/www/htdocs) and all pages that don't have rewrite rules applied are O.K but when I click on any of the products I get "Object Not Found Error 404" Server Specs: Server OS:Linux 2.6.18.2-34-default Database:MySQL 5.0.26 HTTP Server:Apache PHP Version:5.2.0 (Zend: 2.2.0) Server API:Apache 2.0 Handler I thought this would be a simple change but it has turned into a project. I've been working on this issue for a few days now and I'm running out of ideas. I'm just out of ideas as to why the rewrites dont work on my htdocs root directory. I need some assistace, please. Regards -Marizka
  10. Foxtel

    Article Manager v1.0

    This issue has been discussed in previous posts. This is my update from what I found. Post explaining the issue http://forums.oscommerce.com/index.php?sho...=208286&st= This query was tested on PHP5.0.5 MySQL 5.0.15 Original query in catalog/articles.php $articles_all_query_raw = "select a.articles_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_id, au.authors_name, td.topics_id, td.topics_name from " . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t left join " . TABLE_TOPICS_DESCRIPTION . " td on a2t.topics_id = td.topics_id left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' order by a.articles_date_added desc, ad.articles_name"; Modified query. Note that the only change was adding parenthesis to enclose from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " articles_all_query_raw = "select a.articles_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_id, au.authors_name, td.topics_id, td.topics_name from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " . TABLE_TOPICS_DESCRIPTION . " td on a2t.topics_id = td.topics_id left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' order by a.articles_date_added desc, ad.articles_name"; Original query in catalog/articles_new.php $articles_new_query_raw = "select a.articles_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_id, au.authors_name, td.topics_id, td.topics_name from " . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t left join " . TABLE_TOPICS_DESCRIPTION . " td on (a2t.topics_id = td.topics_id) left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' and a.articles_date_added > SUBDATE(now( ), INTERVAL '" . NEW_ARTICLES_DAYS_DISPLAY . "' DAY) order by a.articles_date_added desc, ad.articles_name"; Modified query. Note: The only change was adding parenthesis to from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " $articles_new_query_raw = "select a.articles_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_id, au.authors_name, td.topics_id, td.topics_name from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " . TABLE_TOPICS_DESCRIPTION . " td on (a2t.topics_id = td.topics_id) left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' and a.articles_date_added > SUBDATE(now( ), INTERVAL '" . NEW_ARTICLES_DAYS_DISPLAY . "' DAY) order by a.articles_date_added desc, ad.articles_name";
  11. Foxtel

    Article Manager v1.0

    This issue has been discussed in previous posts. This is my update from what I found. Post explaining the issue http://forums.oscommerce.com/index.php?sho...=208286&st= This query was tested on PHP5.0.5 MySQL 5.0.15 Original query in catalog/articles.php $articles_all_query_raw = "select a.articles_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_id, au.authors_name, td.topics_id, td.topics_name from " . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t left join " . TABLE_TOPICS_DESCRIPTION . " td on a2t.topics_id = td.topics_id left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' order by a.articles_date_added desc, ad.articles_name"; Modified query. Note that the only change was adding parenthesis to enclose from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " articles_all_query_raw = "select a.articles_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_id, au.authors_name, td.topics_id, td.topics_name from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " . TABLE_TOPICS_DESCRIPTION . " td on a2t.topics_id = td.topics_id left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' order by a.articles_date_added desc, ad.articles_name"; Original query in catalog/articles_new.php $articles_new_query_raw = "select a.articles_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_id, au.authors_name, td.topics_id, td.topics_name from " . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t left join " . TABLE_TOPICS_DESCRIPTION . " td on (a2t.topics_id = td.topics_id) left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' and a.articles_date_added > SUBDATE(now( ), INTERVAL '" . NEW_ARTICLES_DAYS_DISPLAY . "' DAY) order by a.articles_date_added desc, ad.articles_name"; Modified query. Note: The only change was adding parenthesis to from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " $articles_new_query_raw = "select a.articles_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_id, au.authors_name, td.topics_id, td.topics_name from (" . TABLE_ARTICLES . " a, " . TABLE_ARTICLES_TO_TOPICS . " a2t) left join " . TABLE_TOPICS_DESCRIPTION . " td on (a2t.topics_id = td.topics_id) left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$languages_id . "' and td.language_id = '" . (int)$languages_id . "' and a.articles_date_added > SUBDATE(now( ), INTERVAL '" . NEW_ARTICLES_DAYS_DISPLAY . "' DAY) order by a.articles_date_added desc, ad.articles_name";
  12. Foxtel

    Article Manager v1.0

    I have the same issue. The only thing I can think of is there might be an SQL incompatibility. If using MySQL < 5.0 I believe there is no issue. I'm using MySQL > 5.0. I'm still investigating. Has anybody else that seen this issue found a way to correct it. Thank you - Marizka.
  13. Looking at the link you provided when you hit the "Buy Now" button your URL has the following http://....../shopping_cart.php?sort=2a&osCsid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx The & should NOT be there it should be a &. Try this.. in /includes/functions/general.php find // Redirect to another page or site function tep_redirect($url) { /*****START_REPLACE_&AMP;_WITH_&*****/ $url = preg_replace('/&/','&',$url); /*****END_REPLACE_&AMP;_WITH_&*****/ if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) { tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false)); } if ( (ENABLE_SSL == true) && (getenv('HTTPS') == 'on') ) { // We are loading an SSL page if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url $url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL } } header('Location: ' . $url); tep_exit(); } This is the change /*****START_REPLACE_&AMP;_WITH_&*****/ $url = preg_replace('/&/','&',$url); /*****END_REPLACE_&AMP;_WITH_&*****/ There could be other reasons that the & is showing instead of &. Try this out first. -Marizka
  14. but you did include this code? // include server parameters require('includes/configure.php'); You still need to include the configure.php. The DIR_ROOT_DEFAULT looks to be something custom to this site. In imagemagic.php the directory is change by this code chdir (DIR_FS_CATALOG); The definition for DIR_FS_CATALOG is in includes/configure.php verify that path to see if the image folder matches that same path directory. -Marizka
  15. Verify if you have a includes/local/configure.php. File imagemagic.php does this following check if (file_exists('includes/local/configure.php')) { //use local dev params if available include('includes/local/configure.php'); } else { // include server parameters require('includes/configure.php'); } If it finds that you have a includes/local/configure.php then it will use the instead of includes/configure.php. The issue is that includes/local/configure.php might not have all the directory paths like includes/configure.php does. What I did was just comment out /*if (file_exists('includes/local/configure.php')) { //use local dev params if available include('includes/local/configure.php'); } else { // include server parameters require('includes/configure.php'); }*/ and just used // include server parameters require('includes/configure.php'); after that change /thumbnails/images had the images. -Marizka
  16. Looking over the index.php, there are two places that the starting <?php is missing. First <?php if (isset($HTTP_GET_VARS['manufacturers_id'])) <TD <?php echo CONTENT_PARAM_FIRST_TD; ?>> <?php echo CONTENT_TOP_FIRST_TD; ?> <TABLE <?php echo CONTENT_PARAM_FIRST_TABLE; ?>> <TR> <TD><?php if (isset($HTTP_GET_VARS['manufacturers_id'])) $db_query = tep_db_query("select manufacturers_htc_title_tag as htc_title, manufacturers_htc_description as htc_description from " . TABLE_MANUFACTURERS_INFO . " where languages_id = '" . (int)$languages_id . "' and manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); else $db_query = tep_db_query("select categories_htc_title_tag as htc_title, categories_htc_description as htc_description from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$current_category_id . "' and language_id = '" . (int)$languages_id . "'"); $htc = tep_db_fetch_array($db_query); ?> Second <?php if (isset($HTTP_GET_VARS['manufacturers_id'])) <TABLE <?php echo CONTENT_PARAM_FIRST_TABLE; ?>> <?php //echo CONTENT_TOP_FIRST_TABLE; ?> <TR> <TD><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="0"> <TR> <?php if (isset($HTTP_GET_VARS['manufacturers_id'])) $db_query = tep_db_query("select manufacturers_htc_title_tag as htc_title, manufacturers_htc_description as htc_description from " . TABLE_MANUFACTURERS_INFO . " where languages_id = '" . (int)$languages_id . "' and manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); else $db_query = tep_db_query("select categories_htc_title_tag as htc_title, categories_htc_description as htc_description from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$current_category_id . "' and language_id = '" . (int)$languages_id . "'"); $htc = tep_db_fetch_array($db_query); ?> -Marizka
  17. O.K, Now try the following to make the centered body align with the rest of the page. Change <!-- body //--> </tr> </tbody> </table> <table align="center" border="0" cellpadding="2" cellspacing="1" width="776"> <tbody> <tr> <td valign="top" width="125"> <table border="0" cellpadding="2" cellspacing="1" width="125"> <!-- left_navigation //--> To: <!-- body //--> </tr> </tbody> </table> <table align="center" border="0" cellpadding="0" cellspacing="0" width="776"> <tbody> <tr> <td valign="top" width="125"> <table border="0" cellpadding="0" cellspacing="0" width="125"> <!-- left_navigation //--> Chage: <!-- body_text //--> <td valign="top" width="100%"> <table border="0" cellpadding="0" cellspacing="0" width="10%"> <tbody> <tr> <td> <table border="0" cellpadding="0" cellspacing="0" width="10%"> <tbody> <tr> <td class="pageHeading"> Site Map </td> <td class="pageHeading" align="right"> <img src="images/table_background_specials.gif" alt="Site Map" title=" Site Map " border="0" height="40" width="57"> </td> </tr> </tbody> </table> </td> </tr> To: <!-- body_text //--> <td valign="top" width="100%"> <table border="0" cellpadding="0" cellspacing="0" width="10%"> <tbody> <tr> <td> <table border="0" cellpadding="0" cellspacing="0" width="553"> <tbody> <tr> <td class="pageHeading"> Site Map </td> <td class="pageHeading" align="right"> <img src="images/table_background_specials.gif" alt="Site Map" title=" Site Map " border="0" height="40" width="57"> </td> </tr> </tbody> </table> </td> </tr> -Marizka
  18. Looks like some of the tables need to be formatted to match the layout that you have. Try this... Change from this. <!-- body //--> </tr> </tbody> </table> <table border="0" cellpadding="2" cellspacing="1" width="100%"> <tbody> <tr> <td valign="top" width="125"> <table border="0" cellpadding="2" cellspacing="0" width="125"> <!-- left_navigation //--> To this. Note that the only change is in the 1st table parameters width="776" align="center" <!-- body //--> </tr> </tbody> </table> <table border="0" cellpadding="2" cellspacing="1" width="776" align="center"> <tbody> <tr> <td valign="top" width="125"> <table border="0" cellpadding="2" cellspacing="0" width="125"> <!-- left_navigation //--> This should now center that main body page. Now for COLUMN_LEFT_WIDTH, I think it should evaluate to a number. Looking at some or your <td> widths it might be 125. You should look in your code and find out where COLUMN_LEFT_WIDTH is defined to see what that number really is. There might be more formating to be done but lets see if this centers the page first. -Marizka
  19. Looking at how your html is parced for dynamic_sitemap.php I notice the following <td width="125" valign="top"> <table width="125" cellspacing="0" cellpadding="2" border="0"> <tbody> <tr> <td width="COLUMN_LEFT_WIDTH" valign="top" style="background: transparent url(images/design/bg_repeat_column_left.gif) repeat-y scroll left top; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> <table width="" cellspacing="0" cellpadding="0" border="0"> </table> </td> </tr> </tbody> </table> </td> Is COLUMN_LEFT_WIDTH a constant you have defined somewhere that its suppose to evaluate to a number? Maybe this could be causing the issue.
  20. One possibility is that a missing </table> tag or and extra </table> tag needs to be added or removed. Look to see that your <table> tags all match up with the closing </table> tag. -Marizka
  21. Looks like you missing a closing ?> if ($category_depth == 'nested') { $category_query = tep_db_query("select cd.categories_name, c.categories_image, cd.categories_htc_title_tag, cd.categories_htc_description from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");,?> <TD <?php echo CONTENT_PARAM_FIRST_TD; ?>> -Marizka
  22. Foxtel

    Page cache by Chemo

    Does anyone have "Your Recent History" contribution and using page_cache? The issue that I'm having is that both the shopping cart and the recent history need to be dynamic on the cache pages. Looking over the code on how the page is cache for the cart it would look like the same concept would apply for the Your Recent History box. Actually I experimented and tried this. In application_top.php /*--------------------------------------------------------*\ # Page cache contribution - by Chemo # Define the pages to be cached in the $cache_pages array \*--------------------------------------------------------*/ $cache_pages = array('index.php', 'product_info.php'); //$we_cache = false; if (!tep_session_is_registered('customer_id') && ENABLE_PAGE_CACHE == 'true') { # Start the output buffer for the shopping cart //$we_cache = true; if(0) { ob_start(); require(DIR_WS_BOXES . 'shopping_cart.php'); $cart_cache = ob_get_clean(); } if(1) { //ob_start(); require(DIR_WS_MODULES . 'your_recent_history.php'); //$recent_history_cache = ob_get_clean(); } //$cart_history_cache .= $cart_cache . $yrh; # End the output buffer for cart and save as $cart_cache string # Loop through the $cache_pages array and start caching if found foreach ($cache_pages as $index => $page){ if ( strpos($_SERVER['PHP_SELF'], $page) ){ include_once(DIR_WS_CLASSES . 'page_cache.php'); $page_cache = new page_cache($yrh,'<%YRH%>'); /*$page_cache1 = new page_cache($cart_cache,'<%CART_CACHE%>');*/ //$yrh_cache = new page_cache($yrh); //$page_cache = new page_cache($cart_history_cache); # The cache timelife is set globally # in the admin control panel settings # Example below overrides the setting to 60 minutes # Leave blank to use default setting # $page_cache->cache_this_page(60); $page_cache->cache_this_page(); //$page_cache1->cache_this_page(); } # End if } # End foreach } # End if I modified the page_cache.php class so I can pass the place holder of <%YRH%> or <%CART_CACHE%> , Your Recent History and Cart Cache respectively. This is working fine when I just pass one of the ob buffers to the function Ex. $page_cache = new page_cache($yrh,'<%YRH%>'); or page_cache = new page_cache($cart_cache,'<%CART_CACHE%>'); . Where I'm stuck is being able to pass both of the buffers at the same time to the function page_cache(). Some experiments that I tried was to combine the 2 buffers $cart_history_cache .= $cart_cache . $yrh and it work but it showed the shopping cart and the Your Recent History both in the shopping cart box. I also tried a few other experiments as you can see from the commented code. Could some one point me in the right direction on how to implement passing both shopping cart and Your Recent History into the page_cache() or any tips on implementation? Thank you. Marizka
  23. Amanda, Thank You. On installation step 5 looks like you show two solutions one for none cache pages and another for cache pages. I used this code witch looks to be for none cache pages include(DIR_WS_MODULES . 'your_recent_history.php'); echo $yrh; without any issues. I would like to take advantage of being able to cache pages and use this code witch looks to be the one used for cache pages if (!stristr($PHP_SELF,'checkout')) { // not during checkout pages if ($we_cache) { // we cache this page echo '<%YRH%>'; // placeholder } else { include(DIR_WS_MODULES . 'your_recent_history.php'); // create the box echo $yrh; // display the box } } For the page cache contribution would it be this one? http://www.oscommerce.com/community/contributions,2561/ In the if ($we_cache) where is $we_cache initialized? I'm not familiar with this syntax <%YRH%> is that related to $yrh somehow? How is <%YRH%> initialized? echo '<%YRH%>'; // placeholder Is this how we output the box if we have a cache page? Thank you for your support, I appreciate your help. Regards, Marizka
  24. Amanda, On installation step 6 in the module product_listing.php right after : new contentBox($info_box_contents, '#ffffff'); we add: $products_found = true; and right after : $info_box_contents[0][] = array('params' => 'class="productListing-data"', 'text' => TEXT_NO_PRODUCTS); new contentBox($info_box_contents); we add: $products_found = false; I did a search on file \includes\modules\product_listing.php for new contentBox($info_box_contents, '#ffffff'); and $info_box_contents[0][] and no search result are found. I also tried to shortening the search to new contentBox and $info_box_contents but still on search results are found. I also tried to do an entire search on the project and the only instance return that match $info_box_contents[0][] was found in shopping_cart.php. I'm I over looking something? I also tried the same search on the stock version of product_listing.php but still no search results found. Regards, Marizka
  25. Amanda, Thank you, a contribution release would be great. Regards, Marizka
×