проверка формы php - псевдопароль вместо почтового адреса и случайное число в качестве уникального идентификатора вместо почтового адреса - PullRequest
1 голос
/ 20 марта 2012

Я начинающий php.Я на самом деле хочу настроить платформу для визуальных стимулов для своих нужд, так как мне нужно это для моей диссертации.Первоначальная версия этой платформы опроса просит участников ввести свой почтовый адрес для входа, после чего они видят доступные тесты.Насколько я понимаю, код проверяет, сохранен ли почтовый адрес в базе данных, и, если нет, резервирует определенное количество стимулов для соответствующего участника (с использованием их почтового адреса в качестве идентификатора).Это количество стимулов затем будет заблокировано от дальнейших испытаний.Это, однако, создает проблемы:

1) участники могут просто участвовать один раз 2) участники должны отказаться от своей анонимности

Все это не должно быть очень сложным.Было бы достаточно, если бы участники могли войти в систему со словом «анонимный» и затем перейти к доступным тестам, в которых определенное количество стимулов зарезервировано не по их почтовому адресу, а именно по автоматически генерируемому уникальному случайному числу, которое служит идентификатором.

Я думаю, что важными строками кода являются следующие:

/**
 * Lets user login. Stores new e-mail addresses if not yet in database.
 */
function login() {

    $this->validation->set_error_delimiters('<div class="error">', '</div>');
    $this->validation->set_message('required', $this->lang->line("validation_error_validemail_required"));
    $this->validation->set_message('valid_email', $this->lang->line("validation_error_validemail_required"));

    // check if valid e-mail address
    //required|valid_email
    $rules['email'] = "required|valid_email";
    $this->validation->set_rules($rules);

    $fields['email'] = $this->lang->line("frontend_user_email");
    $this->validation->set_fields($fields);


    if ($this->validation->run() == FALSE) {
        $this->load->view('welcome_message'); // reload form


    } else {

        $this->load->model("testcontainer_model", 'testcontainer');
        $this->data['testcontainer']->activeuser = $this->data['testcontainer']->getUserByEmail($_POST['email']);

        $this->load->view('welcome_message', $this->data);
    }

}


/**
 * Logout user, unset session data.
 */
function logout() {
    $this->session->unset_userdata('user_email');
    $this->session->unset_userdata('user_id');
    $this->session->unset_userdata('albumpath_relative');
    $this->session->unset_userdata('test_name');
    $this->session->unset_userdata('test_id');
    $this->load->view('welcome_message');
}

Не могли бы вы помочь мне изменить этот код, чтобы получить то, что я хочу?Я благодарен за любую помощь!

С уважением,

Андреас

1 Ответ

0 голосов
/ 20 марта 2012

Формы в CI могут быть сложными. Это может быть очень полезным инструментом, если вы хотите сэкономить время: http://formigniter.org/app/index.php/formigniter/index/5

...