Barua Pepe Inasikiaji wa PHP

Kinaukubalika kwenye programu ya barua ya PHP ya siku iliyopita, kuna hadi.

PHP E-mail Injizi

Kwanza, tazama programu ya PHP ya siku iliyopita:

<html>
<body>
<?php
if (isset($_REQUEST['email']))
//kamaan anajafungwa, tuma barua
  {
  //tuma barua
  $email = $_REQUEST['email'] ; 
  $subject = $_REQUEST['subject'] ;
  $message = $_REQUEST['message'] ;
  mail("someone@example.com", "Subject: $subject",
  $message, "From: $email" );
  echo "Thank you for using our mail form";
  }
else
//kamaan haujafungwe 'barua', onyesha muundo wa formu
  {
  echo "
Email:
Subject:
Message:

"; } ?>

Kinaukubalika kwenye programu hii ni kwamba mtu hawana wafaa anaweza kuingiza data katika kichwa cha barua kwa sababu ya kuwasiliana kwa formu.

Kamaa kila mtu anasaja msingi katika muundo wa formu, kinaelewa nini?

someone@example.com%0ACc:person2@example.com
%0ABcc:person3@example.com,person3@example.com,
anotherperson4@example.com,person5@example.com
%0ABTo:person6@example.com

Kama kwa kuzote, mail() inatumia matukio juu ya kushika barua pepea, kisha kushika kwenye kichwa kina matumizi ya Cc:, Bcc: na To:. Kama mtu anafanya kichwa cha kumuagiza, barua pepea hii inatumika kwenye barua zote zote zingine!

Tukio wa PHP kumpatikana barua pepea

Wahusika bora wa kumpongeza barua pepea ni kwa kumtathmini ukiaji.

Mafanikio yaliyotumika kwenye mstari huo ni kama ya kuzote, lakini sasa tumewataza programu ya tathmini ya kiwango cha barua pepea kwenye muona wa email:

<html>
<body>
<?php
function spamcheck($field)
  {
  //filter_var() inakamilisha barua pepea 
  
  $field=filter_var($field, FILTER_SANITIZE_EMAIL);
  //filter_var() inaelewa barua pepea
  
  if(filter_var($field, FILTER_VALIDATE_EMAIL))
    {
    return TRUE;
    }
  else
    {
    return FALSE;
    }
  }
if (isset($_REQUEST['email']))
  {//kama "barua pepea" inayotumika, tukia
  //tathmini barua pepea inayofikia
  $mailcheck = spamcheck($_REQUEST['email']);
  if ($mailcheck==FALSE)
    {
    echo "Mwongozo wa kichwa kinachofuata";
    }
  else
    {//kutumiza barua pepea
    $email = $_REQUEST['email'] ; 
    $subject = $_REQUEST['subject'] ;
    $message = $_REQUEST['message'] ;
    mail("someone@example.com", "Subject: $subject",
    $message, "From: $email" );
    echo "Thank you for using our mail form";
    }
  }
else
  {//if "email" is not filled out, display the form
  echo "
Email:
Subject:
Message:

"; } ?>

在上面的代码中,我们使用了 PHP 过滤器来对输入进行验证:

  • FILTER_SANITIZE_EMAIL 从字符串中删除电子邮件的非法字符
  • FILTER_VALIDATE_EMAIL 验证电子邮件地址

您可以在我们的 Vifaa vya PHP这一节中阅读更多有关过滤器的内容。