Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
PHP script to check if a turk worker has done an experiment
<?php
// sample usage in javascript:
/*
$.ajax({
type: 'post',
url: '../exclude_subjects.php',
data: {"mturk_id": turk.workerId, "tables": JSON.stringify(['exp_1', 'exp_2']), "col_id": "mturk_id"},
success: function(data)
{
if(data=="1")
{
// do stuff here to allow subject to continue
} else {
// subject already in database. do stuff to prevent them from doing experiment, like...
$("#instructions").html('<h3>Sorry, you have already participated in this study or a related study and are not eligible to complete this HIT.</h3>');
}
}
});
*/
// edit this line for database check
include('database_connect.php');
function check_mturk_id($tables, $id) {
for($i=0; $i < count($tables); $i++){
$result = mysql_query('SELECT DISTINCT '.mysql_real_escape_string($col_id).' FROM '.mysql_real_escape_string($tables[$i]));
while($row = mysql_fetch_array($result))
{
if($row["mturk_id"] == $id)
{
return false;
}
}
}
return true;
}
// get id from POST call
$id = $_POST['mturk_id'];
$col_id = $_POST['col_id'];
$tables = $_POST['tables'];
$tables = json_decode($tables,true);
// check id
$r = check_mturk_id($tables, $id, $col_id);
// echo out TRUE or FALSE
echo $r;
?>
Owner

jodeleeuw commented Feb 4, 2013

This should sanitize the variables that come in on POST to prevent injections... use at your own risk until that's fixed.

Owner

jodeleeuw commented Jun 23, 2015

need a file database_connect.php with database connection info.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment