warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /srv/www/htdocs/drupal_root/sites/all/modules/salesforcewebform/salesforcewebform.module on line 238.

Not sure what the deal is here... it's difficult to re-create. I have to submit the webform and then click back. That indicates that it probably isn't really a problem—just something that would be nice if it were fixed.

Comments

amariotti’s picture

I'm getting the issue more often than I thought. Now when I submit a webform it sends me back to the form to confirm that the form was submitted and it gives me the error. The error shows up about 20 times.

Until I can get this issue fixed I'm going to disable the Salesforce Webform Module. I'm sure this is frustrating to our users.

Let me know what you find out.

obsidiandesign’s picture

Andrew,

Last night you mentioned that you upgraded from 5.x to 6.x. One thing I didn't think of at the time (when I said there shouldn't be any upgrade issues) is the change in Form API. If you look in INSTALL.txt, there's a slight change in what goes into the 'Additional Processing Field' in the webform configuration. It's a subtle change that I didn't notice, but it makes a big difference. Looking at line 238, which is expecting the submitted_tree array, I think the problem is related to this. If you look in the webform advanced settings section, under 'additional processing', the code from 5.x (which I think is still there) is this:

	require_once(drupal_get_path('module', 'salesforcewebform') . '/salesforcewebform.module');
	$form_values = salesforcewebform_process($form_id, $form_values);

However, $form_values is replaced with $form_state (it's actually a key of the $form_state, but I accounted for the change in the module code, so the 6.x code needs to be:

	require_once(drupal_get_path('module', 'salesforcewebform') . '/salesforcewebform.module');
	$form_state = salesforcewebform_process($form, $form_state);

I'm confident that if you have $form_values, the change to $form_state clears this error, because I'm only able to get my server to give this error if I take out the 6.x code (correct) and put in the 5.x code.

Bryan O'Shea
Obsidian Design

amariotti’s picture

Status: Active » Closed (fixed)

Excellent!