it-swarm-vi.com

Mẫu xác nhận e-mail api

Cách tốt nhất để xử lý xác thực e-mail phía máy chủ trong API biểu mẫu là gì?
[.___.] Nó có thể được thực hiện ở đâu đó bên trong một phần của biểu mẫu được mô tả dưới đây hoặc có các tùy chọn khác không?

 $form['address']['mail'] = array(
   '#type' => 'textfield',
   '#title' => t('E-mail'),
   '#required' => TRUE,
   '#default_value' => $subscription->mail,
   '#maxlength' => 255,
 ); 

 $form['submit'] = array(
   '#type' => 'submit',
   '#value' => t('Versturen'),
 );

 return $form;
}
9
JurgenR

Tạo một chức năng xác nhận cho biểu mẫu của bạn. Dưới đây là một ví dụ sử dụng mẫu của bạn. Ví dụ: giả sử mã biểu mẫu của bạn nằm trong hàm có tên my_email:

<?php
function my_email() {
  $form = array();

  $form['address']['mail'] = array(
   '#type' => 'textfield',
   '#title' => t('E-mail'),
   '#required' => TRUE,
   '#default_value' => $subscription->mail,
   '#maxlength' => 255,
  ); 

  $form['submit'] = array(
   '#type' => 'submit',
   '#value' => t('Versturen'),
  );

  return $form;
}

function my_email_validate($form, &$form_state) {
  // YOUR CUSTOM VALIDATION CODE GOES HERE
 if (!valid_email_address($mail)) {
   form_set_error('submitted][email_address', t('The email address appears to be invalid.'));
   }
}

function my_email_submit($form, &$form_state) {
  // YOUR CUSTOM SUBMIT CODE GOES HERE
}
?>

Hàm này sẽ cho phép bạn viết mã tùy chỉnh để xác định xem các giá trị được nhập trong các trường của bạn có hợp lệ hay không. Bạn cũng có thể thêm chức năng gửi tùy chỉnh cho biểu mẫu của mình để thực thi mã tùy chỉnh trong khi biểu mẫu đang được gửi.

Đọc thêm về xác thực các biểu mẫu tại Biểu mẫu xác thực , gửi biểu mẫu tại Gửi biểu mẫ hoặc đọc toàn bộ bài viết để hiểu rõ hơn về API biểu mẫu: Hướng dẫn khởi động nhanh biểu mẫu API

5
Laxman13

Thay vì thêm trình xử lý xác thực biểu mẫu vào biểu mẫu, bạn có thể thêm trình xử lý xác thực vào phần tử biểu mẫu cần xác thực: Sử dụng # Element_validate , chấp nhận một mảng các trình xử lý xác thực sẽ được áp dụng cho các yếu tố hình thức.

$form['email'] = array(
  '#type' => 'textfield',
  '#title' => 'Email',
  '#required' => TRUE,
  '#element_validate' => array('myelement_email_validate')
);

Trình xử lý xác nhận nhận được ba đối số: Phần tử biểu mẫu được xác thực, $form_state$form mảng cho biểu mẫu chứa phần tử biểu mẫu. Trình xử lý xác nhận sẽ gọi form_error () hoặc form_set_error () để báo cáo bất kỳ lỗi xác thực nào.

function myelement_email_validate($element, &$form_state, $form) {
  $value = $element['#value'];
  if (!valid_email_address($value)) {
    form_error($element, t('Please enter a valid email address.'));
  }
}
5
nmeegama

Giải thích tại đây: http://drupal.org/node/279127

<?php
$mail = $form_values['submitted_tree']['email_address'];
if (!valid_email_address($mail)) {
  form_set_error('submitted][email_address', t('The email address appears to be invalid.'));
}
?>
3
artfulrobot

Cài đặt Trường Email mô-đun và vá nó bằng bản vá trên nhận xét 16. Sau đó, sử dụng mã trong mô tả sự cố được liên kết để xác định trường email của bạn với xác thực tích hợp:

$form['email'] = array(
    '#type' => 'email',
    '#title' => t('Email'),
    '#required' => TRUE,
    '#default_value' => "",
    '#description' => "Please enter your email.",
    '#size' => 20,
    '#maxlength' => 20,
  );
0
Roger

Bạn chỉ có thể sử dụng mô-đun Phần tử và chỉ sử dụng 'emailfield' trong thuộc tính #type của phần tử biểu mẫu, như thế này:

 $form['YOUR_FIELD_KEY'] = array(
    '#type' => 'emailfield',
    '#title' => t('Email'),
    '#size' => 20,
    '#maxlength' => 20,
    '#description' => t('Enter a valid email'),
    '#required' => TRUE,
  );

Thật dễ dàng với mô-đun phần tử, làm cho xác thực tùy chỉnh cho một trường email đơn giản không có ý nghĩa, bạn không phải phát minh lại bánh xe ...

0
svelandiag