Ok, that is strange because both have the exact same action.
In page:
<form name="ChronoContact_ReferAFriend" id="ChronoContact_ReferAFriend" method="post" action="http://www.enounce.com/index.php?option=com_chronocontact&task=send&chronoformname=ReferAFriend&Itemid=161" >
Bare From:
<form name="ChronoContact_ReferAFriend" id="ChronoContact_ReferAFriend" method="post" action="http://www.enounce.com/index.php?option=com_chronocontact&task=send&chronoformname=ReferAFriend&Itemid=161" >
In "Tamper Data" (like Firebug), submitting the SEF URL, I see that the response is 301 redirect back to the /refer-friend url. I don't see the failed to load source.
Submitting the bare form just loads the bare form again with no redirect and the correct form displayed error message at the top.
I've looked at the code and think the difference is here in "showFormErrors" (line 265 of chronoform.php):
if($MyForm->formerrors){
if($session->get('cfreturnurl_'.$formname, '', md5('chrono'))){
$session->set("chrono_form_errors_".$formname, $MyForm->formerrors, md5('chrono'));
$session->set("chrono_form_data_".$formname, $MyForm->posted, md5('chrono'));
//$mainframe->redirect(str_replace('&cfshowerrors=1', '', JRequest::getVar('cfreturnurl')).'&cfshowerrors=1');
$mainframe->redirect($session->get('cfreturnurl_'.$formname, '', md5('chrono')));
}
//$MyForm->showForm($MyForm->formrow->name, $posted);
return true;
}else{
If cfreturnurl is set, it does the redirect. If it's not than it just returns and the next line after returning from "showFormErrors" is to show the form. Looking for "cfreturnurl_" I found it set in only one location here in chronocontact.html.php (line 187 of my version):
<?php if($MyForm->pagetype != 'chronocontact'){ ?>
<?php $session->set("cfreturnurl_".$MyForm->formrow->name, $MyForm->selfURL(), md5('chrono')); ?>
<?php } ?>
where the cfreturnurl_ is set to the self url, in this case /refer-friend.
I think that's all working as it should but why isn't the session being preserved. The form is not repopulated and the error isn't displayed. It's a new form. That might be where we need to look.