Rabu, 20 November 2013

Memproses PHP Form - Mengesahkan E-mel dan URL

--
--

Memproses PHP Form - Mengesahkan E-mel dan URL

Bab ini menunjukkan bagaimana untuk mengesahkan nama, e-mel, dan URL.

PHP - Mengesahkan Nama

Kod di bawah menunjukkan cara mudah untuk memeriksa jika variable nama hanya mengandungi huruf dan white space. Jika nilai variable nama tidak sah, maka simpan mesej ralat:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name))
  {
  $nameErr = "Only letters and white space allowed";
  }

preg_match () function akan mencari pattern yang betul, mengembalikan TRUE jika corak wujud, dan FALSE jika sebaliknya.

PHP - Mengesahkan E-mail

Kod di bawah menunjukkan cara mudah untuk memeriksa jika alamat sintaks e-mel yang sah. Jika alamat sintaks e-mel adalah tidak sah, maka simpan mesej ralat:
$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
  {
  $emailErr = "Invalid email format";
  }

PHP - Mengesahkan URL

Kod di bawah menunjukkan satu cara untuk memeriksa jika alamat sintaks URL adalah sah (ungkapan biasa ini juga membolehkan sengkang dalam URL). Jika alamat sintaks URL tidak sah, maka simpan mesej ralat:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
  {
  $websiteErr = "Invalid URL";
  }

PHP - Mengesahkan Nama, E-mel dan URL

Kini, skrip kelihatan seperti ini:

Contoh

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
  if (empty($_POST["name"]))
    {$nameErr = "Name is required";}
  else
    {
    $name = test_input($_POST["name"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$name))
      {
      $nameErr = "Only letters and white space allowed";
      }
    }

  if (empty($_POST["email"]))
    {$emailErr = "Email is required";}
  else
    {
    $email = test_input($_POST["email"]);
    // check if e-mail address syntax is valid
    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
      {
      $emailErr = "Invalid email format";
      }
    }

  if (empty($_POST["website"]))
    {$website = "";}
  else
    {
    $website = test_input($_POST["website"]);
    // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
      {
      $websiteErr = "Invalid URL";
      }
    }

  if (empty($_POST["comment"]))
    {$comment = "";}
  else
    {$comment = test_input($_POST["comment"]);}

  if (empty($_POST["gender"]))
    {$genderErr = "Gender is required";}
  else
    {$gender = test_input($_POST["gender"]);}
}
?>
Langkah seterusnya adalah untuk mengelakkan borang daripada mengosongkan semua input fields apabila pengguna menghantar borang.

Tiada ulasan:

Catat Ulasan