top

PHP]Formular contact

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului Tutorials and Questions © -> Tutoriale PHP
Autor Mesaj
Acoustic
Senior Manager
Senior Manager
Acoustic

Data inscrierii: 12/Oct/2007
Mesaje: 1141
Localitate: somewhere @ a PC

MesajTrimis: 03/02/2008 22:04    Titlul subiectului: PHP]Formular contact Raspunde cu citat (quote)

In acest tutorial vei invata cum sa:
-trimiti un formular pe o adresa de mail
-verificarea campurilor unui forumular

Acest formular va avea 4 campuri simple nume, email, subiect, mesaj. Vom acoperii si partea html ulterior in tutorial
Incepem cu inceputul

trimite.php

O sa impart scriptul in mai multe parti-sectiuni ca sa va explic pas cu pas ..

definim mailu:

Cod:
define("catre","mailu_tau@adresa_ta.domeniu");

definim mesajul de eroare care va aparea daca campurile sunt goale..
Cod:
$mesaj_eroare = 'Urmatoarele campuri sunt goale:<ul>';
$eroare = false;


acuma vom face functia care preia informatiile din campurile din formular
Cod:
 $submit = $_POST['submit'];
if(empty($submit))
$formular_trimis = false;
else
$forumular_trimis = true;


acuma sa traducem ce am scris mai sus ...daca formularul este gol nu trimite mail, daca nu trimite..pentru cei care ati facut limbaje de programare false/true sunt booleanuri....continuam...

Cod:

if($formular_trimis) {
   $nume = $_POST['nume'];
   $email = $_POST['email'];
   $subiect = $_POST['subiect'];
   $mesaj = $_POST['mesaj'];


odul de mai sus preia informatiile din campurile: nume, email, subiect, mesaj.

Acuma vom verifica daca campurile sunt goale...
Cod:

 if(!$nume) { $msg_eroare .= "<li>Nume</li>"; $eroare = true; }
   if(!$email ) { $msg_eroare .= "<li>Adresa email</li>"; $eroare = true; }
   if(!$subiect ) { $msg_eroare .= "<li>Subiect</li>"; $eroare = true; }
   if(!$mesaj ) { $msg_eroare .= "<li>Mesaj</li>"; $eroare = true; }


in traducere: daca campul x este gol va aparea mesajul de eroare

Acuma vom verifica daca mailul este corect:

Cod:
 if($email) { if(!eregi("^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$", $email)){ $msg_eroare .= "<li>Adresa email</li>"; $eroare = true; }}
$msg_eroare .= "</ul>";


In traducere daca emailul nu este gen nume@adresa.ceva va aparea mesaj de eroare

Acuma trebuie sa aratam unde a gresit in completarea formularului ..

Cod:
if (!$eroare) {
 
         $msg  = "Nume: \t $nume \n";
         $msg .= "Adresa email: \t $email \n";
         $msg .= "Subiect: \t $subiect\n";
         $msg .= "Mesaj: \n---\n $mesaj \n---\n";


Acuma va trebuie sa facem headerul mesajului

Cod:
$heder_mail  = "NUMELE SITEULUI TAU AICI: 1.0\r\n";
         $heder_mail .= "Content-type: text/plain; charset=iso-8859-1\r\n";
         $heder_mail .= "De la: $nume <email>\r\n";
         $heder_mail .= "Raspunde catre: $nume <email>\r\n";


Si ultimu pas trimitrea propriuzisa a mailului

Cod:
mail(catre, ,stripslashes($msg), $heder_mail);
   }
   }


contact.php


Si asta e html

Cod:
?php include"trimite.php"; ?>
<html>
<head>
<meta>
</head>
<body>

<div>
   <Daca>
<php>
Mesaj aici daca mailul a fost trimis cu succes, <php>.
Acestea sunt informatiile care ni le-ati trimis: <br>
<php>
         </font>
<Aici>
         Va rugam sa completati toate campurile de pe aceast formular. Atentie!Campruile marcate cu(*) sunt obilgatorii.
<Acuma>
   


<br><form>
         <table>
            <tr>
               <td>
                  Nume (<font>*</font>)<br>
                  <input>               </td>
               </tr>
         </table>
         <table>
            <tr>
               <td>
               Adresa E-mail (<font>*</font>)<br>
                  <input>               </td>
               </tr>
         </table>
         <table>
            <tr>
               <td>
                  Subiect (<font>*</font>)<br>
                  <input>               </td>
            </tr>
         </table>
         <table>
            <tr>
               <td>
                  Mesaj (<font>*</font>)<br>
                  <textarea><php></textarea>               </td>
            </tr>
         </table>
         <table>
            <tr>
               <td>
                  <input>               </td>
            </tr>
         </table>
         </form><php>   </div>



Si inca odata
trimite.php

Cod:
</li>



Si acuma un plus...
de exemplu daca ai sa faci u nformular de comanda la un shop sau ceva...e suficient de rudimentar doar adaugi mai multe campuri si mai multe linii la ..defapt uite exemplu



Cod:
if($formular_trimis) {
   $nume = $_POST['nume'];//preluam datele din campul nume
   $email = $_POST['email'];//preluam datele din campul email
   $subiect = $_POST['subiect'];//preluam datele din campul subiect
   $mesaj = $_POST['mesaj'];//preluam datele din campul mesaj
   $firma = $_POST['firma'];//preluam datele din campul firma
   $produs_dorit = $_POST['firma'];//preluam datele din campul produs_dorit


dupa la verificare campurilor


Cod:
if(!$nume) { $msg_eroare .= "<li>Nume</li>"; $eroare = true; }//Daca campul nume este necompletat arata eroare
   if(!$email ) { $msg_eroare .= "<li>Adresa email</li>"; $eroare = true; }//Daca campul email este necompletat arata eroare
   if(!$subiect ) { $msg_eroare .= "<li>Subiect</li>"; $eroare = true; }//Daca campul subiect este necompletat arata eroare
   if(!$mesaj ) { $msg_eroare .= "<li>Mesaj</li>"; $eroare = true; }//Daca campul mesaj este necompletat arata eroare
if(!$firma) { $msg_eroare .= "<li>Firma</li>"; $eroare = true; }//Daca campul mesaj este necompletat arata eroare
if(!$produs_dorit) { $msg_eroare .= "<li>Produsul dorit</li>"; $eroare = true; }//Daca campul mesaj este necompletat arata eroare


dupa pregatim datele adica continutul mailului

Citat:
f (!$eroare) {

$msg = "Nume: \t $nume \n"; //pregatim datele
$msg .= "Adresa email: \t $email \n";//pregatim datele
$msg .= "Subiect: \t $subiect\n";//pregatim datele
$msg .= "Mesaj: \n---\n $mesaj \n---\n";//pregatim datele
$msg .= "Firma: \n---\n $firma\n---\n";//pregatim datele
$msg .= "Produs dorit: \n---\n $produs_dorit\n---\n";//pregatim datele
Sus
Vezi profilul utilizatorului Trimite mesaj privat Trimite un mesaj
Afiseaza mesajele pentru a le previzualiza:    Subiectul anterior : Subiectul urmator  
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului Tutorials and Questions © -> Tutoriale PHP Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum

Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro