Creeaza o forma de contactare in PHP!

Astăzi o să vă arăt cum să faceți o formă de contact cu PHP!  Tutorialul o sa conțină 2 părți, prima parte unde vă arăt cea mai ușoară forma de contact pe care o puteți face, dar si una mai sigură care vă va liniști noaptea!

Prima formă de contact este extrem de simplă!  Necesita mai puțin de 10 linii de cod!  A doua parte este un pic mai dificilă, dar o să v-o explic!
Pentru a face o formă de contact de bază trebuie să ne gândim la câteva lucruri logice. Putem să le numim și parametrii:
 Parameter  Description
 destinatar  Necesar. Trebuie să specificăm unde vom trimite emailul.
 subiect  Necesar. Trebuie să specificam scopul mesajului.
 mesaj  Necesar. Mesajul în sine.
 cap  Opțional. Putem specifica aici de la cine este mesajul.
 parametrii  Optional. Aici specificam un parametru aditional.

 

Primul mail cu PHP

Este posibil să nu funcționeze, mai ales pe localhost căci trebuie configurat un mail server

Cel mai simplu mod de a trimite un email cu PHP este printr-un email text. În exemplul de mai jos vom declara variabilele($catre, $subiect, $mesaj, $autor, $cap) apoi vom utiliza funcția mail() pentru a trimite e-mailul.

<?php

$catre = "cineva@example.com";
$subiect = "Un test e-mail!";
$mesaj = "Buna!Acesta este un e-mail simplu!";
$autor = "altcinevasaueu@example.com";
$cap = "Autor: $autor";mail($catre,$subiect,$mesaj,$cap);
//functia mail va trimite informatia!
echo "E-mail trimis!.";//Acest mesaj este aratat dupa ce trimiti e-mailul!

?>

 

Numai 9 linii de cod și o formă de contact simpla este gata!

Acum vă imaginați că utilizatorul obișnuit nu va avea un server cu PHPMyAdmin și va ști PHP! Așa că forma noastra de contact trebuie să aibă un pic de HTML pentru ca utilizatorul să insereze în formă detaliile!
<html>
<body>

<?php
if (isset($_REQUEST['email']))//if "email" is filled out, send email
{//send email
$email = $_REQUEST['email'] ;
$subiect = $_REQUEST['subiect'] ;
$mesaj = $_REQUEST['mesaj'] ;
mail( "cineva@example.com", "Subject: $subiect",$mesaj, "From: $email" );
echo "Multumim ca ne utilizezi forma!";
}

else
//daca "e-mailul" nu este in forma arata forma
{echo "
<form method='post' action='mailform.php'>
Email: <input name='email' type='text' /><br />
Subiect: <input name='subiect' type='text' /><br />
Mesaj:<br /><textarea name='mesaj' rows='15' cols='40'></textarea><br />
<input type='submit' /></form>";
}

?>

</body>
</html>

 

Acum să vă explic:

  • funcția $_REQUEST este folosită în cazul în care avem date ce utilizează și funcția $_GET, dar și $_POST în același timp!
  • if else este o instrucțiune condițională. Ea verifică dacă userul a introdus deja detaliile trimițând mail-ul, iar dacă nu îi afișează încă o dată forma HTML.

Totuși aceasta este o formă de contact nesigură și un spammer ar putea introduce de exemplu 100 de e-mailuri in casuța pentru e-mail, iar aceasta va trimite la fiecare în parte mesajul!Așa că în urmatoarea parte o să vedem cum putem crea o formă de contact mai sigură. Aceasta aș considera-o viabilă pentru un website fiindcă am elimina una din amenințări.

Email sigur cu PHP

Sa va arat prima oara codul dupa care o sa va explic!
<html>
<body>

<?php
function spamcheck($field){
//filter_var() sterilizeaza e-mailul;adresa ce utilizeaza FILTER_SANITIZE_EMAIL
$field=filter_var($field, FILTER_SANITIZE_EMAIL);

//filter_var() valideaza e-mailul;adresa ce utilizeaza FILTER_VALIDATE_EMAIL
if(filter_var($field, FILTER_VALIDATE_EMAIL))
{  return TRUE;  }
else  {  return FALSE;  }}

if (isset($_REQUEST['email'])){//daca campul pentru e-mail este scris continua

//verifica daca adresa de email este invalida
$mailcheck = spamcheck($_REQUEST['email']);
if ($mailcheck==FALSE)  {
 echo "Camp invalid";
}
else
{//trimite emailul
$email = $_REQUEST['email'] ;
$subiect = $_REQUEST['subiect'] ;
$mesaj = $_REQUEST['mesaj'] ;
mail("someone@example.com", "Subiect: $subiect",  $mesaj, "De la: $email" );
echo "Multumim ca ne contactezi!";
}

}
else{//daca e-mailul nu este nu este completat arata forma
echo "
<form method='post' action='mailform.php'>
Email: <input name='email' type='text' /><br />
Subiect: <input name='subiect' type='text' /><br />
Mesaj:<br /><textarea name='mesaj' rows='15' cols='40'></textarea>
<br />
<input type='submit' /></form>";
}
?>

</body>
</html>

 

Pentru mărirea siguranței folosim filtre PHP.

  • filtrulFILTER_SANITIZE_EMAIL elimina orice caractere ilegale dintr-un string ce contine un email
  • filtrul FILTER_VALIDATE_EMAIL valideaza valoarea pentru a verifica daca adresa este un e-mail

Cam asta este tot…personal forma de contactare sigura nu este grea…doar cateva taguri mai noi!Si in proportie de 80% se repeta de la cea anterioara!Nu este nevoie de baze de date, SQL sau nimic asemanator!Doar cateva functii si gata!

Leave a comment

Your email address will not be published. Required fields are marked *

Send this to a friend