Dear Ben,
we have a problem assigning existing subjects to sessions ex post, e.g. when there haven't been enough participants showing up and we recruited someone in front of the lab. If this person is not yet registered in the database, we can set up a new account and directly assign her to the session in question.
If, however, the person is already in the database it seems to be the right way to first assign her to the experiment. Afterwards we can select her under "Assigned Subjects" and choose a session at the bottom of the page. Clicking on "change" unfortunately kicks us out of the procedure and leaves us the "Experiment Overview". The problem occurs irrespective of the session being open/closed, whether there are free slots in the session or whether we control for free slots. It also doesn't matter if the person received an invitation or not.
Is this a bug or perhaps just a problem at our Orsee configuration? Can you think of an alternative way to solve our problem?
Thank you very much in advance!
My first guess is that your limit for post data is too low. Is the list of assigned participants (from which you select one to assign to a session) very long? If yes, then the limit for post data might apply, and PHP stops the processing of the page and sends you somewhere else.
So check both the post data limit and also the memory limit in your php.ini configuration. The defaults are very low, when you have a decent server you can up them significantly.
Hi,
I have the same problem, but upping the post data limit does not appear to help. Around how high would the limit have to be if the experiment had around 2000 assigned subject?
Well, I just looked at a list of 2000 participants, and the size of the whole page (including all the details of all participants) was 1.4MB. The POST data will only contain the participant data of all participants, so should be much less. A limit of 1MB should be easily sufficient for a list of 2000. On our server we have a limit of 8MB and no problems at all with a database of size 3000-4000.
Do you have the same problem when assigning participants to an experiment, and instead of "Assign all participants in list" you select some and click "Assign only selected participants"?
Cheers
/ben
The same problem does not appear when I am assigning subjects that way. Any
other ideas what the problem might be?
Last edit: Ben Greiner 2015-02-01
Did you check your error_log (usually in /var/log/apache2/error_log) if there is any output when you try assigning a participant from the "assigned subjects" list?
Does it work when the total list is shorter, say 50 participants, and you assign one of them to a session?
The manual assignment seems to work fine with 50 individuals. I did not
check the error logs, but my IT guy looked through them when I replicated
the problem for him, and he couldn't find anything that might be the error
we were looking for.
Last edit: Ben Greiner 2015-02-04
When it works with a list of 50 participants but it does not work with a list of 2000 participants, then this points to a memory problem. So it's either a POST data limit, or a memory limit for PHP (also set in php.ini). However, the latter would throw very serious errors in the PHP error log.
What I would do to track the error is to temporarily comment out all "redirect()" directives in admin/experiment_participants_show.php. (That is, add a "//" before each line involving a call to function "redirect".) Then, after processing the respective part before (i.e. looking through submitted ids, executing database statements), the page does not get redirected to the list, and you see any error statements produced by the code on the page. However, if there is indeed nothing in the error log, then there will also be nothing on the page, I guess.