ই-মেইল বৈধতা ফর্ম এপিআই


9

ফর্ম এপিআইতে সার্ভার সাইড ই-মেইল যাচাইকরণের সেরা উপায় কী?
এটি নীচে বর্ণিত ফর্মের অংশের ভিতরে কোথাও প্রয়োগ করা যেতে পারে বা অন্যান্য বিকল্প রয়েছে?

 $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;
}

উত্তর:


5

আপনার ফর্মের জন্য একটি বৈধতা ফাংশন তৈরি করুন। আপনার ফর্মটি ব্যবহার করে এখানে একটি উদাহরণ দেওয়া হল। উদাহরণস্বরূপ, বলুন যে আপনার ফর্ম কোডটি একটি ফাংশনে রয়েছে 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
}
?>

আপনার ক্ষেত্রগুলিতে প্রবেশ করা মানগুলি বৈধ কিনা তা নির্ধারণ করতে এই ফাংশনটি আপনাকে কাস্টম কোড লেখার অনুমতি দেবে। আপনি ফর্মটি জমা দেওয়ার সময় কাস্টম কোড কার্যকর করতে আপনার ফর্মের জন্য একটি কাস্টম জমা ফাংশন যুক্ত করতে পারেন।

ফর্ম যাচাইকরণ, ফর্ম জমা দেওয়ার সময় ফর্ম জমা দেওয়ার বা ফর্ম এপিআইয়ের আরও ভাল বোঝার জন্য পুরো নিবন্ধটি পড়ুন: ফর্ম এপিআই কুইকস্টার্ট গাইড সম্পর্কে আরও পড়ুন



5

ফর্মটিতে কোনও ফর্ম বৈধকরণ হ্যান্ডলার যুক্ত করার পরিবর্তে, আপনি যে ফর্ম উপাদানটির যাচাইকরণ করতে হবে তার সাথে একটি বৈধতা হ্যান্ডলার যুক্ত করতে পারেন: # এলিমেট_এলডিট ব্যবহার করুন , যা ফর্ম উপাদানটিতে প্রয়োগ হবে এমন বৈধতা হ্যান্ডলারের একটি অ্যারে গ্রহণ করে।

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

বৈধতা হ্যান্ডলারটি তিনটি আর্গুমেন্ট গ্রহণ করে: ফর্ম উপাদানটি বৈধ হয়ে উঠছে, ফর্মের উপাদানটি সহ ফর্মের জন্য $form_stateএবং $formঅ্যারে। বৈধতা হ্যান্ডলারের কোনও বৈধতা ত্রুটির প্রতিবেদন করতে form_error () বা form_set_error () কল করা উচিত ।

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.'));
  }
}

1
#element_માન્યate একটি কাস্টম সম্পত্তি নয়, তবে একটি দ্রুপাল সম্পত্তি। শো কোডটি ভাল, এবং কেবলমাত্র ওয়েবফর্ম মডিউলের জন্য বৈধ যে কোনও সমাধানের প্রস্তাব দেওয়া সহ অন্যান্য উত্তরগুলি থেকে প্রস্তাবিতগুলির এটি একটি বৈধ বিকল্প।
kiamlaluno

@ Nmeegama এর পদ্ধতির ব্যবহারের একটি সুবিধা হ'ল এটি একটি বড় বৈধতা () যাচাই করার পরিবর্তে আপনার কোডটি আরও পরিষ্কার দেখাচ্ছে।
লেম্যানমান্স

1
@ এনমিগামার সমাধান ব্যবহারের আর একটি সুবিধা হ'ল ক্ষেত্রটি পুনরায় যাচাইকরণের প্রয়োজন ছাড়াই অন্য রূপেও পুনরায় ব্যবহার করা যেতে পারে।
সুপ্রিয়া রাজগোপাল

আপনি অন্য কোথাও কোডটি পুনরায় ব্যবহার করতে পারেন, যদি আপনার একাধিক উপাদানগুলির জন্য একই বৈধতা থাকে nice
mbomb007

3

এখানে ব্যাখ্যা করা হয়েছে: 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.'));
}
?>

লিঙ্কযুক্ত পৃষ্ঠাটি ওয়েবফর্ম মডিউলটির সমাধান দেখায়।
কিমলালুনো

0

আপনি কেবলমাত্র এলিমেন্ট মডিউলটি ব্যবহার করতে পারেন এবং কেবলমাত্র ফর্ম উপাদানটির # টাইপ বৈশিষ্ট্যে 'ইমেলফিল্ড' ব্যবহার করতে পারেন:

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

উপাদান মডিউল দিয়ে কেবল এটিই সহজ, সাধারণ ইমেল ক্ষেত্রের জন্য কাস্টম বৈধতা তৈরি করার কোনও বুদ্ধি নেই, আপনাকে চাকাটি পুনরায় উদ্ভাবন করতে হবে না ...


0

ইমেল ফিল্ড মডিউলটি ইনস্টল করুন এবং কমেন্টে প্যাচটির সাথে এটি প্যাচ করুন 16 তারপরে অন্তর্নির্মিত বৈধতা সহ আপনার ইমেল ক্ষেত্রটি সংজ্ঞায়িত করতে লিঙ্কযুক্ত ইস্যু বিবরণীতে কোডটি ব্যবহার করুন:

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

0

ড্রুপাল 8 এ এটি নিম্নলিখিত কোড দ্বারা বৈধ করা যেতে পারে।

/**
 * {@inheritdoc}
 */
public function validateForm(array &$form, FormStateInterface $form_state) {
  // Validate email
  if (!\Drupal::service('email.validator')->isValid($form_state->getValues()['email'])) {
     $form_state->setErrorByName('Email', $this->t('Email address is not a valid one.'));
  }
}

৮.7 https://www.drupal.org/node/2997196 থেকে এর জন্য ইন্টারফেস রয়েছে

তথ্যসূত্র: https://www.drupal.org/node/2912661


-1

ইমেল ঠিকানাটি আপনার ফর্মটি বৈধতা হ্যান্ডলার সহ যাচাই করা যেতে পারে

যদি ফাংশনটি your_formআপনার ফর্মটি সংজ্ঞায়িত করে তবে ডিফল্ট বৈধতা হ্যান্ডলারটি হতে পারে your_form_validateবা অন্যথায় আপনি নিজে এটি সেট করতে পারেন

 $form['#validate'] = array('callback_to_validate');


 function your_form_validate($form, $form_state){
   if(!filter_var($form_state['values']['mail'], FILTER_VALIDATE_EMAIL))
     form_set_error('email', t('Invalid Email Address'))
 }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.