The parameters passed into session.php are defined by the contents of the [Input] section of the PIP file and the contents of the command line used to call session.php.
The SESSION parameter must be defined on the command line or in the [Input] section for calls to session.php. This is because session.php can only run if it can identify which assessment to run. And you should usually define one or both of the NAME or GROUP parameters to identify the participant.
If the SESSION parameter is not included in a call to perception.php, the assessment list for the specified participant will be shown.
You can provide values for any of the ten special fields in the repository by either providing values for the parameters S1 to S10 in the PIP file, or by passing values for these settings on the command line. (An example of collecting demographic data is given in this document.) You can also pass a NOTIFY parameter (in the [Settings] section) and ACCESS and PASSWORD parameters (in the [Security] section) and other external parameters which are simply passed into session.php and passed out the other end.
The [Input] section can also define any mappings you may require between the parameters passed to session.php in the PIP call and the standard Questionmark parameter names. This can be useful if you are calling session.php from a third party product that is configured to pass values with different parameter name to the ones that Perception is expecting.
When you define a mapping in the [Input] section the Questionmark parameter name is on the left, the name of the parameter passed in by the third party product is on the right. So, for example, the following entry in the [Input] section of the PIP file:
...will configure session.php to take the value of the parameter Lesson_ID passed to it on the command line and assign it to the Questionmark parameter SESSION. Therefore, calling:
...will be the same as calling:
Parameters may also be assigned values enclosed in quotes. Enclosing a value in quotes in the [Input] section of the PIP file indicates that you are not defining a mapping but actually providing a static value to be assigned to the parameter. So, for example, the entry:
...will give the parameter SESSION the value 1234567890123456. Therefore, calling:
...will be the same as calling:
If you use characters other than letters or numbers inside command line parameters to session.php, these must be URL encoded. All parameters passed on the command line to session.php must be URL encoded if they contain any special characters. For example if you pass NAME on the command line and the name includes a space, you should use %20 as the representation of the space character.
Input parameter mapping
PIP will map input parameters so that you can give a parameter of one name the value of an input parameter of another name. For example:
This means that the value of TEST_ID passed in will be given to SESSION which is then available from then on.
|SESSION||You must define the SESSION and NAME parameters on the command line or in the [Input] section. This is because session.php can only run if it can identify which assessment to run and which participant is to run it.|
|GROUP||Defines the group||session.php?CALL=mypipfile &group=maths &SESSION=1234567890123456|
|S1 to S10||Demographic data to pass to Perception|
|NOTIFY||The URL that PIP needs to notify|
|HOME||You can control what happens when a participant clicks the Home button at the end of an assessment that is launched from PIP. This means that if an LMS calls Questionmark, the Home button can be used to return from Questionmark to the LMS when the participant completes the assessment.||
|DETAILS||Participant details to be recorded in A_Result.Participant_Details||DETAILS=some details you want to record|
|FNAME||Participant first name to be recorded in A_Result.First_Name||FNAME=Steve|
|LNAME||Participant last name to be recorded in A_Result.Last_Name||LNAME=Blogs|
|PEMAIL||Participant email address to be recorded in A_Result.Primary_Email||PEMAILemail@example.com|