function security_questions_user_edit_form in Security Questions 6
Same name and namespace in other branches
- 7 security_questions.module \security_questions_user_edit_form()
User edit form for changing security question answer
1 string reference to 'security_questions_user_edit_form'
- security_questions_menu in ./
security_questions.module - Implements hook_menu().
File
- ./
security_questions.module, line 295 - Main module file for security_questions.
Code
function security_questions_user_edit_form(&$form_state, $user, $qid) {
// Get the question id of the question the user wants to change.
$question = $qid;
// Get the question and user's answer from the database.
$results = db_query('SELECT sq.security_question, sqa.user_answer, sq.security_question_id
FROM {security_questions_answers} AS sqa
JOIN {security_questions} AS sq
ON sqa.security_question_id = sq.security_question_id
WHERE sqa.uid = %d', $user->uid);
while ($items = db_fetch_object($results)) {
$answered[$items->security_question_id] = $items->user_answer;
}
// Get all the possible questions that the user can answer.
$questions = db_query('SELECT sq.security_question, sq.security_question_id
FROM {security_questions} AS sq
WHERE sq.uid = %d OR sq.admin = %d', $user->uid, 1);
while ($items = db_fetch_object($questions)) {
$possible[$items->security_question_id] = $items->security_question;
$options[$items->security_question_id] = $items->security_question;
}
// Remove all of the previously answered questions.
$options = array_diff_key($options, $answered);
// Add back in the question that we were editing.
$options[$qid] = $possible[$qid];
// Display a form where the user can change their answer to a question.
$form = array();
$form['security_question_uid'] = array(
'#type' => 'hidden',
'#value' => $user->uid,
);
$form['security_question_id'] = array(
'#type' => 'hidden',
'#value' => $qid,
);
$form['security_question'] = array(
'#type' => 'select',
'#required' => TRUE,
'#options' => $options,
'#title' => t('Question'),
'#default_value' => $qid,
);
$form['security_question_user_answer'] = array(
'#type' => 'textfield',
'#title' => t('Answer'),
'#description' => t('Your answer to the selected security question'),
'#required' => TRUE,
'#default_value' => $answered[$qid],
);
$form['security_question_user_edit_submit'] = array(
'#type' => 'submit',
'#value' => t("Change answer"),
);
return $form;
}