Question
Me again.
I got the plugin to work, but the page isn't getting the "successful!" feedback. In looking at the code, the $query parameter gets set fine (for everything) in the _finishSendEmail function.
However, in the _handleSendEmailTag function, when this line is called:
my $query = TWiki::Func::getCgiQuery();
$query only looks like this if I dump the data:
( {
'.charset' => 'ISO-8859-1',
'.parameters' => [],
'.path_info' => '/TWiki/SendEmailPlugin',
'.fieldnames' => {}
}, 'CGI' );
so it's missing pretty much everything that should be set.
Environment
--
MichelleHedstrom - 08 Feb 2008
Answer
If you answer a question - or someone answered one of your questions - please remember to edit the page and set the status to answered. The status selector is below the edit box.
Strange. I don't see anything wrong on my test machine. I did have to setup
WebMasterEmail in configure first though. What happens if you don't enter anything in the form and press send?
--
ArthurClemens - 08 Feb 2008
The same thing happens. We have the webmaster email stuff set already.
--
MichelleHedstrom - 09 Feb 2008
Specifically we're losing the errorStatus value somewhere between
_finishSendEmail() and
_handleSendEmailTag. It goes in... it gets lost. So handleSendEmailTag terminates early, not knowing what status to present. From looking at the debugging messages, it looks like we have different IDs for the CGI hash:
| 06 Mar 2008 - 13:03 | sendEmail start
| 06 Mar 2008 - 13:03 | sendEmail query=CGI=HASH(0x1263180)
...
| 06 Mar 2008 - 13:03 | _finishSendEmail query=CGI=HASH(0x1263180)
...
| 06 Mar 2008 - 13:03 | _handleSendEmailTag query CGI=HASH(0x126327c)
The hash the errorStatus goes into is not the one we're trying to read from?
--
VickiBrown - 06 Mar 2008
Sorry, closing this question after more than 30 days of inactivity. Feel free to re-open if needed.
--
PeterThoeny - 01 May 2008
I'm having this same problem. I think the reason the CGI hash is different is that what's actually happening is an HTTP redirect from the
sendemail script (which is the one calling
_finishSendEmail()) to the
view script (which is the one calling
_handleSendEmailTag()). Normally you wouldn't expect to be able to carry a query parameter across an HTTP redirect, but apparently TWiki has some "passthru" feature (the third argument to
Func::redirectCgiQuery) which claims to be able to do that, by saving the parameters somehow locally. However, in this case it seems to be failing for us.
--
Michael Shulman - 2013-01-29
Ah, I found the problem. See
TWikibug:Item7132
for a description and a patch.
--
Michael Shulman - 2013-01-29