Homer_J
Homer_J

Reputation: 3323

Advice required for data quality and validation

FURTHER EDIT: Given that individuals can only access the questionnaire from a seperate website, not internal on their LAN/ WAN - I'm thinking all I can do is have a link for each group of people and simply limit that to the number in the group, not control the issue of 10 individual responses or 1 person doing it 10 times...

EDIT: Imagine a scenario where there is 1 pc - 10 people need to complete the questionnaire, all from the same PC. We cannot contact the 10 people, we have no means of doing so. We need to ensure (as much as possible) that there are only 10 responses and, ideally, they are done by the 10 individuals, not 1 person doing it 10 times!**

This is more general advice needed than a specific answer to a question - however, I'm still hopeful you guys can help.

Currently we have a short questionnaire that we need to ensure that is only completed once by each person to ensure data validity.

We cannot email each individual a unique link to the questionnaire as they do not have email addresses.

In addition, we also need to control the number of responses to the questionnaire from each group of people (for example a group of 10 cannot have 11 responses).

Does anyone have any advice on how this might be achieved without sending unique links to individuals?

Note, technology in use is MySQL, PHP, Javascript (some jQuery and a very small amount of Ajax).

Thanks in advance,

Homer.

Upvotes: 0

Views: 115

Answers (6)

Nonym
Nonym

Reputation: 6299

Starting question: How do you ascertain the identity of a person? How do you group these identities?

Next: Are you on a single network? Are these users in a single network domain like your office or company LAN? Are they random people from the internet or passers-by?

If, for example, your users are registered in your active directory, you can use:

http://alpho011.hubpages.com/hub/Use-Windows-Login-in-PHP-Applications

As for grouping, continuing from the example above, you can also access their object properties and see if you can group in that direction like the object property "manager" or "department"

If your users come from different locations and are not bound by VPN connections, then you can look into storing IP addresses.. but depending on the questionnaire and the type of users your application is up against, this might not do.

Limiting a user to a one-time-submission without identities is quit tricky. Perhaps you can give us more information?

Upvotes: 0

f0rza
f0rza

Reputation: 480

Generate unique line of parameters for each user, something like:

group=5&user=[GUID]

encrypt these parameters with algorythm + urlencode result

this way you'll get encrypted unique url for user, which you can pass to him.

qn.php?hdfs78376897923874987 

Once get on page urldecode/decrypt parameters. Keep in database result - from what group is answer, if this person already answered etc

Upvotes: 0

Nick
Nick

Reputation: 6346

You would need some kind of unique identifier per person filling out the questionnaire, could be an email address (although you say the people don't have an email address? Is it for kids to fill out or something?) or name, address, postcode. Without a dataset I can't really help that much.

Or if you know that this is going to be filled out by people in different households, then I guess you could use the IP address as a unique identifier (but this isn't ideal, nor do I recommend it).

Upvotes: 0

Tudor Constantin
Tudor Constantin

Reputation: 26861

When do you consider a person as unique ?

You could identify people by setting a cookie - but then, what happens when the user clean the cookie? what happens when the user moves to another computer?

What if 2 people complete the same questionnaire from the same computer?

Upvotes: 0

Madara's Ghost
Madara's Ghost

Reputation: 175007

It is virtually impossible to uniquely identify a specific user at 100% absolute certainty.

The user can always remove cookies, change his IP address, clear cache and localStorage.

Theoretically the user may fill in the questionnaire and format his computer, to fill it again.

The real question here, where do you compromise? You can always set a cookie, and comparing it against his IP address in the database, does it guarantee he can't bypass it? No, it can't. How malicious are your users? Will they try to scam the system?

Another possibility is require an account made for each user filling in the questionnaire, but again, nothing prevents a user from opening multiple accounts.

Upvotes: 0

Randy
Randy

Reputation: 16677

one question: how are you identifying unique individuals?

either, they have some identifier in the url they are accessing, or they log in to the system in order to take the survey.

i think you should have a table in your database that records each participant, and whether they have taken the survey. then check this when they are logging in, and allow them to proceed when appropriate.

Upvotes: 1

Related Questions