When submitting a large number of form fields, ColdFusion 10 crashes even if ColdFusion 9 does not.
Earlier versions of ColdFusion 9 did not restrict the number of form fields that could be submitted. ColdFusion 10, be default limits the number of fields to 100.
If you go to Server Settings -> Settings then the to Request Size Limits section. There is a setting called Maximum number of POST request parameters. It needs to be adjusted upward
As Leigh mentioned (I can personally attest to this), this limit was actually added in 9.0.2. The problem was that there was no way to change it in the admin UI, had to do it in XML.
In ColdFusion – 9:
First install the security fix( http://helpx.adobe.com/coldfusion/kb/coldfusion-security-hotfix.html ) for ColdFusion - 9.
Go to {ColdFusion-Home}/lib for Server Installation
OR: {ColdFusion-Home}/WEB-INF/cfusion/lib for Multiserver or J2EE installation.
Open file neo-runtime.xml
After the line: <var name='postSizeLimit'><number>100.0</number></var>
Add the line <var name='postParametersLimit'><number>100.0</number></var>
You can change the limit as per your need.
Related
I am writing a ColdFusion program that uses cfquery to get data from an AS/400 iSeries table and then output that data to a web page. Some times the Data is in Chinese, but it does not output the Chinese characters correctly.
I built the query below for testing,
<cfprocessingdirective pageEncoding="UTF-8" />
<cfquery name="Test" Datasource = "AS400">
select dsc1 from sales where ref = '123456'
</cfquery>
<cfoutput>#test.dsc1#</cfoutput>
The result should be "M5方头螺栓" but I only get "M5". I did another test running just:
<cfset x = "M5方头螺栓"/>
<cfoutput>#x#</cfoutput>
and it displays the Chinese no problem.
Since ColdFusion can display the characters when they are written out in the code, but not when it goes to get the data through SQL, it seems like the issue is with either my ODBC settings or my ColdFusion Server Data Source Settings but I'm not familiar enough with these settings to know what needs to be changed to get this working.
A workaround was found and discussed within the comments. Adding some details here as an answer for future visitors to this page.
There are a couple of considerations when dealing with Unicode (Chinese) characters:
The data type for the database table must be set to nvarchar
The form processing script (CFML) must be set to utf-8
I believe ColdFusion defaults to this but you can specify the setting to be sure.For example: <cfprocessingDirective pageEncoding=”utf-8″>
Enable "String Format" within the ColdFusion datasource settings
Under the ColdFusion administrator datasource settings select the appropriate datasource you are using. Then click on the "show advanced settings" button. That will show an option for "String Format" Enable High ASCII characters and Unicode for data sources configured for non-Latin characters. Select this option and save the datasource.
The issue for the OP was that they were using an ODBC datasource and the "String Format" option was not available. After some research and the lack of finding any way to configure an ODBC datasource for that setting I recommended trying to use the builtin JDBC driver for "DB2 Universal Database" that comes with ColdFusion. Switching to that driver resolved this issue for the OP.
From the comments
Good info. Though is "Enable String Format..." necessary with the added support for cf_sql_nvarchar in CF10+? – #Leigh
I do believe Leigh is correct that the newer versions of ColdFusion (10 and later) have much better support for nvarchar fields.
Also to note, it looks like some older versions of ColdFusion don't always work with the installed DB2 Universal Driver, and it doesn't look like the older standard versions even have it, I'm not sure if the newer ones have it either, but using the "other" option with jt400.jar, should also work. - #MHall
You've already proven that CF can output UTF-8 characters correctly. Have you tried running that query in the DB console or UI? Do you get the correct charaters?
If the characters were stored as VARCHAR and not NVARCHAR, then there's nothing you can do. The data has to have been properly stored in the first place.
If the characters are stored correctly in the DB, try adding <cfprocessingdirective pageEncoding="utf-8"> at the top of the request. CF should be using UTF-8 by defualt, but this will force the correct character set if, for some reason, it isn't.
My Opencart store has stopped importing orders to ShipStation ever since I updated my Journal theme. I know I probably have to update OpenCart which I am hiring someone to do but I need a workaround till then. Thank you in advance.
I get this error from ShipStation:
"An error occurred attempting to update orders: Invalid XML. Error: 'There are multiple root elements. Line 3, position 14.' We received: ' Journal Installation Error You are using an outdated OpenCart 2.x version. Journal only works with the latest Opencart 2.x version.Please download and install'"
The error log on my Opencart shipstation backend says this:
2016-07-20 12:27:06 - PHP Notice: Undefined offset: 1 in /home/garagist/public_html/store/shipstation/controller/export.php on line 23
Journal support said this to fix it and I have no idea how to do that:
You need to edit /shipstation/config.php file and add this line (anywhere in it), so the Journal engine won't be loaded for that extension:
define('BLOCK_JOURNAL', true);
First you installed the wrong version of Journal. I am very familiar with it and I know the developers provide a template for each version in the zip file from codecanyon. Even if you were running 1.5x, it's in there. Fix that problem first.
Second, ShipStation has nothing to do with journal, you have server issues now (probably due to the incorrect version of journal). I've never had to block journal from the ShipStation config file. That's probably why it isn't working.
FYI, I have around 5 shops and over 10 clients running journal and shipstation, no isuses at all ever. Versions range from OC 1.5-2.3.0.2.
You don't need to upgrade, don't pay if you don't have to.
Update: From Journal Directly "Compatible with Opencart: 1.5.4.x / 1.5.5.x / 1.5.6.x / 2.0.x / 2.1.x / 2.2.x / 2.3.x" Seems counterintuitive to support 2.0x if they're going to force you to update your OC installation when the theme is installed doesn't it?
Good luck.
This is driving me crazy. We recently migrated over to Amazons EC2 service, and now file uploads (using Motobit Huge ASP Upload) in our application fail for any files larger than 120kb. I know the default limit is 200kb, but its failing for anything larger than 120 with an error number of -2147024893 (0x80070003) with no description/details at all. I cannot find anything in the event viewer or IIS logs to help point me in any direction.
I did go into IIS under the ASP properties for the site in question, and changed the Maximum Requesting Entity Body Limit from 200000 to 400000, and it made no difference at all. I even tried an iisreset, as well as rebooted the server after making the change just to ensure it applied out of hopeless desperation.
I have tried a multitude of different files and file sizes. The most I have been able to upload is a 120KB file. Its not a code issue, as this same code is working on my local box (IIS 7) without issue, and was simply copied over from our old server as-is.
EDIT: I have also tried the following with no results:
set the request filtering settings of Maximum allowed content length to 30000000 (30 Mb).
Manually edited web.config and added requestLimits maxAllowedContentLength="15728640" and httpRuntime maxRequestLength="2147483647"
I hope this can help someone in the future, because I was banging my head against my desk trying to resolve this.
This component has a maximum memory setting of 128K. Any files that are larger than this are not stored in memory, but instead stored in the temp folder. The default temp folder is C:\Windows\Temp.
The culprit was an Application Pool Setting, under advanced settings. 'Load User Profile' was set to true. Resulting in the component trying to use a temp path in C:\Users, which was failing. There are 3 solutions:
Set Load User Profile = False
Assign a temp folder in code (Form.TempPath = "")
Create the folder in C:\Users (use response.write form.CheckRequirements)
For our case, #1 was the perfect solution. #2 would have required edited over 100 files, and #3 would only be needed if you are required to have #1 set to true.
I use opencart version 2.1.0.1
Everytime I click admin > sales > order, it will pop up "error undefined." By closing that popup window, I can still edit order but cannot delete order (no response).
In my log, there is:
PHP Notice: Undefined variable: order_id in
/var/www/html/opencart2101/system/storage/modification/admin/view/template/sale/order_list.tpl on line 821
The line 821 is:
url: 'index.php?route=extension/openbay/addorderinfo&token=<?php echo $token; ?>&order_id=<?php echo $order_id; ?>&status_id=' + status_id,
However, I haven't installed any openbay related module. Also, line 821 is inside <!-- --> mark. It should have no effect.
Help!
Although this is now an older version of opencart, I still see this being reported a lot around and about.
The problem occurs due to the store front adding the http url rather than the https url to the order. So firstly you need to fix that. If you dont want to read all of my explanation, you can just hit up the bold points :)
Either way BACKUP EVERYTHING actually not really, back up the file you are going to edit and backup your whole database.
open:
catalog/controller/checkout/confirm.php at around line 100
Find:
$order_data['store_url'] = HTTP_SERVER;
Change to:
$order_data['store_url'] = HTTPS_SERVER;
Now you will want to fix your database because for reasons I cannot fathom, the domain name is placed in the order along with the stores id. and when editing orders it is the usage of that directly within your admin order page that throws up the undefined notice. Basically the browser blocks the request because its trying to make an insecure request from a secure page.
Crack open phpmyadmin or whatever database tool you have on hand.
locate the table, default is oc_orders
Browsing the table, look for the column that contains your store url (i cant remember the name off hand, i think its just store_url but it will be obvious anyway. if you are multi store you will need to run the query for each
I am sure somebody can come up with a clever way to automatically convert just the http into https with a single use sql query on the one column, but this works for me.
Run SQL: adjust as appropriate
UPDATE `oc_orders` SET `store_url` = 'https://example.com' WHERE store_id = 0;
I've run into a problem in the Wokbox that seems like a Sitecore bug. When the "Items per Page" drop down is set to anything but "All", I'm able to expand the "Draft" and "Awaiting Approval" lists in the Workflow.
But when the "Items per Page" is set to "All", I get the following error:
Exception in MyWebSite: /sitecore/shell/default.aspx?xmlcontrol=Workbox&mo=preview
Message: Operation is not valid due to the current state of the object.
StackTrace: at System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding)
at System.Web.HttpRequest.FillInFormCollection()
And at this point, I'm "stuck" - and unable to revert my view back to anything less than "All" in the "Items per Page" drop-down. So, because I cannot revert back, I cannot do anything on the page, and any attempt to expand the Workflow lists (or do anything on the page) generates the above error.
Any thoughts on what is happening and how to fix this?
I followed up on this to keep from leaving this question unanswered. It turns out that this issue was related to another known issue. For the benefit of those who might be getting a similar issue, here's what fixed this:
The problem can occur when Sitecore CMS is installed on systems that have Microsoft security update MS11-100 installed.
Please refer to the similar known issue on SDN:
The Template Builder may fail when saving templates with many fields
The solution:
Try to add the following node to the section of the web.config file:
<add key="aspnet:MaxHttpCollectionKeys" value="5000" />